AWS ELB 생성

2019. 4. 11. 16:53

ELB(Elastic Load Balancing)

ELB는 Elastic Load Balancing으로, 부하분산을 가능하게 하는 서비스입니다.

Amazon EC2 인스턴스, 컨테이너 및 IP주소와 같은 여러 대상에 대해 수신 애플리케이션 도는 네트워크 트래픽을 여러 가용 영역에 배포합니다.

Load Balancer는 워크로드를 가상 서버와 같은 다수의 컴퓨팅 리소스로 분산하기에 이를 사용하면 애플리케이션의 가용성과 내결함성이 높아집니다. 로드 밸런서는 클라이언트에서 오는 트래픽을 허용하고, 하나 이상의 가용 영역에서 등록된 대상(target group)으로 요청을 라우팅합니다. 로드밸런서는 등록된 대상의 상태를 모니터링하고 정상 대상으로만 트래픽이 라우팅되도록 합니다

AWS의 ELB에는 3가지 종류가 있는데 자세한 건 밑에서 보도록 하죠!

 

 

오늘도 그럼 심플하게 ELB를 생성하고 테스트해보겠습니다.

 

네트워크 구성 및 전체 구성은 위의 그림을 참고해주세요!

Auto scaling은 다음 포스팅에 계속됩니다~

 

ELB 생성에 앞서서, 위 구성도와 같은 네트워크를 구성해주시고, 서브넷에 인스턴스를 생성하면 준비 완료입니다!

(참고로 저는 인스턴스 생성시에 #include http://bit.ly/AWS101HOL-Linux-Userdata 이와 같은 userdata를 넣었습니다)

 

콘솔에서 EC2를 클릭하면 왼쪽 배너 쪽에 Load Balancing이 보입니다.

타겟 그룹은 위 카테고리에서 생성할 수 있지만 Load balancer를 만들면서 함께 생성할 수 있으니 따로 만들지 않았습니당.

 

load balancer 생성하기를 클릭하면 위와 같이 3가지 종류의 Load balancer가 나타납니다.

이 과정에서는 Classic Load Balancer를 선택했습니다.

 

[Load balancer 종류]

Application Load Balancer : 7계층에서 작동, 요청의 콘텐츠에 따라 EC2인스턴스, 컨테이너, IP주소, Lambda 함수 등의 대상으로 트래픽 라우팅, HTTP/HTTPS 애플리케이션을 로드 밸런싱

Network Load Balancer : 4계층에서 작동, IP프로토콜 데이터를 기반으로 VPC내의 대상으로 연결을 라우팅, TCP 트래픽을 로드 밸런싱.

Classic Load Balancer : 4계층, 7계층에서 작동, 여러 EC2인스턴스에서 기본적인 로드 밸런싱 제공

자세한 차이점은 > https://aws.amazon.com/ko/elasticloadbalancing/features/#compare  여길 참고해주세요

 

 

 

 

 

 

 

기본 구성에서 이름을 적절히 넣어주시구요, ELB를 생성할 VPC를 선택해줍니다.

이제 로드 밸런서가 트래픽을 라우팅할 각 가용영역에 대한 서브넷을 선택합니다. '+'를 누르면 서브넷이 선택됩니다.

public1과 public2를 선택해주었습니다.

 

 

 

 

저는 ELB를 위한 security group을 미리 만들어서 existing security group을 선택했는데요, 없으시면 새로 생성하시면 됩니다.

WEB-ELB-SG의 인바운드 규칙

test 환경이라, 소스를 0.0.0.0, 위와 같이 설정했습니다.

저는 userdata를 사용해서... ping path에 '/'로 바꿔주었습니다.

기타 옵션은 밑을 참고해주세요

 

+Advanced health check settings

Healthy threshold (정상 임계 값) = 비정상 상태의 대상을 정상으로 간주하기까지 필요한 연속적 상태 검사 성공 횟수(2~10)

Unhealthy threshold(비정상 임계 값) = 대상을 비정상 상태로 간주하기까지 필요한 연속적인 상태 검사 실패 횟수(2~10)

Timeout(제한 시간) = 상태 검사 실패를 의미하는 응답이 없는 기간(2-120초)

Interval(간격) = 개별 대상의 상태 검사 사이의 대략적인 시간(5~300초)

 

 

 

이제 Load balancer에 연결할 인스턴스를 설정합니다.

Private1과 Private2를 선택합니다.

tag는 자유롭게 설정하시면 되고, 이제 create을 누릅니다.

생성이 되고 나면 콘솔에 위와 같이 나타납니다. Load balancer가 생성되기까지는 약간의 시간이 걸리니 기다려야 합니다.

 

 

 

 

 

 

 

 

 

이제 생성한 ELB가 제대로 작동하는지 확인해봅니다. Load balancer의 DNS name을 복사하여 접속해봅니다.

 

새로고침을 하면서 확인해보면, 트래픽이 분산되어 IP와 AZ가 변경되는 것이 보이게 됩니다!

심플하쥬?!

 

 

 

 

 

다음에는 Load balancer에 이어서 aws하면 빠질 수 없는 auto-scaling을 또 심플하게 구성해보겠습니다:)

 

'TECH > AWS' 카테고리의 다른 글

AWS Auto Scaling  (0) 2019.04.12
Bastion host on AWS  (0) 2019.04.05

BELATED ARTICLES

more