인스턴스 새로 고침에 체크포인트 추가 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인스턴스 새로 고침에 체크포인트 추가

인스턴스 새로 고침을 사용하는 경우, 작업을 진행하면서 인스턴스에 대한 검증을 수행할 수 있도록 단계별로 인스턴스를 교체하도록 선택할 수 있습니다. 단계별 교체를 수행하려면 인스턴스 새로 고침이 일시 중지되는 시점인 체크포인트를 추가합니다. 체크포인트를 사용하면 Auto Scaling 그룹을 업데이트하는 방법을 더 강력하게 제어할 수 있습니다. 체크포인트는 애플리케이션이 안정적이고 예측 가능한 방식으로 작동하는지 확인하는 데 유용합니다.

작동 방식

인스턴스 새로 고침을 시작할 때 Auto Scaling 그룹에 있는 총 인스턴스 수의 백분율로 체크포인트를 지정합니다. 이 체크포인트는 Auto Scaling 그룹에서 새 인스턴스가 되어야 체크포인트에 도달한 것으로 간주되는 인스턴스의 최소 비율을 나타냅니다. 예를 들어 체크포인트가 다음과 [20, 50, 100] 같으면 새 인스턴스의 20% 가 첫 번째 체크포인트에 도달하고, 새 인스턴스가 50% 이면 두 번째 체크포인트에 도달하고, 모든 인스턴스가 새로 추가되면 최종 체크포인트에 도달합니다.

Amazon EC2 Auto Scaling은 그룹의 최소 정상 비율을 유지하면서 지정된 체크포인트 비율을 준수하도록 인스턴스 교체를 진행합니다. 체크포인트 백분율에 도달하기 위해 Amazon EC2 Auto Scaling은 때때로 최소 건전 백분율에서 허용하는 것보다 더 적게 교체하지만 절대 그보다 많이 교체하지는 않습니다.

인스턴스가 10개인 다음 Auto Scaling 그룹을 예로 들어 보겠습니다. 체크포인트 백분율은 [20,50,100], 최소 건전 백분율은 80%, 최대 건전 백분율은 100%입니다. 최소 건전 백분율을 유지하기 위해 한 번에 2개의 인스턴스만 교체됩니다. 다음 다이어그램은 체크포인트에 도달하기 전에 인스턴스를 교체하는 프로세스를 요약한 것입니다.

이 다이어그램은 체크포인트가 인스턴스 새로 고침의 흐름에 어떤 영향을 미치는지 보여줍니다.

위 예시에서는 새로 시작하는 각 인스턴스마다 인스턴스 준비 기간이 있습니다. 인스턴스를 대기 상태로 전환한 다음 인스턴스가 시작되거나 해지될 때 맞춤 작업을 수행하는 라이프사이클 후크가 있을 수도 있습니다.

Amazon EC2 Auto Scaling은 100% 완료된 체크포인트를 제외하고 각 체크포인트에 대해 이벤트를 내보냅니다. Amazon SNS 등의 대상으로 이벤트를 전송하는 EventBridge 규칙을 추가할 수 있습니다. 이렇게 하면 필요한 검증을 실행할 수 있을 때 알림이 옵니다. 자세한 정보는 인스턴스 새로 고침 이벤트에 대한 EventBridge 규칙 생성을 참조하세요.

고려 사항

