Amazon EC2 Auto Scaling
사용 설명서

Auto Scaling 인스턴스 상태 확인

Auto Scaling 인스턴스의 상태는 정상 또는 비정상입니다. Auto Scaling 그룹의 모든 인스턴스는 정상 상태에서 시작됩니다. Amazon EC2 Auto Scaling에서 해당 인스턴스가 비정상 상태라는 알림을 수신하지 않는 한 인스턴스는 정상 상태로 간주됩니다. 이 알림은 Amazon EC2, Elastic Load Balancing 또는 사용자 지정 상태 확인 중 하나 이상에서 전송될 수 있습니다.

Amazon EC2 Auto Scaling에서 상태가 비정상인 것으로 표시한 인스턴스는 교체가 예정됩니다. 인스턴스를 교체하지 않으려면 개별 Auto Scaling 그룹의 상태 확인 프로세스를 일시 중지하면 됩니다.

인스턴스 상태

Amazon EC2 Auto Scaling은 다음 중 하나 이상을 사용하여 인스턴스의 상태를 확인할 수 있습니다.

  • 인스턴스를 손상할 수 있는 하드웨어 및 소프트웨어 문제를 확인하기 위해 Amazon EC2가 제공하는 상태 검사입니다. 인스턴스 상태 검사와 시스템 상태 검사가 모두 포함됩니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서상태 검사 유형을 참조하십시오.

  • Elastic Load Balancing에서 제공한 상태 확인.

  • 사용자 지정 상태 확인.

EC2 상태 검사는 Amazon EC2 Auto Scaling의 기본 상태 확인이며, 특별한 구성이 필요 없습니다. 그러나 추가 검사를 지정하여 Auto Scaling 그룹에서 실시하는 기본 상태 확인을 사용자 지정할 수 있습니다. 자세한 내용은 Auto Scaling 그룹에 Elastic Load Balancing 상태 확인 추가사용자 지정 상태 확인 단원을 참조하십시오.

인스턴스 상태 확인

인스턴스가 완전히 구성되고 초기 상태 확인을 통과하면 해당 인스턴스는 Amazon EC2 Auto Scaling에 의해 정상으로 판정되고 InService 상태에 들어갑니다. Amazon EC2 Auto Scaling은 Auto Scaling 그룹의 인스턴스에 대한 주기적인 상태 확인을 수행하여 상태가 비정상인 인스턴스를 식별합니다.

Amazon EC2 Auto Scaling 상태 확인은 Amazon EC2 상태 검사 결과를 사용하여 인스턴스의 상태를 확인합니다. 인스턴스가 running 이외의 상태이거나 시스템 상태가 impaired이면 Amazon EC2 Auto Scaling는 해당 인스턴스를 비정상으로 간주하여 교체 인스턴스를 시작합니다. 인스턴스가 다음 상태일 때도 위와 같이 실행됩니다.

  • stopping

  • stopped

  • terminating

  • terminated

Auto Scaling 그룹에 로드 밸런서 또는 대상 그룹을 연결한 경우에는 Elastic Load Balancing가 OutOfService로 보고할 때 인스턴스를 비정상으로 표시하도록 그룹을 구성할 수 있습니다. 로드 밸런서에 연결 드레이닝이 활성화된 경우 Amazon EC2 Auto Scaling이 대기하는 시간은 조정 이벤트나 상태 확인 대체로 인해 인스턴스를 종료하기 전에 내부 요청이 완료되거나 최대 제한 시간이 만료되는 경우 중 먼저 일어나는 쪽에 해당합니다. Elastic Load Balancing 상태 확인을 사용하도록 Auto Scaling 그룹을 구성하면 Amazon EC2 Auto Scaling이 EC2 상태 검사와 Elastic Load Balancing 상태 확인을 모두 실시하여 인스턴스의 상태를 확인합니다. 자세한 내용은 Auto Scaling 그룹에 Elastic Load Balancing 상태 확인 추가 단원을 참조하십시오.

사용자 지정 상태 확인을 사용할 경우 이 상태 확인 정보를 Amazon EC2 Auto Scaling으로 보내서 Amazon EC2 Auto Scaling이 이 정보를 사용하게 할 수 있습니다. 예를 들어, 인스턴스가 예상대로 작동하지 않는다고 판단되는 경우 인스턴스의 상태를 Unhealthy로 설정할 수 있습니다. Amazon EC2 Auto Scaling은 다음에 인스턴스에 대해 상태 확인을 수행할 때, 인스턴스가 비정상이라고 판단하면 교체 인스턴스를 시작합니다.

