Prerequisite
- ASG를 사용하고 있고, Launch Template(이하 LT)를 사용하여 배포 중인 환경이라고 가정 하겠습니다.
- 해당 솔루션 에서는 간단하게 인스턴스 타입 변경을 통해 LT의 새 버전을 만들도록 하겠습니다.
Process
- Launch Teplate을 수정하여 인스턴스 타입을 변경합니다.


- 수정 된 새 버전의 LT를 기본 값 (Default) 또는 최신 버전으로 설정 합니다.

- 새로 배포할 Auto Scaling Group(ASG)의 LT를 최신버전(Latest)로 변경

- ASG의 세부 정보에서 Min/Desired Capacity /Max 설정을 조정하여 새 버전의 LT로 서버가 점진적으로 배포되도록 설정
Ex) : Min:2 Desired Capacity: 2 Max:4 -> Min:4 Desired Capacity: 4 Max:6

새 버전의 LT로 배포된 서버의 상태 및 서비스가 이상이 없는지 확인 후, 기존 서버들을 종료
종료된 서버들이 있던 자리에 새 서버들이 배포되고, 상태 및 서비스를 다시 확인한 후 ASG의 용량을 원하는 최종 값으로 조절




Ex) : Min:2 Desired Capacity: 2 Max:4 -> Min:4 Desired Capacity: 4 Max:6
새 버전의 LT로 배포된 서버의 상태 및 서비스가 이상이 없는지 확인 후, 기존 서버들을 종료
종료된 서버들이 있던 자리에 새 서버들이 배포되고, 상태 및 서비스를 다시 확인한 후 ASG의 용량을 원하는 최종 값으로 조절
[주의사항 및 참고사항]
- 5번 단계 진행시 새 인스턴스 타입이 기존 서비스, 어플리케이션과 문제 없이 호환이 되는지 반드시 확인이 필요합니다.
- 새 인스턴스가 LoadBalancer에 정상적으로 연결되고, 트래픽을 처리할 수 있는지 확인이 필요합니다. 또한, DB와의 연결이 원활한지 확인이 필요합니다.
- 5번 단계 진행 중 기존 서버 종료를 진행할 때 두 가지 방안
- 수동으로 인스턴스를 종료하는 방법
- 관리자가 직접 인스턴스를 선택하여 수동으로 종료하는 방식입니다. - ASG 종료 정책의 ‘가장 오래된 시작 템플릿,가장 오래된 인스턴스’ 옵션 적용 (OldestInstance/OldestLaunchTemplate)
- ASG의 고급 구성에서 ‘가장 오래된 시작 템플릿,가장 오래된 인스턴스’ 옵션을 종료 정책으로 설정하는 방법 입니다. 이 옵션을 적용하면, ASG가 Scale-In 시 오래된 템플릿 으로 생성된 인스턴스를 우선적으로 종료하고, 최신 템플릿 으로 생성된 인스턴스는 유지하게 됩니다.
두 방법 모두 인스턴스를 종료할 수 있는 방식입니다.
일회성으로 최신 버전의 Launch Template(LT)로 인스턴스를 업데이트하려는 경우에는 1번 수동 종료 방법을, 추후에도 동일한 종료 정책을 사용해 인프라를 관리하고자 하신다면 2번 종료 정책 설정 방법을 추천 드립니다.
- 수동으로 인스턴스를 종료하는 방법