축소 시 종료할 Auto Scaling 인스턴스 제어 - Amazon EC2 Auto Scaling

축소 시 종료할 Auto Scaling 인스턴스 제어

Amazon EC2 Auto Scaling은 종료 정책을 사용하여 축소 이벤트 중에 처음 종료할 인스턴스를 결정합니다. 종료 정책은 종료할 인스턴스를 선택할 때 Amazon EC2 Auto Scaling에서 사용하는 종료 기준을 정의합니다.

Auto Scaling 그룹은 기본 종료 정책을 사용하지만, 사용자는 원하는 경우 자신의 종료 기준에 따라 자체 종료 정책을 선택하거나 생성할 수 있습니다. 이렇게 하면 특정 애플리케이션 요구 사항에 따라 인스턴스가 종료될 수 있습니다.

또한 Amazon EC2 Auto Scaling은 인스턴스 축소 보호도 제공합니다. 이 기능을 사용하면 축소 이벤트 중에 인스턴스가 종료되지 않습니다. Auto Scaling 그룹을 생성할 때 인스턴스 축소 보호를 활성화할 수 있으며 실행 중인 인스턴스의 설정을 변경할 수 있습니다. 기존 Auto Scaling 그룹에서 인스턴스 축소 보호를 활성화하면 그 이후에 시작된 모든 새 인스턴스에는 인스턴스 축소 보호 기능이 활성화되어 있습니다.

참고

인스턴스 축소 보호는 인적 오류(예: 누군가 Amazon EC2 콘솔 또는 AWS CLI를 사용하여 인스턴스를 수동으로 종료한 경우) 발생 시 인스턴스가 종료되지 않도록 보장하지 않습니다. 인스턴스가 실수로 종료되지 않도록 방지하려면, Amazon EC2 종료 방지를 사용합니다. 그러나 종료 방지 및 인스턴스 축소 보호가 활성화된 경우에도 상태 확인 시 인스턴스가 비정상이라고 판단되거나 그룹 자체가 실수로 삭제된 경우 인스턴스 스토리지에 저장된 데이터가 손실될 수 있습니다. 다른 환경과 마찬가지로 가장 좋은 방법은 데이터를 자주 백업하거나 비즈니스 연속성 요구 사항에 따라 적절하게 백업하는 것입니다.

종료 정책 사용 시나리오

다음 섹션에서는 Amazon EC2 Auto Scaling에서 종료 정책을 사용하는 시나리오에 대해 설명합니다.

축소 이벤트

Auto Scaling 그룹에 원하는 용량에 대한 새 값이 그룹의 현재 용량보다 적은 경우에도 축소 이벤트가 발생합니다.

다음과 같은 시나리오에서 축소 이벤트가 발생합니다.

  • 동적 조정 정책을 사용할 때 지표 값의 변화로 그룹 크기가 줄어드는 경우

  • 예약된 조정을 사용할 때 예약된 작업의 결과로 그룹 크기가 줄어드는 경우

  • 그룹의 크기를 수동으로 줄이는 경우

다음 예에서는 축소 이벤트가 있을 때 종료 정책이 작동하는 방식을 보여 줍니다.

  1. 이 예의 Auto Scaling 그룹에는 인스턴스 유형 1개와 가용 영역 2개가 있고 원하는 용량은 인스턴스 2개입니다. 또한 리소스 사용률이 증가하거나 감소할 때 인스턴스를 추가 및 제거하는 동적 조정 정책이 있습니다. 이 그룹에 있는 인스턴스 2개는 다음 다이어그램에 표시된 것처럼 가용 영역 2개에 분산됩니다.

    
                                기본 Auto Scaling 그룹
  2. Auto Scaling 그룹이 확장되면 Amazon EC2 Auto Scaling은 새 인스턴스를 시작합니다. 이제 Auto Scaling 그룹에 있는 인스턴스 3개가 다음 다이어그램에 표시된 것처럼 가용 영역 2개에 분산됩니다.

    
                                조정 작업 수행 후의 Auto Scaling 그룹.
  3. Auto Scaling 그룹이 축소되면 Amazon EC2 Auto Scaling이 인스턴스 중 하나를 종료합니다.

  4. 그룹에 특정 종료 정책을 할당하지 않은 경우 Amazon EC2 Auto Scaling에서는 기본 종료 정책을 사용합니다. 인스턴스가 2개인 가용 영역을 선택하고 가장 오래된 시작 템플릿 또는 시작 구성을 시작하는 인스턴스를 종료합니다. 인스턴스가 동일한 시작 템플릿 또는 시작 구성에서 시작된 경우 Amazon EC2 Auto Scaling은 다음번 결제 시간에 가장 근접한 인스턴스를 선택한 후 이를 종료합니다.

