본문 바로가기

AWS

[AWS] Elastic Load Balancer

 

ELB(Elastic Load Balancer)는 클라이언트의 요청을 직접 받고, 관리하고 있는 서버들에게 해당 요청을 골고루 전달해주는 역할을 합니다.

이는 L4 스위치를 직접 구매해서 관리도 가능하지만, AWS를 이용하면 이를 따로 장비 구매 없이 편하게 사용할 수 있습니다.

 

여기서 L4 스위치란, Transport Layer의 프로토콜인 TCP, UDP를 스위칭하고,

여러 대의 서버에서 동일한 어플리케이션에 대하여 L4에서 서버의 부하를 체크한 후 가장 여유가 있는 쪽으로 보내주는 역할을 하고,

ELB에서 해당 역할을 해준다고 보면 될 것 같습니다.

 

로드 밸런서도 일종의 서버라고 볼 수 있지만, AWS에서 로드 밸런서의 기능을 하는 서버를

내부적으로 관리해주기 때문에 직접 SSH 프로토콜을 이용하여 접속할 수는 없습니다.

 

대상 그룹(Target Group)

대상 그룹은 로드 밸런서가 요청을 전달할 서버들을 묶어둔 개념적인 그룹입니다.

이 그룹 내에서는 EC2 인스턴스 또는 Auto Scaling Group이 포함될 수 있습니다.

하나의 로드 밸런서에는 여러 개의 대상 그룹을 연결할 수 있습니다.

 

상태 검사(Health Check)

로드 밸런서는 관리하는 서버 중에 정상적으로 동작하는 서버에게만 요청을 보냅니다.

정상적으로 서버가 작동하는지에 대한 검사를 상태 검사라고 부릅니다.

예를 들면, 서버에서 /test.html 경로로의 요청에 대해 HTTP 상태 코드 200을 응답하도록 설정해놓고,

로드 밸런서의 상태 검사 경로를 /test.html로 등록해두면 로드밸런서는 해당 경로로 요청을 보냅니다.

이에 상태 코드 200이 응답으로 오면 정상이라 판단하고, 다른 응답 코드 또는 시간 안에 응답이 오지 않으면 비정상으로 판단합니다.

 

 

로드 밸런서에 Auto Scaling Group을 대상 그룹으로 구성하기

이전에 생성한 EC2에 웹 서버를 구축하여, /var/www/html/test.html 파일이 생성되어 있어야 합니다.

이는 혹시 필요하시면 따로 포스트하겠습니다!

 

1. 콘솔의 항목 중 로드밸런서를 클릭하여 들어갑니다.

 

 

2. 로드 밸런서의 유형 중, 현재는 Application Load Balancer를 생성해줍니다.

 

 

3. 로드 밸런서 구성에서 로드 밸런서의 이름과 리스너, 가용 영역을 설정해줍니다.

    가용 영역의 경우 ap-northeast-2a, ap-northeast-2c로 설정해주었습니다.

 

 

4. 보안 그룹은 현재는 HTTP 요청을 받을 것이므로 기존에 만들어놓은 웹용 보안 그룹을 선택해줍니다.

 

5. 다음으로는 클라이언트로부터 받은 요청을 전달할 대상 그룹을 지정하는 화면입니다.

   상태 검사 경로는 HTTP 프로토콜의 /test.html를 입력해줍니다.

   이로써 로드 밸런서에서 관리하는 인스턴트들을 대상으로 요청을 날리고 상태 검사를 할 것입니다.

 

6. 다음으로는 생성한 대상 그룹에 대해서 인스턴스를 추가할 수 있는 화면인데,

   인스턴스를 직접 추가할 수도 있지만 Auto Scaling 그룹을 대상 그룹에 등록할 것이기 때문에 우선 다음을 누릅니다.

 

7. 로드 밸런서를 생성을 완료한 후, Auto Scaling 그룹 메뉴를 선택하고 이전에 만든 그룹을 선택한 후

    세부정보 항목에서 편집을 클릭하고, 대상 그룹을 등록해줍니다.

 

 

8. 로드 밸런서의 DNS 주소를 입력한 후, 생성한 웹 서버에서 작성한 파일인 test.html을 입력하면

    의도한 대로 페이지가 나오는 것을 확인할 수 있습니다.

'AWS' 카테고리의 다른 글

[AWS] IAM  (0) 2020.07.10
[AWS] Route 53, HTTPS, SSL/TLS, Certificate Manager  (0) 2020.07.09
[AWS] Auto Scaling (2/2)  (0) 2020.07.02
[AWS] Auto Scaling (1/2)  (0) 2020.06.30
[AWS] AWS EC2를 이용하여 인스턴스 생성 및 접속하기  (0) 2020.06.29