체크포인트를 사용할 때에는 다음 사항을 고려하세요.

  • 체크포인트는 백분율을 기준으로 하기 때문에 교체할 인스턴스 수는 그룹 크기에 따라 달라집니다. 스케일 아웃 활동이 발생하여 그룹 크기가 커지면 진행 중인 작업이 다시 체크포인트에 도달할 수 있습니다. 이 경우, Amazon EC2 Auto Scaling은 다른 알림을 전송하고 계속하기 전에 체크포인트 간 대기 시간을 반복합니다.

  • 특정 상황에서 체크포인트를 건너뛸 수 있습니다. 예컨대, Auto Scaling 그룹에 두 개의 인스턴스가 있고 체크포인트 백분율이 [10,40,100]이라고 가정해 보겠습니다. 첫 번째 인스턴스를 교체한 후 Amazon EC2 Auto Scaling은 그룹의 50%가 교체된 것으로 계산합니다. 50%가 처음 두 개의 체크포인트보다 높기 때문에 첫 번째 체크포인트(10)를 건너뛰고 두 번째 체크포인트(40)에 대한 알림을 전송합니다.

  • 작업을 취소하면 추가 교체가 중지됩니다. 작업을 취소하거나 마지막 체크포인트에 도달하기 전에 작업이 실패하면 이미 교체된 인스턴스는 이전 구성으로 롤백되지 않습니다.

  • 부분 새로 고침의 경우, 작업을 다시 실행하면 Amazon EC2 Auto Scaling이 마지막 체크포인트에서 다시 시작하지 않고 이전 인스턴스가 교체되는 경우에만 중지하지도 않습니다. 그러나 교체할 대상으로 새 인스턴스에 앞서 이전 인스턴스를 지정합니다.

  • 체크포인트 비율이 그룹 내 인스턴스 수에 비해 너무 낮으면 실제 완료율이 해당 체크포인트의 백분율보다 높을 수 있습니다. 예컨대, 체크포인트의 백분율이 20%이고 그룹에 4개의 인스턴스가 있다고 가정해 보겠습니다. Amazon EC2 Auto Scaling이 4개의 인스턴스 중 하나를 교체하는 경우, 실제 교체된 백분율(25%)이 체크포인트의 백분율(20%)보다 높습니다.

  • 체크포인트에 도달한 후 표시된 전체 완료율은 인스턴스 워밍업이 완료될 때까지 업데이트되지 않습니다. 예를 들어 체크포인트 백분율은 15분이고 [20,50] 최소 정상 백분율은 80% 입니다. Auto Scaling 그룹에는 10개의 인스턴스가 있으며 다음과 같이 인스턴스를 대체합니다.

    • 0:00: 두 개의 이전 인스턴스가 새 인스턴스로 교체됩니다.

    • 0:10: 두 개의 새 인스턴스가 워밍업을 완료합니다.

    • 0:25: 두 개의 이전 인스턴스가 새 인스턴스로 교체됩니다. (최소 건전 백분율을 유지하기 위해 인스턴스가 두 개만 교체됩니다.)

    • 0:35: 두 개의 새 인스턴스가 워밍업을 완료합니다.

    • 0:35: 한 개의 이전 인스턴스가 새 인스턴스로 교체됩니다.

    • 0:45: 한 개의 새 인스턴스가 워밍업을 완료합니다.

    0:35에서 새 인스턴스 출범 작업이 중지됩니다. 새 인스턴스의 워밍업이 완료되지 않았기 때문에 완료율은 아직 완료된 교체 수(50%)를 정확하게 반영하지 않습니다. 새 인스턴스가 0:45 에 워밍업 기간을 완료한 후 완료율은 50% 로 표시됩니다.

체크포인트 활성화(콘솔)

인스턴스 새로 고침을 시작하기 전에 체크포인트를 활성화하여 증분 또는 단계적 접근 방식을 사용하여 인스턴스를 교체할 수 있습니다. 이렇게 하면 검증을 위한 추가 시간이 제공됩니다.

