AWS Health에서 이벤트에 대한 응답으로 EC2 인스턴스에서 자동으로 작업 실행 - AWS Health

AWS Health에서 이벤트에 대한 응답으로 EC2 인스턴스에서 자동으로 작업 실행

Amazon EC2 인스턴스에 대해 예약된 이벤트에 응답하는 작업을 자동화할 수 있습니다. AWS Health가 AWS 계정으로 이벤트를 보내면 EventBridge 규칙이 AWS Systems Manager 자동화 문서와 같은 대상을 호출하여 사용자를 대신하여 작업을 자동화할 수 있습니다.

예를 들어 Amazon EC2 인스턴스 만료 이벤트가 Amazon Elastic Block Store(Amazon EBS)-지원 EC2 인스턴스에 대해 예약된 경우, AWS Health가 AWS Health Dashboard로 AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED 이벤트 유형을 전송합니다. 규칙에서 이 이벤트 유형을 감지하면 인스턴스의 중지 및 시작을 자동화할 수 있습니다. 이렇게 하면 이러한 작업을 수동으로 수행할 필요가 없습니다.

참고

Amazon EC2 인스턴스에 대한 작업을 자동화하려면 Systems Manager에서 인스턴스를 관리해야 합니다.

자세한 내용은 Amazon EC2 사용 설명서에서 EventBridge를 사용하여 Amazon EC2 자동화를 참조하세요.

사전 조건

규칙을 생성하려면 먼저 AWS Identity and Access Management(IAM) 정책을 생성하고, IAM 역할을 생성하고, 역할의 신뢰 정책을 업데이트해야 합니다.

다음 절차에 따라 역할에 맞는 고객 관리형 정책을 생성합니다. 이 정책은 사용자를 대신하여 작업을 수행할 수 있는 권한을 역할에 부여합니다. 이 절차에서는 IAM 콘솔에서 JSON 정책 편집기를 사용합니다.

IAM 정책을 만들려면
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택합니다.

  3. 정책 생성을 선택합니다.

  4. JSON 탭을 선택합니다.

  5. 다음 JSON을 복사한 다음 편집기에서 기본 JSON과 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:DescribeInstanceStatus" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:*:*:Automation*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/AutomationEVRole" } ] }
    1. Resource 파라미터에서 Amazon 리소스 이름(ARN)은 AWS 계정 ID를 입력합니다.

    2. 역할 이름을 바꾸거나 기본값을 사용할 수도 있습니다. 이 예시에서는 AutomationEVRole을 사용합니다.

  6. Next: Tags(다음: 태그)를 선택합니다.

  7. (선택 사항) 태그를 키 값 페어로 사용하여 메타데이터를 정책에 추가할 수 있습니다.

  8. Next: Review(다음: 검토)를 선택합니다.

  9. 정책 검토 페이지에서 이름(예: AutomationEVRolePolicy)설명(선택 사항)을 입력합니다.

  10. 요약 페이지를 검토하여 정책에서 허용하는 권한을 확인합니다. 정책에 만족하면 정책 생성을 선택합니다.

이 정책은 이 역할이 수행할 수 있는 작업을 정의합니다. 자세한 내용은 IAM 사용 설명서IAM 정책 생성(콘솔)을 참조하십시오.

정책을 생성한 후 IAM 역할을 생성한 다음 이 정책을 해당 역할에 연결해야 합니다.

AWS 서비스에 대한 역할 생성하기
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할(Roles)을 선택한 후 역할 생성(Create role)을 선택합니다.

  3. 신뢰할 수 있는 엔터티 유형 선택(Select type of trusted entity)에서 AWS 서비스(service)를 선택합니다.

  4. 이 역할을 맡도록 허용할 서비스에 대해 EC2를 선택합니다.

  5. 다음: 권한을 선택합니다.

  6. AutomationEVRolePolicy와 같은 생성한 정책 이름을 입력한 다음 정책 옆의 확인란을 선택합니다.

  7. 다음: 태그를 선택합니다.

  8. (선택 사항) 태그를 키 값 페어로 사용하여 메타데이터를 역할에 추가할 수 있습니다.

  9. 다음: 검토를 선택합니다.

  10. 역할 이름AutomationEVRole을 입력합니다. 이 이름은 사용자가 생성한 IAM 정책의 ARN에 표시되는 이름과 동일해야 합니다.

  11. (선택 사항) Role description(역할 설명)에 역할에 대한 설명을 입력합니다.

  12. 역할을 검토한 다음 Create role을 선택합니다.

