Cloud/AWS

Autoscaling Group & ALB

NOG 2024. 11. 20. 11:37

 

참고

(1)

https://www.youtube.com/@AWSClassroom

(2)

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-EC2-%EC%98%A4%ED%86%A0-%EC%8A%A4%EC%BC%80%EC%9D%BC%EB%A7%81-ELB-%EB%A1%9C%EB%93%9C-%EB%B0%B8%EB%9F%B0%EC%84%9C-%EA%B0%9C%EB%85%90-%EA%B5%AC%EC%B6%95-%EC%84%B8%ED%8C%85-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

(3)

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-ELB-Elastic-Load-Balancer-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EA%B5%AC%EC%B6%95-%EC%84%B8%ED%8C%85-CLB-ALB-NLB-GLB

(4)

https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html

================================================================

 

1. 시작 템플릿 생성 및 Autoscaling Group 생성

2. Autoscaling 및 강제 종료 시 상태 확인

3. 대상 그룹 및 ALB 생성

4. ASG와 ALB와 연결

5. 웹서버 멈춘 후 ELB 반응 확인

 

 

 

1. 시작 템플릿 생성 및 Autoscaling Group 생성

 

 

ASG 생성 시 EC2 instance를 어떻게 프로비전 할 것인지 미리 정해놓는 시작 템플릿을 설정해야 하기 때문에 가장 먼저 시작 템플릿을 생성해놓는다.

=> 시작 템플릿 구성요소로는 AMI / 인스턴스 유형 / 키페어 / 보안그룹 / 스토리지(EBS) / User Data 등 을 구성할 수 있다. 

 

AutoScalingGroup  생성  시 시작템플릿  선택하는 탭

 

 

이 설정한 시작 템플릿을 바탕으로 auto-scaling 된다. 그리고 VPC와 가용영역 선택한다.

 

원하는 용량, 최소, 최대 용량 설정

 

ASG 만들자마자 몇 개의 인스턴스를 만들것인가를 설정한다.

최소와 최대 용량을 지정할 수 있다.

 

 

이외에도 지표(평균 CPU,네트워크 바이트 등)가 대상 값 기준으로 올라가면 인스턴스 숫자를 올리고 낮아지면 내릴 수 있는 크기 조정 정책을 설정할 수 있다.

 

 

선택시 ASG가 인스턴스를 늘리기만 할 뿐 줄이지는 않는다. 

 

2. Autoscaling 및 강제 종료 시 상태 확인

 

네임태그를 걸어서 생성하면 nog-my-EC2-ASG 이름으로 생성

 

원하는 용량 (인스턴스 개수) 2 로 자동으로 프로비저닝한 것을 볼 수 있다.

 

ASG의 '활동탭' 에서 t2 micro 인스턴스를 지원하지 않는 가용영역이 있어 실패가 있지만 다른 지원하는 가용영역에서 ec2를 만든다.

 

 

 ASG에서 인스턴스 숫자를 조절한다.

원하는 용량은 최소용량과 최대용량 사이에 있어야 하며 인스턴스를 다 삭제할 때도 원하는 용량을 0으로 만들면 된다.

 

 

 

종료 시 (실수, 장애 등) health check 하여 다시 올려준다.

강제로 종료해도 바로 대체하는 것을 알 수 있다.

 

 

3. 대상 그룹 및 ALB 생성

 

대상 그룹 생성 장면

 

ELB가 어디로 트래픽을 보낼 것이냐를 의미한다.

두번째 선택박스인 ip주소는 Public ip는 안된다.

 

 

ALB => 리스너 및 라우팅에서 대상 그룹 선택  장면

리스너를 선택할 때 만든 대상그룹을 선택한다.

 

 

상태 검사 시 프로토콜 및 경로 설정

 

 

ELB는 특정 경로(페이지)가  정상적으로 되는지 확인 가능하다.

ELB의 대상그룹에서 임계치 설정할 수 있다. 

 

4. ASG와 ALB 연동

 

 

ASG 와 로드밸런서 연동을 위해서 해당 ASG 편집을 클릭하고 로드밸런서를 추가한다.

추가되는 인스턴스들이 대상그룹에 들어가서  ELB가 트래픽을 라우팅할 대상 즉 로드밸런싱 대상이 된다.

 

 

 

ELB 상태 확인 켜기 를 활성화 하면  ELB가 Health check (상태확인) 을 담당한다.

ASG는 EC2가 켜져있는지만을 검사한다.

 ELB는 상태검사 프로토콜(예:HTTP)를 통해서 특정페이지가 정상적으로 되는지까지(ELB가 트래픽을 받을 수 있는지)를 검사한다. 

 

5. 웹서버 멈춘 후 ELB 반응 확인

 

 

웹서버 중지

 

 

ASG로 생성한 EC2중 하나( bfc35de4 )에서 웹서버를 멈춰보고 ELB의 반응을 테스트해보았다.

 

 

 

ALB의 도메인으로 확인 시  새로고침하면 로드(트래픽)를 분배하고 있다.

ASG로 생성한 EC2 중 하나를 인식하지 못하고 있었다.

 

 

대상그룹에서도 비정상(unhealthy)으로 1개의 인스턴스가 보여지는 것을 확인할 수 있었다.

 

 

이후 draining를 거쳐  총 인스턴스 3개가 다시 만들어진 것을 확인할 수 있었다. 

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

S3 vs EBS vs EFS  (0) 2024.11.25
VPC Endpoints & VPC  (0) 2024.11.23
IAM User가 아닌 EC2에 역할 부여  (0) 2024.11.20
IAM 기본  (0) 2024.11.03
클라우드 와 온프레미스  (2) 2024.10.31