인프라
Auto Scaling을 위한 Launch Template 및 Application Load Balancer 구성
김도리개발자
2023. 3. 7. 21:30
Auto Scaling 구성에 필요한 3가지 항목들을 먼저 준비해보자
1. 현재 Private subnet의 웹서버에 대한 Custom AMI
2. EC2 인스턴스를 미리 설정한 값에 따라 생성할수 있게 해주는 Launch Template
3. Auto Scaling에서 사용할 Application Load Balancer
- private-ec2-a1의 Custom AMI를 생성해보자
- Custom AMI로 Launch Template을 만들어 보자
- AWS에서는 미리 설정한 구성 값에 따라서 인스턴스를 생성할 수 있게 해주는 기능으로 Launch Configuration, Launch Template 두가지를 제공하고 있다.
- 이 두가지는 비슷하긴 한데 Launch Template이 더 상세하고 유연한 설정을 도와준다.
- Launch Configuration은 설정 구성이 변경되면 새로운 Launch Configuration을 만들어 변경사항을 적용시켜야 한다.
- Launch Template은 변경사항이 저장되어 버전만 바뀐 동일한 템플릿을 그대로 사용할 수 있다.
- AWS에서도 Launch Template을 더 권장하고 있다.
- ASG : Auto Scaling Group
- Auto Scaling 지침 : 이 Launch Template을 Auto Scaling에 사용할 경우 가이드를 제공한다는 옵션
- 어떤 AMI를 사용할 것인지 선택하는 옵션
- 이 Launch Template에서 인스턴스를 생성할 때 어떤 Key Pair를 사용할 것인지 고르는 옵션
- private subnet에 인스턴스가 생성될 것이기 때문에 ec2-private-seoul 키를 선택한다.
- 네트워크를 설정하는 옵션
- 생성되는 인스턴스를 특정 subnet으로 국한시키지 않기 위해 시작 템플릿에 포함하지 않음을 선택한다.
- SG는 private-ec2-sg를 선택한다.
- 스토리지(볼륨) : 인스턴스가 생성될 때 사용하게 될 EBS 볼륨을 정의하는 옵션
- 리소스 태그 : 이 Launch Template으로 리소스를 만들 때 붙이는 태그 입력하는 곳
- 인스턴스를 생성할 때 세부적으로 설정할 수 있는 옵션들 (이전에 인스턴스 생성할 때 자세히 살펴봤던 옵션들과 동일함)
- 사용자데이터(User data)는 위에서 선택한 AMI에 이미 LAMP 웹서버와 관련된 소프트웨어 패키지, 파일, 데이터베이스에 연결하기 위한 DB 정보들도 이미 EBS 볼륨의 스냅샷으로 저장되어 있기 때문에 별도로 입력하지 않아도 된다.
- 템플릿으로 인스턴스 시작 : 이 템플릿으로 인스턴스 생성을 할 수 있는 메뉴
- 템플릿 수정(새 버전 생성) : 템플릿을 수정하는 메뉴
- 기본 버전 설정 : 템플릿을 수정하면 템플릿의 버전이 추가되는데 만약 수정한 템플릿을 이 Launch Template의 기본 버전으로 사용할 경우 선택하는 메뉴
- Auto Scaling 그룹 생성 : 이 템플릿으로 Auto Scaling Group을 생성할 때 선택하는 메뉴
- 스팟 플릿 생성 : 이 템플릿으로 스팟 플릿을 생성할 때 선택하는 메뉴
- Application Load Balancer를 만들어보자
- 이 타겟 그룹은 Auto Scaling Group에 연결되는 Application Load Balancer에 연결되는 타겟 그룹이기 때문에 Auto Scaling을 통해 생성되는 인스턴스들이 이 타겟 그룹에 자동으로 연결이 된다.
- Auto Scaling Group에 연결된 ALB가 사용할 별도의 SG를 만들어준다.
- Auto Scaling을 사용하기 위한 기본 준비 완료!
다음 글에서는 Auto Scaling Group을 만들면서 Auto Scaling 동작을 위한 세부 항목들을 설정하고,
Auto Scaling이 작동되는 기준인 Scale Policy를 구성해보겠다.