EventBridge를 사용하여 EC2 인스턴스에 대해 예약된 이벤트의 알림을 받으려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2023년 1월 18일

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 예정된 이벤트가 있을 때 Amazon EventBridge로부터 알림을 받고 싶습니다.

간략한 설명

EC2 인스턴스에 대한 예약된 이벤트에서 트리거하는 EventBridge 규칙을 생성할 수 있습니다. 그리고 이벤트 패턴과 일치하는 이벤트에 대해 Amazon Simple Notification Service(SNS) 알림을 구성할 수 있습니다. AWS Lambda를 통해 추가 처리도 구성할 수 있습니다.

해결 방법

중요: 시작하기 전에 알림에 대한 SNS 주제가 있는지 확인합니다. 아직 없으면 새 SNS 주제를 생성하고 구독합니다.

EventBridge 콘솔을 사용하여 이벤트에서 시작되는 EventBridge 규칙을 생성합니다.

1.    규칙에 이름(Name)설명(Description)(선택 사항)을 할당합니다.

2.    Event bus(이벤트 버스)의 경우 default(기본값)를 선택합니다.

3.    Rule type(규칙 유형)에서 Rule with an event pattern(이벤트 패턴이 있는 규칙)을 선택합니다.

4.    다음(Next)을 선택합니다.

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

6.    (선택 사항)Sample events(샘플 이벤트)에서 이벤트 유형을 선택합니다.

7.    Creation method(생성 방법)에서 Use pattern form(패턴 양식 사용)을 선택합니다.

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

9.    AWS service(AWS 서비스)에서 Health를 선택합니다. 이는 이벤트 소스인 AWS 서비스의 이름입니다.

10.    Event Type(이벤트 유형)에서 Specific Health events(특정 Health 이벤트)를 선택합니다.

11.    Specific service(특정 서비스)를 선택하고 EC2를 선택합니다.

12.    Specific event type category(특정 이벤트 유형 범주)를 선택하고 scheduledChange를 선택합니다.

13.    (선택 사항) 보다 구체적인 규칙을 만들려면 Specific event type code(특정 이벤트 유형 코드) 또는 Specific resource(특정 리소스)를 포함합니다. 이러한 옵션 중 하나를 규칙에 추가하면 특정 이벤트 또는 인스턴스에 대한 알림이 전송됩니다.

이러한 설정은 다음과 같은 이벤트 패턴을 생성합니다.

참고: 또한 규칙으로 다음 코드를 복사하고 붙여넣어 이벤트 패턴을 생성할 수도 있습니다. 규칙 생성(Create Rule)을 선택한 후 이벤트 패턴 미리 보기(Event Pattern preview) 섹션에서 편집(Edit)을 선택합니다. 아래 코드를 삽입하고 Save(저장)을 선택한 다음, SNS 대상을 생성하는 단계로 진행합니다.

{
  "source": [
    "aws.health"
  ],
  "detail-type": [
    "AWS Health Event"
  ],
  "detail": {
    "service": [
      "EC2"
    ],
    "eventTypeCategory": [
      "scheduledChange"
    ]
  }
}

14.    SNS 대상을 선택합니다.
대상 추가(Add Target)를 선택합니다.
대상에서 SNS 주제(SNS topic)를 선택합니다.
주제(Topic)에서 알림에 사용할 SNS 주제를 선택합니다.

다음 예는 대상에 전달될 EventBridge 이벤트입니다.

{
  "version": "0",
  "id": "7fb65329-1628-4cf3-a740-95fg457h1402",
  "detail-type": "AWS Health Event",
  "source": "aws.health",
  "account": "123456789101",
  "time": "2016-06-05T06:27:57Z",
  "region": "us-east-1",
  "resources": ["i-12345678"],
  "detail": {
    "eventArn": "arn:aws:health:region::event/id",
    "service": "EC2",
    "eventTypeCode": "AWS_EC2_DEDICATED_HOST_NETWORK_MAINTENANCE_SCHEDULED",
    "eventTypeCategory": "scheduledChange",
    "startTime": "Sat, 05 Jun 2016 15:10:09 GMT",
    "eventDescription": [{
      "language": "en_US",
      "latestDescription": "A description of the event will be provided here"
    }],
    "affectedEntities": [{
      "entityValue": "i-12345678",
      "tags": {
        "stage": "prod",
        "app": "my-app"
      }
    }]
  }
}

사용 사례에서 대상에 특정 필드를 전달해야 하는 경우, 입력 구성(Configure input)입력 변화기(Input Transformer)에 첨부합니다. 또는 Lambda 함수를 대상으로 첨부하여 지정된 처리를 실행합니다.