EC2 인스턴스 리밸런싱 권고 - Amazon Elastic Compute Cloud

EC2 인스턴스 리밸런싱 권고

EC2 인스턴스 리밸런싱 권고(rebalance recommendation)는 스팟 인스턴스의 중단 위험이 높아질 때 알림을 보내는 신호입니다. 이 신호는 스팟 인스턴스 중단 2분 전 공지보다 일찍 도착할 수 있으므로 스팟 인스턴스를 사전에 관리할 수 있는 기회를 제공합니다. 중단 위험이 높아지지 않는 신규 또는 기존 스팟 인스턴스에 대한 워크로드를 리밸런싱하도록 결정할 수 있습니다.

Amazon EC2에서 항상 스팟 인스턴스 중단 2분 전 공지보다 먼저 리밸런싱 권고 신호를 전송할 수 있는 것은 아닙니다. 따라서 리밸런싱 권고 신호가 중단 2분 전 공지와 함께 도착할 수도 있습니다.

재분배 권장 사항은 EventBridge 이벤트 및 스팟 인스턴스의 인스턴스 메타데이터 항목으로 제공됩니다. 이벤트는 최선의 작업을 기반으로 발생됩니다.

참고

리밸런싱 권고는 2020년 11월 5일 00:00 UTC 이후에 시작된 스팟 인스턴스에만 지원됩니다.

수행할 수 있는 리밸런싱 작업

다음은 수행할 수 있는 리밸런싱 작업의 일부입니다.

정상 종료

스팟 인스턴스에 대한 리밸런싱 권고 신호를 수신하면 인스턴스 종료 절차를 시작할 수 있습니다. 이러한 절차에는 중지 전에 프로세스를 완료하는 작업 등이 포함될 수 있습니다. 예를 들어 시스템 또는 애플리케이션 로그를 Amazon Simple Storage Service(Amazon S3)에 업로드하거나 Amazon SQS 작업자를 종료하거나 Domain Name System(DNS)의 등록 취소를 완료할 수 있습니다. 외부 스토리지에 작업을 저장하고 나중에 다시 시작할 수도 있습니다.

새 작업 예약 차단

스팟 인스턴스에 대한 리밸런싱 권고 신호가 수신되면 예약된 작업이 완료될 때까지 인스턴스를 계속 사용하면서 인스턴스에 새 작업이 예약되는 것을 차단할 수 있습니다.

새로운 대체 인스턴스를 사전 예방적으로 시작

리밸런싱 권고 신호가 생성될 때 대체 스팟 인스턴스를 자동으로 시작하도록 Auto Scaling 그룹, EC2 플릿 또는 스팟 플릿을 구성할 수 있습니다. 자세한 내용은 Amazon EC2 Auto Scaling User Guide의 Use Capacity Rebalancing to handle Amazon EC2 Spot interruptions와 본 사용 설명서의 용량 리밸런싱 섹션(EC2 플릿의 경우) 및 용량 재조정 섹션(스팟 플릿의 경우)을 참조하세요.

리밸런싱 권고 신호 모니터링

리밸런싱 권고 신호를 모니터링하여 신호가 생성될 때 이전 섹션에서 지정한 작업을 수행할 수 있습니다. 리밸런싱 권고 신호는 Amazon EventBridge(이전의 Amazon CloudWatch Events)로 전송되는 이벤트와 스팟 인스턴스의 인스턴스 메타데이터로 제공됩니다.

리밸런싱 권고 신호 모니터링:

Amazon EventBridge 사용

스팟 인스턴스에 대한 리밸런싱 권고 신호가 생성되면 신호에 대한 이벤트가 Amazon EventBridge로 전송됩니다. EventBridge에서 규칙에 정의된 패턴과 일치하는 이벤트 패턴이 감지되는 경우 EventBridge는 규칙에 정의된 대상을 호출합니다.

다음은 리밸런싱 권고 신호에 대한 예제 이벤트입니다.

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance Rebalance Recommendation", "source": "aws.ec2", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-east-2", "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"], "detail": { "instance-id": "i-1234567890abcdef0" } }

다음 필드는 규칙에 정의되는 이벤트 패턴을 형성합니다.

"detail-type": "EC2 Instance Rebalance Recommendation"

리밸런싱 권고 이벤트를 식별합니다.

"source": "aws.ec2"

Amazon EC2에서 시작된 이벤트를 식별합니다.

EventBridge 규칙 생성

EventBridge 규칙을 작성하고 이벤트 패턴이 규칙과 일치할 때 수행할 작업을 자동화할 수 있습니다.

다음 예제에서는 Amazon EC2에서 리밸런싱 권고 신호가 생성될 때마다 이메일, 문자 메시지 또는 모바일 푸시 알림을 보내는 EventBridge 규칙을 생성합니다. 이 신호는 규칙에 정의된 작업을 트리거하는 EC2 Instance Rebalance Recommendation 이벤트로 생성됩니다.

EventBridge 규칙을 생성하기 전에 이메일, 문자 메시지 또는 모바일 푸시 알림에 대한 Amazon SNS 주제를 생성해야 합니다.