인스턴스 새로 고침

Auto Scaling 그룹의 인스턴스를 업데이트하기 위해 인스턴스 새로 고침을 시작합니다. 인스턴스 새로 고침 중에 Amazon EC2 Auto Scaling은 그룹의 인스턴스를 종료한 다음 종료된 인스턴스에 대한 대체를 시작합니다. Auto Scaling 그룹의 종료 정책은 먼저 대체되는 인스턴스를 제어합니다.

가용 영역 재분배

Amazon EC2 Auto Scaling은 Auto Scaling 그룹에 대해 활성화된 가용 영역 전체에서 용량을 균등하게 조정합니다. 이를 통해 가용 영역 중단으로 인한 영향을 줄일 수 있습니다. 가용 영역 간 용량 분배가 균형이 맞지 않을 경우 Amazon EC2 Auto Scaling은 인스턴스 수가 가장 적은 활성 가용 영역에서 인스턴스를 시작하고 다른 곳에서 인스턴스를 종료하여 Auto Scaling 그룹의 용량 균형을 조정합니다. 종료 정책은 어떤 인스턴스를 가장 먼저 종료할지 우선순위를 제어합니다.

여러 가용 영역에 걸쳐 인스턴스 배포의 균형이 깨지는 데에는 여러 가지 이유가 있습니다.

인스턴스 제거

Auto Scaling 그룹에서 인스턴스를 분리하거나, 인스턴스를 대기 상태로 전환하거나, 인스턴스를 명시적으로 종료하고 원하는 용량을 줄이면 대체 인스턴스가 시작되지 않으므로 그룹의 균형이 깨질 수 있습니다. 이 경우 Amazon EC2 Auto Scaling이 가용 영역을 재분배하여 보상합니다.

원래 지정한 가용 영역과 다른 가용 영역 사용

추가 가용 영역을 포함하도록 Auto Scaling 그룹을 확장하거나 사용할 가용 영역을 변경하면 Amazon EC2 Auto Scaling은 새 가용 영역에서 인스턴스를 시작하고 다른 영역의 인스턴스를 종료하여 인스턴스가 가용 영역에 고르게 분산되도록 합니다.

가용성 중단

가용성 중단은 거의 발생하지 않습니다. 그러나 하나의 가용 영역이 사용할 수 없게 되어 나중에 복구되면 Auto Scaling 그룹이 가용 영역 간에 불균형하게 분배될 수 있습니다. Amazon EC2 Auto Scaling은 그룹을 점진적으로 재분배하려고 시도하고 재분배 시 다른 영역의 인스턴스가 종료될 수 있습니다.

인스턴스 유형이 1개, 가용 영역이 2개가 있고, 원하는 용량이 인스턴스 2개인 Auto Scaling 그룹이 있는 경우를 예로 들어 보겠습니다. 하나의 가용 영역에 장애가 발생하는 경우 Amazon EC2 Auto Scaling은 정상 가용 영역에서 새 인스턴스를 자동으로 시작하여 비정상 가용 영역의 인스턴스를 대체합니다. 비정상 가용 영역이 나중에 정상 상태로 전환되면 Amazon EC2 Auto Scaling은 이 영역에서 새 인스턴스를 자동으로 시작합니다. 이로 인해 영향을 받지 않는 영역의 인스턴스가 종료됩니다.

참고

재분배 시 Amazon EC2 Auto Scaling에서는 이전 인스턴스를 종료하기 전에 새 인스턴스를 시작하여 재분배로 인해 애플리케이션의 성능이나 가용성이 저하되지 않도록 합니다.

Amazon EC2 Auto Scaling에서는 이전 인스턴스 종료 전에 새 인스턴스를 시작하려 하므로 지정된 최대 용량에 도달하거나 이에 근접하면 재분배 활동을 지연시키거나 완전히 중지할 수 있습니다. 이 문제를 피하기 위해 시스템에서는 재분배 활동 중에 그룹의 지정된 최대 용량을 10% 여유(또는 인스턴스 1개의 여유 중 큰 쪽)만큼 일시적으로 초과할 수 있습니다. 그룹이 최대 용량에 도달하거나 이에 근접하여 재분배가 필요한 경우, 또는 사용자 요청에 의한 영역 재조정이나 영역 가용성 문제에 대처하기 위한 경우에만 이 여유분만큼 확장됩니다. 확장은 그룹에 재분배가 필요한 동안에만 유지됩니다.