체크포인트를 사용하는 인스턴스 새로 고침을 시작하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling Groups(Auto Scaling 그룹)를 선택합니다.

  2. Auto Scaling 그룹 옆의 확인란을 선택합니다.

    Auto Scaling 그룹 페이지 아래쪽에 분할 창이 열립니다.

  3. 인스턴스 새로 고침(Active instance refresh) 탭의 활성 인스턴스 새로 고침(Active Instance refreshes)에서 인스턴스 새로 고침 시작(Start instance refresh)을 선택합니다.

  4. 인스턴스 새로 고침 시작(Start instance refresh) 페이지에 최소 건전 백분율(Minimum healthy percentage)인스턴스 워밍업(Instance warmup)을 입력합니다.

  5. 체크포인트 활성화(Enable checkpoints) 확인란을 선택합니다.

    그러면 첫 번째 체크포인트에 대한 백분율 임계값을 정의할 수 있는 상자가 표시됩니다.

  6. 그룹의 ____%를 새로 고칠 때까지 계속 진행(Proceed until ____ % of the group is refreshed)에 숫자(1~100)를 입력합니다. 이렇게 하면 첫 번째 체크포인트의 백분율이 설정됩니다.

  7. 다른 체크포인트를 추가하려면Add checkpoint(체크포인트 추가)를 클릭하고 다음 체크포인트의 백분율을 정의합니다.

  8. 체크포인트에 도달한 후 Amazon EC2 Auto Scaling이 대기하는 시간을 지정하려면 체크포인트 간에 1 hour 대기의 필드를 업데이트합니다. 시간 단위는 시, 분 또는 초가 될 수 있습니다.

  9. 인스턴스 새로 고침 선택을 마치면 인스턴스 새로 고침 시작을 선택합니다.

체크포인트 활성화(AWS CLI)

를 사용하여 체크포인트를 활성화한 상태로 인스턴스 새로 고침을 시작하려면 다음 AWS CLI파라미터를 정의하는 구성 파일이 필요합니다.

  • CheckpointPercentages: 교체할 인스턴스의 백분율에 대한 임계값을 지정합니다. 이러한 임계값은 체크포인트를 제공합니다. 교체 및 워밍업되는 인스턴스의 백분율이 지정된 임계값 중 하나에 도달하면 작업이 지정된 기간에 대기합니다. CheckpointDelay에서 대기할 시간(초)을 지정합니다. 지정된 기간이 경과하면 인스턴스 새로 고침은 다음 체크포인트에 도달할 때까지 계속됩니다(해당하는 경우).

  • CheckpointDelay: 계속 진행하기 전 체크포인트에 도달한 후 대기하는 시간(초)을 지정합니다. 검증을 수행할 수 있는 충분한 시간을 제공하는 기간을 선택합니다.

CheckpointPercentages 어레이에 표시된 마지막 값은 성공적으로 교체해야 하는 Auto Scaling 그룹의 백분율을 설명합니다. 이 백분율이 성공적으로 교체되고 각 인스턴스가 초기화를 완료한 것으로 간주되면 작업이 Successful(으)로 전환됩니다.

체크포인트를 여러 개 생성하려면

체크포인트를 여러 개 생성하려면 다음 예의 start-instance-refresh 명령을 사용합니다. 이 예에서는 처음에 Auto Scaling 그룹의 1%를 새로 고치는 인스턴스 새로 고침을 구성합니다. 인스턴스 새로 고침은 10분을 기다린 후 다음 19퍼센트를 새로 고치고 10분을 더 기다립니다. 마지막으로 그룹의 나머지 인스턴스를 새로 고치고 작업을 해지합니다.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

config.json의 콘텐츠:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [1,20,100], "CheckpointDelay": 600 } }
단일 체크포인트를 생성하려면

단일 체크포인트를 생성하려면 다음 예의 start-instance-refresh 명령을 사용합니다. 이 예에서는 처음에 Auto Scaling 그룹의 20%를 새로 고치는 인스턴스 새로 고침을 구성합니다. 인스터스 새로 고침은 10분을 기다린 후 그룹의 나머지 인스턴스를 새로 고치고 작업을 해지합니다.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

config.json의 콘텐츠:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [20,100], "CheckpointDelay": 600 } }
Auto Scaling 그룹을 부분적으로 새로 고치려면

Auto Scaling 그룹의 일부만 교체한 다음 작업을 완전히 중지하려면 다음 예의 start-instance-refresh 명령을 사용합니다. 이 예에서는 처음에 Auto Scaling 그룹의 1%를 새로 고치는 인스턴스 새로 고침을 구성합니다. 인스턴스 새로 고침은 10분을 기다린 후 다음 19%를 새로 고치고 작업을 해지합니다.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

config.json의 콘텐츠:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [1,20], "CheckpointDelay": 600 } }