- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
부하 분산과 고가용성을 제공하는 ELB
이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30
ELB 로드 밸런서 생성하기
이제 ELB 로드 밸런서를 생성해보겠습니다. AWS 콘솔로 접속한 뒤 메인 화면에서 Compute & Networking의 EC2를 클릭합니다. ELB는 항상 EC2와 함께 사용해야 하므로 EC2와 같은 페이지에 있습니다.
오른쪽 위에서 ELB와 EC2가 생성되는 리전을 변경할 수 있습니다. 이 책에서는 우리나라에서 가장 가까운 Tokyo 리전을 사용하겠습니다.
먼저 ELB 로드 밸런서에 연결할 EC2 인스턴스를 생성해야 합니다. '4.3 EC2 인스턴스 생성하기'를 참조하여 EC2 인스턴스 2개를 각각 다른 가용 영역에 생성합니다(OS는 Amazon Linux를 설치합니다).
EC2 페이지에서 ELB 로드 밸런서 목록(NETWORK & SECURITY → Load Balancers)을 클릭하고, 위쪽 Create Load Balancer 버튼을 클릭합니다.
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 버튼을 클릭합니다.
헬스 체크(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 버튼을 클릭합니다.
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 버튼을 클릭합니다.
앞에서 생성한 EC2 인스턴스 2개를 선택하여 ELB 로드 밸런서에 연결합니다(그림 18-10).
- Enable Cross-Zone Load Balancing: 여러 가용 영역에 생성된 EC2 인스턴스에 부하를 분산하는 옵션입니다. 기본값 그대로 사용합니다.
- Enable Connection Draining: Connection Draining 사용 옵션입니다. 1초부터 3600초(1시간)까지 설정할 수 있습니다. 기본값 그대로 사용합니다.
설정이 완료되었으면 Continue 버튼을 클릭합니다.
지금까지 설정한 내용에 이상이 없는지 확인합니다. 이상이 없으면 Create 버튼을 클릭합니다.
ELB 로드 밸런서(exampleelb) 생성이 완료되었습니다. Close 버튼을 클릭합니다.
ELB 로드 밸런서 목록(NETWORK & SECURITY → Load Balancers)에 ELB 로드 밸런서(exampleelb)가 생성되었습니다. 아래 ELB 세부 내용에 이 ELB 로드 밸런서의 DNS Name이 표시됩니다. 앞으로 서비스에 접속할 때는 EC2 인스턴스에 바로 접속하지 않고 ELB 로드 밸런서의 URL로 접속합니다.
Route 53와 ELB
AWS에서 제공하는 ELB 로드 밸런서의 DNS Name대신 자신이 구입한 도메인을 사용하려면 Route 53에서 A 레코드를 생성할 때 Alias를 Yes로 선택하고, Alias Target에서 ELB 로드 밸런서를 선택하면 됩니다.
Route 53 A 레코드 생성 방법은 '17.2 Route 53 A 레코드 생성하기'를 참조하기 바랍니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.