상태 확인 유예 기간

대부분의 경우, 서비스 상태가 된 직후의 Auto Scaling 인스턴스는 웜 업을 거쳐야 상태 확인을 통과할 수 있습니다. Amazon EC2 Auto Scaling은 상태 확인 유예 기간이 끝날 때까지 기다린 후 인스턴스의 상태를 확인합니다. Amazon EC2 상태 확인과 Elastic Load Balancing 상태 확인은 상태 확인 유예 기간이 끝나기 전에 완료될 수 있습니다. 하지만 Amazon EC2 Auto Scaling은 상태 확인 유예 기간이 종료되기 전에는 그러한 상태를 반영하지 않습니다. 인스턴스에 충분한 웜 업 시간을 제공하려면 상태 확인 유예 기간이 애플리케이션의 예상 시작 시간을 포함하도록 해야 합니다. 수명 주기 후크를 추가할 경우 유예 기간은 수명 주기 후크 작업이 완료되고 인스턴스가 InService 상태로 전환되기까지 시작되지 않습니다.

비정상 인스턴스 교체

Amazon EC2 또는 Elastic Load Balancing 상태 확인 결과 인스턴스가 비정상으로 표시된 후에는 거의 즉시 교체가 예약됩니다. 인스턴스 상태가 자동으로 복구되는 일은 없습니다. SetInstanceHealth 작업(또는 as-set-instance-health 명령)을 호출하여 수동으로 끼어들어서 인스턴스의 상태를 다시 정상으로 설정할 수는 있습니다. 이미 인스턴스가 종료된 경우에는 오류 메시지가 발생합니다. 인스턴스를 비정상으로 표시하는 것과 실제 인스턴스 종료 간의 시간 간격이 매우 짧으므로, SetInstanceHealth 작업(또는 as-set-instance-health 명령)을 통해 인스턴스 상태를 다시 정상으로 설정하려는 시도는 일시 중지된 그룹에만 유용할 수 있습니다. 자세한 내용은 조정 프로세스의 일시 중지 및 재개 단원을 참조하십시오.

Amazon EC2 Auto Scaling에서는 비정상 인스턴스의 종료를 위한 새 조정 활동을 생성한 다음 이를 종료합니다. 나중에 다른 조정 활동에 의해 새 인스턴스가 시작되어 종료된 인스턴스를 대체합니다.

인스턴스가 종료되면 연결된 모든 Elastic IP 주소와의 연결이 해제되고 새 인스턴스와 자동으로 연결되지 않습니다. 이러한 Elastic IP 주소를 새 인스턴스에 수동으로 연결해야 합니다. 이와 유사하게, 인스턴스가 종료되면 여기 연결된 EBS 볼륨이 분리됩니다. 이러한 EBS 볼륨을 새 인스턴스에 수동으로 연결해야 합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서엘라스틱 IP 주소 연결 해제 및 다른 인스턴스와 다시 연결Amazon EBS 볼륨을 인스턴스에 연결을 참조하십시오.

사용자 지정 상태 확인

자체 상태 확인 시스템이 있는 경우에는 시스템에서 Amazon EC2 Auto Scaling로 직접 인스턴스의 상태 정보를 전송할 수 있습니다.

다음 set-instance-health 명령을 사용하여 지정된 인스턴스의 상태를 Unhealthy로 설정합니다.

aws autoscaling set-instance-health --instance-id i-123abc45d --health-status Unhealthy

다음 describe-auto-scaling-groups 명령을 사용하여 인스턴스 상태가 Unhealthy인지 확인합니다.

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

다음은 인스턴스의 상태가 Unhealthy이고 종료될 것임을 보여 주는 응답의 예입니다.

{ "AutoScalingGroups": [ { .... "Instances": [ { "InstanceId": "i-123abc45d", "AvailabilityZone": "us-west-2a", "HealthStatus": "Unhealthy", "LifecycleState": "Terminating", "LaunchConfigurationName": "my-lc" }, ... ] } ] }