개발 공부 기록하기/03. AWS & Infra

AWS Auto Scaling에 로드 밸런서 붙이기

lannstark 2020. 11. 7. 00:41

안녕하세요 여러분! 공부하는 개발자입니다 ㅎㅎㅎ

저번 시간에 만들었던 Auto Scaling 그룹에 LB를 붙여보려고 합니다!

LB를 붙이려면 대상 그룹이라는 것이 필요한데요! 바로 한 번 대상그룹부터 만들어보겠습니다.

대상그룹

대상 그룹은 LB에 들어온 요청을 전달 받는 '대상' 그룹이라고 할 수 있습니다!

대상 유형으로는 3개가 있습니다.

  1. 인스턴스
  2. IP 주소
  3. Lambda 함수

여기서는 우선 인스턴스를 골라보도록 하겠습니다!

nginx를 80번으로 열어줄거라 HTTP 80을 골랐고요, VPC는 저번에 만들었던 EC2 Auto Scaling Group의 VPC와 동일한 VPC를 선택해 주었습니다!

다음은 상태 검사 방법과 추가적인 태그를 달 수 있는데요

HTTP /ping 경로로 상태체크를 사용하도록 했고, 고급 설정에서는 기본값을 그대로 사용했습니다.

기본값은 얼마나 자주 상태 체크를 할지, 어떤 HTTP response code를 성공으로 받아들일지, 몇 번이나 실패하면 불완전한 인스턴스로 간주할지 등등을 설정할 수 있습니다.

그리고 바로 생성 완료 눌러주었습니다 ㅋㅋㅋㅋㅋ 대상 등록은 생성 이후

대상등록에서 설정할 수 있기 때문이죠!

LB 생성

그 다음은 LB를 만들어주어야 합니다!

로드밸런서 > Load Balancer 생성을 누르시고 ALB를 골라주었습니다 ㅎㅎ

이름을 적당히 설정해주고 프로토콜을 HTTP로 설정했습니다! (당연히 실제 production에서 쓸 때는 HTTPS를 쓰겠죠?)

가용 영역은 EC2 Auto Scaling 그룹과 같은 VPC + subnet을 선택해 주었습니다.

HTTP를 선택했기 때문에 보안 그룹 구성은 건너 뛰게 되었고,

보안그룹은 Auto Scaling 그룹 기준으로 맞췄습니다!

대상 그룹에 아까 만들었던 lannstark-test-group을 넣어줬습니다!

여기까지 하니 추가로 설정할 것은 없었고, 검토 후 바로 생성 완료되었습니다 ㅎㅎ

Auto Scaling

다시 Auto Scaling으로 돌아와서

로드 밸런싱 > 편집

로드 밸런서의 대상 그룹으로 아까 만들었던 대상 그룹(lannstark-test-group)을 넣어주었습니다!

그런 다음 Auto Scaling 그룹에 포함된 인스턴스에 들어가 nginx를 설치해주었습니다

이렇게 하면, 실제 scale out이 일어날 때 nginx가 설치되지는 않지만 우선 외부 → LB → Auto Scaling 그룹 EC2를 확인 해보려고 합니다!

sudo yum update
sudo yum install nginx
sudo yum install node

nginx.conf 설정에서

location / {
        proxy_pass http://localhost:9090;
}

부분을 추가해주고 9090 포트에 200을 반환하는 express 서버를 빠르게 띄워보았습니다.

그랬더니 access log에서 200 반환이 정상적으로 되는 것을 확인할 수 있었습니다!!

 

넵 이상으로! Auto Scaling Group에 LB를 붙여보았습니다.

감사합니다 ^^

 

P.S. Target Group와 Auto Scaling 그룹 차이는 stack over flow에 잘 정리된 부분이 있더라고요!