부하 분산과 고가용성을 제공하는 ELB

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

ELB 로드 밸런서 생성하기

이제 ELB 로드 밸런서를 생성해보겠습니다. AWS 콘솔로 접속한 뒤 메인 화면에서 Compute & Networking의 EC2를 클릭합니다. ELB는 항상 EC2와 함께 사용해야 하므로 EC2와 같은 페이지에 있습니다.


그림 18-3 EC2 Virtual Servers in the Cloud

오른쪽 위에서 ELB와 EC2가 생성되는 리전을 변경할 수 있습니다. 이 책에서는 우리나라에서 가장 가까운 Tokyo 리전을 사용하겠습니다.


그림 18-4 ELB 리전 선택

먼저 ELB 로드 밸런서에 연결할 EC2 인스턴스를 생성해야 합니다. ‘4.3 EC2 인스턴스 생성하기’를 참조하여 EC2 인스턴스 2개를 각각 다른 가용 영역에 생성합니다(OS는 Amazon Linux를 설치합니다).


그림 18-5 ELB에 연결할 EC2 인스턴스 생성 완료

EC2 페이지에서 ELB 로드 밸런서 목록(NETWORK & SECURITY → Load Balancers)을 클릭하고, 위쪽 Create Load Balancer 버튼을 클릭합니다.


그림 18-6 ELB 로드 밸런서 목록

ELB 로드 밸런서를 생성합니다(그림 18-7).

  • Load Balancer name: 로드 밸런서 이름입니다. exampleelb를 입력합니다.
  • Create LB Inside: 로드 밸런서가 생성될 VPC입니다. 기본값 그대로 사용합니다.
  • Create an internal load balancer: 인터넷에 연결되지 않은 내부 로드 밸런서로 생성하는 옵션입니다. 기본값 그대로 체크를 해제합니다.
  • Enable advanced VPC configuration: VPC에 속한 서브넷을 선택하는 옵션입니다. 이 부분을 체크하면 뒤에서 서브넷을 선택할 수 있습니다. 기본값 그대로 체크를 해제합니다.
  • Listener Configuration: 로드 밸런서가 처리할 프로토콜과 포트 번호입니다. 기본값 그대로 사용합니다.
  • HTTP, HTTPS(Secure HTTP): 일반적으로 사용하는 HTTP 프로토콜입니다.
  • TCP, SSL(Secure TCP): 소켓 통신 등 TCP 프로토콜을 사용할 때 선택합니다.

설정이 완료되었으면 Continue 버튼을 클릭합니다.


그림 18-7 ELB 로드 밸런서 생성

헬스 체크(Health Check) 기능을 설정합니다(그림 18-8).

  • Ping Protocol: 헬스 체크를 할 때 사용할 프로토콜입니다. HTTP, HTTPS, TCP, SSL을 선택할 수 있습니다. 기본값 그대로 사용합니다.
  • Ping Port: 헬스 체크를 할 때 사용할 포트 번호입니다. 기본값 그대로 사용합니다.
  • Ping Path: 헬스 체크를 할 때 접속할 경로입니다. HTTP, HTTPS에서만 설정할 수 있습니다. 기본값 그대로 사용합니다.
  • Response Timeout: 헬스 체크 응답 시간입니다. 이 시간이 지나도 응답이 없으면 EC2 인스턴스 가동 확인에 실패한 것으로 판단합니다. 기본값 그대로 사용합니다.
  • Health Check Interval: 헬스 체크 주기입니다. 기본값 그대로 사용합니다.
  • Unhealthy Threshold: 연속으로 설정한 값만큼 가동 확인에 실패했을 때 가동이 중단된 것으로 판단합니다. 기본값 그대로 사용합니다.
  • Healthy Threshold: 가동이 중단되어 트래픽 분산에서 제외되었을 때 연속으로 설정된 값만큼 가동 확인에 성공하면 다시 포함됩니다. 기본값 그대로 사용합니다.

설정이 완료되었으면 Continue 버튼을 클릭합니다.


그림 18-8 ELB 로드 밸런서 헬스 체크 설정

ELB 로드 밸런서의 Security Group을 생성합니다(그림 18-9).

  • Assign a security group: 로드 밸런서의 Security Group입니다. Create a new security group을 선택합니다.
  • Security group name: 새로 생성될 Security Group 이름입니다. 기본값 그대로 사용합니다.
  • Description: 새로 생성될 Security Group의 설명입니다. 기본값 그대로 사용합니다.
  • 앞에서 Load Balancer Protocol을 HTTP에 80번 포트로 설정했으므로 동일하게 Type을 HTTP로 설정합니다.

설정이 완료되었으면 Continue 버튼을 클릭합니다.


그림 18-9 ELB 로드 밸런서 Security Group 설정

앞에서 생성한 EC2 인스턴스 2개를 선택하여 ELB 로드 밸런서에 연결합니다(그림 18-10).

  • Enable Cross-Zone Load Balancing: 여러 가용 영역에 생성된 EC2 인스턴스에 부하를 분산하는 옵션입니다. 기본값 그대로 사용합니다.
  • Enable Connection Draining: Connection Draining 사용 옵션입니다. 1초부터 3600초(1시간)까지 설정할 수 있습니다. 기본값 그대로 사용합니다.

설정이 완료되었으면 Continue 버튼을 클릭합니다.


그림 18-10 ELB 로드 밸런서에 연결할 EC2 인스턴스 선택

지금까지 설정한 내용에 이상이 없는지 확인합니다. 이상이 없으면 Create 버튼을 클릭합니다.


그림 18-11 ELB 로드 밸런서 설정 확인

ELB 로드 밸런서(exampleelb) 생성이 완료되었습니다. Close 버튼을 클릭합니다.


그림 18-12 ELB 로드 밸런서 생성 완료

ELB 로드 밸런서 목록(NETWORK & SECURITY → Load Balancers)에 ELB 로드 밸런서(exampleelb)가 생성되었습니다. 아래 ELB 세부 내용에 이 ELB 로드 밸런서의 DNS Name이 표시됩니다. 앞으로 서비스에 접속할 때는 EC2 인스턴스에 바로 접속하지 않고 ELB 로드 밸런서의 URL로 접속합니다.


그림 18-13 ELB 로드 밸런서 목록

Route 53와 ELB
AWS에서 제공하는 ELB 로드 밸런서의 DNS Name대신 자신이 구입한 도메인을 사용하려면 Route 53에서 A 레코드를 생성할 때 Alias를 Yes로 선택하고, Alias Target에서 ELB 로드 밸런서를 선택하면 됩니다.

Route 53 A 레코드 생성 방법은 ‘17.2 Route 53 A 레코드 생성하기’를 참조하기 바랍니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.