개발 일기

AWS - Elastic Load Balancing 본문

인프라/AWS

AWS - Elastic Load Balancing

이건욱

Elastic Load Balancing(ELB)는 클라이언트에 대해서 요청을 받고 로드 밸런서가 관리하는 서버들에게 요청을 골고루 전달을 해주는 역할을 합니다.

 

따라서 요청을 받으면 특정 인스턴스나 혹은 Auto Scaling 그룹으로 전달하도록 설정할수가 있습니다.

 

[대상 그룹]

"대상 그룹(Target Group) 은 클라이언트에서 로드 밸런서가 요청을 받으면 그 요청을 전달할 서버들을 묶어둔 그룹입니다."

 

따라서 A라는 대상 그룹이 A , B 가 있고 A에는 인스턴스가 2개 B에는 인스턴스 하나와 AutoScaling 그룹이 있다면 이러한 인스턴스가 나눠서 처리하게 됩니다.

 

결론적으로 대상 그룹이 필요한 이유에 대해서 설명을 하자면

로드 밸런서는 여러개의 대상 그룹을 연결 할수가 있습니다. 따라서 여러한 포트 에 따라 다양한 대상 그룹에 전달을 할수가 있습니다.

[예시]

만약에 3000번 , 3001번 포트로 요청이 온 경우에 3000 번은 대상 그룹 A로 전달하고 3001온 경우에는 대상 그룹 B로 전달 할수가 있습니다.

 

[상태 검사]

로드밸런서는 당연히 상태 검사를 진행을 통해서 정상적으로 동작하고 있는 서버에게만 요청을 전달을 합니다.

따라서 요청을 주기적으로 GET /(특정 URL) 요청을 합니다. 여기에서 응답하지 못한 경우에는 정상 상태로 변경을 될 때까지 요청을 전달하지 않습니다. ( 물론 이 내용도 주기를 설정 할수가 있습니다. )

 

그래서 nginx나 아니면 어플리케이션 서버에서 GET /(특정 URL) 요청에 대해서 200을 응답 하도록 설정하면 됩니다.

 

[실습]

제일 먼저 [로드 밸러싱] - [로드밸런서] - [로드 밸런서 생성] 을 선택합니다.

로드 밸런서 화면
로드 밸런서 유형 선택 화면

다음과 같이 Application Load Balancer ( HTTP , HTTPS ) 요청에 대한 응답을 해주는 유형을 선택합니다.

로드 밸런서 구성을 통해 로드밸런서에 대한 이름을 정하고 어떤 프로토콜 or 어떤 포트에서 요청을 받을지 설정 할수 있고 어떤 가용 영역에 있는 인스턴스에게 트래픽을 보낼수 있는지 지정할수 있습니다.

 

보안 설정 구성은 (ACM을 설정을 했으면 쉽게 하실수 있습니다.)

만약에 EC2 내부에서 https 인증서 (let's encrypt 무료 인증서) 를 만들 경우에는 ACM으로 통해서 통합 서비스를 하기를 추천 드립니다.

 

다음으로는 보안 그룹 구성을 살펴보도록 하겠습니다.

 

여기에서는 그 전에 설정해놨던 보안 그룹을 선택합니다. 

라우팅 구성 화면을 통해서는 대상 그룹을 선택을 해야합니다.

위에서는 새로운 대상 그룹을 만들고 이름은 temp-target-group이라고 지정을 했습니다.

 

그리고 HTTP 요청으로 GET /live라는 요청으로 보내면 200코드를 통해서 상태 체크를 진행합니다. 

대상 등록 화면

대상 등록을 화면을 통해 아래에 인스턴스를 직접 등록을 해줄수도 있지만 Auto Scaling 그룹을 나중에 등록을 할수도 있습니다.

 

이제 검토를 하고 생성을 합니다.

 

추가로 Auto Scaling 그룹을 대상그룹에 추가하는 화면을 보여드리겠습니다. 

일단 먼저 [Auto Scaling] - [Auto Scaling 그룹] - 해당 Auto Scaling 선택 - 편집에 들어갑니다.

그럼 다음과 같은 화면이 노출이 됩니다. 그러면 이제 스크롤을 내려서 대상 그룹을 클릭한 뒤 저희가 생성한 대상 그룹 이름을 선택을 한 후에 저장을 합니다.

 

감사합니다.

'인프라 > AWS' 카테고리의 다른 글

IAM ?  (0) 2020.10.23
AWS - Route 53  (0) 2020.05.04
Auto Scaling  (0) 2020.04.20
EC2 - (2)  (0) 2020.04.20
EC2 ?  (0) 2020.04.05
Comments