IOT 장비가 EC2로 보내는 부하를 분산하기위해 로드밸런서를 새로 도입하기로했다
그과정에서 수많은 삽질이 있었는데 ,, 이번글은 내가겪은 순서대로 삽질한것을 그냥 쭉써보려고한다
맨처음에 ELB 서비스를 이용하기위해..
AWS 서비스 검색창에 Elastic Load Balancing ( ELB )을 검색했는데 안나오고
EC2만 나와서 뭐지..??? 싶었는데 ELB 생성을 EC2 대시보드에서 하는거였다 .. ㅋㅋ..
대시보드 하단에보면 로드밸런싱이라는 항목이있다
저기서 로드밸런서를 클릭하고 상단을 보면 로드밸런서 생성이 가능하다
로드밸런서는 하나만있는줄알았더니 이렇게 3종류가있다 ..
Application Load Balancer
Network Load Balancer(신규)
Classic Load Balancer
공식문서에서 로드밸런서 3개의 세부정보를 비교해볼수있다
나는 EC2에서 TCP 소켓서버가 돌고있고, 클라이언트도 TCP로 데이터를 보내기때문에 Network Load Balancer를 사용하기로했다
-기본구성-
체계는 인터넷 연결로 했다
-리스너-
리스너는 말그대로 listen하는것이다,
원하는 프로토콜과 포트번호를 적어주면된다 TCP와 현재 돌고 있는 노드서버의 포트를 입력했다
-가용영역-
VPC는 기본VPC로하고 가용영역은 EC2 인스턴스가 생성된곳으로 정했다.
IPv4주소는 EIP 하나생성해서 적용했다
보안설정구성은 TLS가 아니면 생략가능하다
보안통신하라고 경고가 뜨긴하는데 아직 TLS까지 신경쓸 수준이 아니기때문에, 무시하고 다음단계로갔다
라우팅구성에서는 대상그룹(target group)을만들어야된다
새 대상그룹을 선택하고, 이름도 적었다
대상유형에서 EC2 인스턴스 or IP 를 고를수있는데 여기서 차이가 있다.
일단은 인스턴스로 만들었다
프로토콜은 당연히 TCP, 그리고 포트는 아까랑 동일하게 입력했다
상태검사는 TCP로 재정의 80 포트로 진행했다
TCP 헬스체크(상태검사)라서 포트를 EC2에서 리스닝해줘야한다.
아파치나 nginx 를 설치해야하는데 나는 아차피 설치했다
참고한글,영상
특히 아래문서가 핵심이었다
ps. 그외 새로 알게된 지식들
VPC는 11년8월에 정식으로 나옴,
그전에는 EC2 클래식이라는 네트워크환경이 사용됐는데 그냥 단일네트워크엿음
13년12월이후에는 이제 EC2클래식을 사용할수없고 VPC를 강제로 사용하게만듬,
VPC를 이용해서 사용자가 직접 네트워크환경을 설계하는것은 큰장점이지만,
EC2하나 테스트해보려는데 네트워크환경을 직접구축해야되는건 상당히 복잡하고 귀찮고 초보자에겐 어려운일이다
그래서 AWS는 계정생성할때 리전별로 바로 VPC를 default로생성해줌 ,
그래서 우리는 EC2하나만 생성했다고 생각할수있는데 사실 VPC가 이미있어서 그위에 생성해서 사용하고있는거임
CIDR은 아이피주소범위를 지정하는 방식이다,
예를 들어 192.168.0.0/32는 192.168.0.0을 가리킵니다. 범위는 지정된 IP부터 2^(32-n)개가 됩니다. 예를 들어 뒤의 숫자가 24라면, 2^(32-24)=256개의 IP 주소를 의미합니다. 예를 들어 192.168.0.0/24는 192.168.0.0에서 192.168.1.255까지의 IP를 의미합니다
서브넷의 넷마스크 범위는 16(65535개)에서 28(16개)을 사용할 수 있으며, VPC CIDR 블럭 범위에 속하는 CIDR 블럭을 지정할 수 있습니다
하나의 서브넷은 하나의 가용존과 연결 됩니다
라우팅 테이블에 인터넷 게이트웨이를 향하는 적절한 규칙을 추가해주면 특정 서브넷이 인터넷과 연결됩니다. 하지만 서브넷과 인터넷 게이트웨이를 연결하는 것만으로는 인터넷을 사용할 수 없습니다. 인터넷을 사용하고자 하는 리소스는 퍼블릭 IP를 가지고 있어야합니다.
DHCP 옵션셋은 TCP/IP 네트워크 상의 호스트로 설정 정보를 전달하는 DHCP 표준입니다. 이 기능을 사용하면 도메인 네임 서버, 도메인 네임, NTP 서버, NetBIOS 서버 등의 정보를 설정할 수 있습니다. 일반적으로 VPC 생성 시 만들어지는 DHCP 옵션셋을 그대로 사용합니다.
네트워크 ACL은 서브넷 앞단에서 트래픽 제어하는것, 보안그룹은 EC2 인스턴스앞단에서 트래픽제어하는것 ( 인바운드,아웃바운드 )
'개발 > AWS' 카테고리의 다른 글
DynamoDB TTL 설정하기 (0) | 2019.12.05 |
---|---|
AWS Lambda 에러 대체뭘까.. (0) | 2019.11.11 |
EC2 Node서버에서 Lambda 접근하기 + secretAccessKey 관리 (0) | 2019.10.18 |
DynamoDB 공부+ 실사용하면서 느낀점 (0) | 2019.10.07 |
API gateway {"message":"Missing Authentication Token"} 해결하기 (5) | 2019.09.27 |