Prerequisite

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


Process

  1.  Launch Teplate을 수정하여 인스턴스 타입을 변경합니다.

  2. 수정 된 새 버전의 LT를 기본 값 (Default) 또는 최신 버전으로 설정 합니다.
  3. 새로 배포할 Auto Scaling Group(ASG)의 LT를 최신버전(Latest)로 변경
  4. ASG의 세부 정보에서 Min/Desired Capacity /Max 설정을 조정하여 새 버전의 LT로 서버가 점진적으로 배포되도록 설정

    Ex) : Min:2 Desired Capacity: 2 Max:4 -> Min:4 Desired Capacity: 4 Max:6

  5. 새 버전의 LT로 배포된 서버의 상태 및 서비스가 이상이 없는지 확인 후, 기존 서버들을 종료

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



[주의사항 및 참고사항]

  1. 5번 단계 진행시 새 인스턴스 타입이 기존 서비스, 어플리케이션과 문제 없이 호환이 되는지 반드시 확인이 필요합니다.

  2. 새 인스턴스가 LoadBalancer에 정상적으로 연결되고, 트래픽을 처리할 수 있는지 확인이 필요합니다. 또한, DB와의 연결이 원활한지 확인이 필요합니다.

  3. 5번 단계 진행 중 기존 서버 종료를 진행할 때 두 가지 방안
    1. 수동으로 인스턴스를 종료하는 방법
      - 관리자가 직접 인스턴스를 선택하여 수동으로 종료하는 방식입니다.

    2. ASG 종료 정책의 ‘가장 오래된 시작 템플릿,가장 오래된 인스턴스’ 옵션 적용 (OldestInstance/OldestLaunchTemplate)
      - ASG의 고급 구성에서 ‘가장 오래된 시작 템플릿,가장 오래된 인스턴스’ 옵션을 종료 정책으로 설정하는 방법 입니다. 이 옵션을 적용하면, ASG가 Scale-In 시 오래된 템플릿 으로 생성된 인스턴스를 우선적으로 종료하고, 최신 템플릿 으로 생성된 인스턴스는 유지하게 됩니다.

      두 방법 모두 인스턴스를 종료할 수 있는 방식입니다.
       일회성으로 최신 버전의 Launch Template(LT)로 인스턴스를 업데이트하려는 경우에는 1번 수동 종료 방법을, 추후에도 동일한 종료 정책을 사용해 인프라를 관리하고자 하신다면 2번 종료 정책 설정 방법을 추천 드립니다.