[AWS] ALB 설정하는 법
ALB(Application Load Balancer)를 생성하기 위해서는 먼저 대상 그룹을 생성해 주어야 합니다. 대상 그룹이란, 로드 밸런서가 로드 밸런싱을 하려는 그룹을 뜻하며, 아래의 그림에서 보듯, 하나의 대상 그룹 안에는 여러 EC2 인스턴스가 존재 할 수 있고, ALB는 1개 이상의 대상 그룹으로 부하를 분산시킵니다.
대상 그룹 생성
AWS Console 창에서 EC2를 검색해서 들어간 후, 왼쪽 메뉴에서 로드 밸런싱 아래 대상 그룹이라는 섹션을 클릭하면, 아래와 같은 화면이 뜨는데, 오른쪽 상단의 대상 그룹 생성을 클릭한다.
기본 구성으로 인스턴스를 선택해주고, 포트는 8000을 입력해줍니다.
대상 그룹을 생성할때 설정하는 프로토콜 섹션은, 로드밸런서로 부터 트래픽이 온거를 어느 포트로 보내줄거냐를 설정하는 것이다. 이번 글에서 사용한 EC2 서버에서는 8000 포트를 열어놓았기 때문에, 8000 포트로 라우팅 해주었습니다.
상태 검사 경로는 AWS 에서 자체적으로 health check라는 것을 하는데, 이는 서버가 잘 살아있는지 주기적으로 체크하는 것입니다. 아래와 같이 체크를 하려는 url 주소를 입력하면 됩니다.
오른쪽 하단의 다음 버튼을 누르면 아래와 같은 화면이 뜨는데, 이때, 대상 그룹에 포함시키고자 하는 EC2 인스턴스를 선택한 후에 아래에 보류 중인 것으로 포함 버튼을 클릭한 후, 오른쪽 하단에 대상 그룹 생성을 클릭하면 선택했던 EC2 인스턴스를 포함하는 대상 그룹이 생성됩니다.
ALB 생성
이제 본격적으로 ALB를 생성해보겠습니다.
AWS Console 에서 EC2를 검색한 후, 왼쪽의 메뉴에서 로드 밸런싱 아래에 로드밸런서를 클릭하면 아래의 화면이 뜹니다. 그러면 로드 밸런서 생성을 클릭해주세요.
로드 밸런서 생성을 클릭하면, 아래와 같은 화면이 뜨는데, 우리는 ALB를 생성할 것이기 때문에 가장 좌측의 생성 버튼을 클릭해줍니다.
기본 구성에서 로드 밸런서 이름은 알맞게 설정해줍니다.
네트워크 매핑에서는 대상 그룹의 EC2 인스턴스가 속해있는 서브넷이 속해있는 가용영역을 선택해주고 1개 이상의 다른 가용영역 까지 포함해서, 총 2개 이상의 가용 영역을 매핑해줍니다. 하지만, 저는 오레곤 서버에 있는 모든 가용 영역을 다 선택했습니다.
그 다음, 보안 그룹과 리스터 및 라우팅을 설정해 주어야 합니다.
Load Balancer를 생성할 때 리스너는 유저가 ELB 한테 HTTP로 요청을 하는데, 이때 몇번 포트로 받을 건지를 정한다. 여기에서는 80번 포트를 사용하였습니다. 정리하자면, 유저가 ELB한테 80번 포트로 HTTP 요청을 보내면, ELB는 설정된 대상 그룹안에 있는 서버들에게 8000포트로 전달하게 됩니다. 8000포트로 전달하는 이유는 위에서 대상 그룹 포트를 8000으로 설정하였기 때문입니다.
보안 그룹은 리스너를 몇번 포트로 할건지에 따라 달라지는데, 여기서는 리스너를 80번 포트로 설정하고, 보안 그룹 또한 80번 포트로 들어오는 모든 트레픽을 허용해주게끔 인바운드 규칙을 설정해야합니다.
이것으로 ALB를 생성을 마치겠습니다.