리밸런싱 권고 이벤트에 대한 EventBridge 규칙을 생성하려면
  1. https://console.aws.amazon.com/events/에서 Amazon EventBridge 콘솔을 엽니다.

  2. [규칙 생성(Create rule)]을 선택합니다.

  3. 규칙 세부 정보 정의(Define rule detail)에 대해 다음을 수행하십시오:

    1. 규칙의 이름을 입력하고 선택적으로 설명을 입력합니다.

      규칙은 동일한 지역과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

    2. 이벤트 버스(Event bus)에서 기본값(default)을 선택합니다. 계정의 AWS 서비스가 이벤트를 생성하면 항상 계정의 기본 이벤트 버스로 이동합니다.

    3. 규칙 타입(Rule type)에서 이벤트 패턴이 있는 규칙(Rule with an event pattern)을 생성합니다.

    4. 다음을 선택합니다.

  4. 이벤트 패턴 빌드(Build event pattern)에서 다음을 수행하십시오:

    1. 이벤트 소스(Event source)에서 AWS 이벤트 또는 EventBridge 파트너 이벤트( events or EventBridge partner events)를 선택합니다.

    2. Event pattern(이벤트 패턴)에 EC2 Instance Rebalance Recommendation 이벤트와 일치하도록 다음 이벤트 패턴을 지정하고 Save(저장)를 선택합니다.

      { "source": ["aws.ec2"], "detail-type": ["EC2 Instance Rebalance Recommendation"] }

      이벤트 패턴을 추가하려면 다음과 같이 이벤트 패턴 양식(Event pattern form)을 선택하여 템플릿을 사용하거나 사용자 정의 패턴(JSON 편집기)(Custom pattern (JSON editor))을 선택하여 고유한 패턴을 지정할 수 있습니다.

      1. 템플릿을 사용하여 이벤트 패턴을 생성하려면 다음을 수행하세요.

        1. 이벤트 패턴 양식(Event pattern form)을 선택합니다.

        2. 이벤트 소스(Event source)에서 AWS 서비스(services)를 선택합니다.

        3. AWS 서비스(Service)에서 EC2 스팟 플릿(EC2 Spot Fleet)을 선택합니다.

        4. Event type(이벤트 유형)에서 EC2 Instance Rebalance Recommendation(EC2 인스턴스 재조정 권장 사항)을 선택합니다.

        5. 템플릿을 사용자 지정하려면 패턴 편집(Edit pattern)을 선택하고 예시 이벤트 패턴과 일치하도록 변경합니다.

      2. (대안) 사용자 정의 이벤트 패턴을 지정하려면 다음을 수행하세요.

        1. 사용자 정의 패턴(JSON 편집기)을 선택합니다.

        2. 이벤트 패턴(Event pattern) 상자에서 이 예시의 이벤트 패턴을 추가합니다.

    3. 다음을 선택합니다.

  5. 대상 선택(Select target(s))에서 다음을 수행합니다.

    1. 대상 유형(Target types)에서 AWS 서비스(service)를 선택합니다.

    2. 대상 선택(Select a target)에서 SNS 주제(SNS topic)를 선택하여 이벤트가 발생할 때 이메일, 문자 메시지 또는 모바일 푸시 알림을 보내도록 합니다.

    3. [주제(Topic)]에서 기존 주제를 선택합니다. 먼저 Amazon SNS 콘솔을 사용하여 Amazon SNS 주제를 생성해야 합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서에서 A2P(Application-to-Person) 메시징에 Amazon SNS 사용을 참조하세요.

    4. (선택 사항) 추가 설정(Additional settings)에서 선택적으로 추가 설정을 구성할 수 있습니다. 자세한 설명은 Amazon EventBridge 사용자 가이드Creating Amazon EventBridge rules that react to events(이벤트에 응답하는 Amazon EventBridge 규칙 생성)(16단계)를 참조하세요.

    5. 다음을 선택합니다.

  6. (선택 사항) 태그(Tags)에서 선택적으로 하나 이상의 태그를 규칙에 할당하고 다음(Next)을 선택할 수 있습니다.

  7. 검토 및 생성(Review and create)에서 다음을 수행합니다.

    1. 규칙의 세부 정보를 검토하고 필요에 따라 수정합니다.

    2. Create rule을 선택합니다.

자세한 내용은 Amazon EventBridge 사용 설명서에서 Amazon EventBridge 규칙Amazon EventBridge 이벤트 패턴을 참조하세요.

인스턴스 메타데이터 사용

인스턴스 메타데이터 범주 events/recommendations/rebalance는 스팟 인스턴스에 대한 리밸런싱 권고 신호가 생성되는 대략적인 시간(UTC)을 제공합니다.

리밸런싱 권고에 따라 조치를 취할 기회를 놓치지 않도록 5초마다 리밸런싱 권고 신호를 확인하는 것이 좋습니다.

스팟 인스턴스에서 리밸런싱 권고를 수신하는 경우 신호가 생성된 시간이 인스턴스 메타데이터에 나타납니다. 다음과 같이 신호가 생성된 시간을 검색할 수 있습니다.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/recommendations/rebalance

다음은 스팟 인스턴스에 대한 리밸런싱 권고 신호가 생성된 시간(UTC)을 나타내는 예시 출력입니다.

{"noticeTime": "2020-10-27T08:22:00Z"}

인스턴스에 대한 신호가 생성되지 않은 경우 events/recommendations/rebalance가 표시되지 않으며 이를 검색하려고 하면 HTTP 404 오류가 발생합니다.

리밸런싱 권고 신호를 사용하는 서비스

Amazon EC2 Auto Scaling, EC2 플릿 및 스팟 플릿에서는 리밸런싱 권고 신호를 사용하여 실행 중인 인스턴스에 스팟 인스턴스 중단 2분 전 공지가 수신되기 전에 새 스팟 인스턴스로 플릿을 미리 보강하여 워크로드 가용성을 유지할 수 있습니다. 이러한 서비스에서는 스팟 인스턴스의 가용성에 영향을 미치는 변경 사항을 모니터링하여 사전 예방적으로 대응할 수 있습니다. 자세한 내용은 다음을 참조하세요.