자세한 내용은 IAM 사용 설명서AWS 서비스에 대한 역할 생성을 참조하십시오.

마지막으로 생성한 역할에 대한 신뢰 정책을 업데이트할 수 있습니다. 이 절차를 완료해야만 EventBridge 콘솔에서 이 역할을 선택할 수 있습니다.

역할에 대한 신뢰 정책 업데이트
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택합니다.

  3. AWS 계정의 역할 목록에서 AutomationEVRole과 같이 생성한 역할의 이름을 선택합니다.

  4. 신뢰 관계 탭을 선택한 후 신뢰 관계 편집을 선택합니다.

  5. 정책 문서의 경우 다음 JSON을 복사하고 기본 정책을 제거한 다음 복사한 JSON을 그 자리에 붙여넣습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. 신뢰 정책 업데이트를 선택합니다.

자세한 내용은 IAM 사용 설명서에서 역할 신뢰 정책 수정하기(콘솔)를 참조하십시오.

EventBridge에 대한 규칙 생성

다음 절차에 따라 EventBridge 콘솔에서 규칙을 생성하면 사용 중지될 예정인 EC2 인스턴스의 중지 및 시작을 자동화할 수 있습니다.

Systems Manager 자동 작업에 대한 EventBridge 규칙을 만들려면
  1. Amazon EventBridge 콘솔(https://console.aws.amazon.com/events/)을 엽니다.

  2. 탐색 창의 Events(이벤트) 아래에서 Rules(규칙)를 선택합니다.

  3. 규칙 생성 페이지에서 규칙의 이름설명을 입력합니다.

  4. 패턴 정의(Define pattern)에서 이벤트 패턴(Event pattern)을 선택한 다음 서비스별 사전 정의된 패턴(Pre-defined pattern by service)을 선택합니다.

  5. 서비스 제공업체(Service provider)AWS를 선택합니다.

  6. 서비스 이름에서 상태를 선택합니다.

  7. 이벤트 유형에서 특정 상태 이벤트를 선택합니다.

  8. 특정 서비스를 선택한 다음 EC2를 선택합니다.

  9. 특정 이벤트 유형 범주를 선택한 다음 scheduledChange를 선택합니다.

  10. 특정 이벤트 유형 코드를 선택한 다음 이벤트 유형 코드를 선택합니다.

    예를 들어 Amazon EC2 EBS 지원 인스턴스의 경우 AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED를 선택합니다. Amazon EC2 인스턴스 스토어 지원 인스턴스의 경우 AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED를 선택합니다.

  11. [모든 리소스(Any resource)]를 선택합니다.

    이벤트 패턴은 다음 예와 유사합니다.

    { "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
  12. 시스템 관리자 자동화 문서 대상을 추가합니다. 대상 선택대상에서 SSM 자동화를 선택합니다.

  13. [문서(Document)]에서 [AWS-RestartEC2Instance]를 선택합니다.

  14. 자동화 파라미터 구성을 펼친 다음 입력 변환기를 선택합니다.

  15. 입력 경로 필드에 {"Instances":"$.resources"}를 입력합니다.

  16. 두 번째 필드에 {"InstanceId": <Instances>}을(를) 입력합니다.

  17. 기존 역할 사용을 선택한 다음, 생성한 IAM 역할(예: AutomationvRole)을 선택합니다.

    대상은 다음 예시와 같은 형식이어야 합니다.

    EventBridge 콘솔의 “SSM 자동화” 예제 스크린샷.
    참고

    필수 EC2 및 Systems Manager 권한과 신뢰 관계를 갖춘 기존 IAM 역할이 없는 경우 해당 역할은 목록에 표시되지 않습니다. 자세한 내용은 사전 조건 섹션을 참조하십시오.

  18. 생성(Create)을 선택합니다.

    계정에서 규칙과 일치하는 이벤트가 발생하는 경우 EventBridge는 이벤트를 지정된 대상으로 전송합니다.