Amazon RDS 이벤트에서 트리거되는 규칙 생성 - Amazon Relational Database Service

Amazon RDS 이벤트에서 트리거되는 규칙 생성

Amazon EventBridge를 사용하면 AWS 서비스를 자동화하고 애플리케이션 가용성 문제나 리소스 변경 같은 시스템 이벤트에 응답할 수 있습니다.

Amazon RDS 이벤트를 Amazon EventBridge로 전송하는 규칙 생성

관심이 있는 Amazon RDS 이벤트와 이벤트가 규칙과 일치할 때 수행할 자동화된 작업을 나타내는 단순한 규칙을 작성할 수 있습니다. AWS Lambda 함수나 Amazon SNS 주제 등 다양한 대상을 설정하고 JSON 형식으로 된 이벤트를 받을 수 있습니다. 예를 들어 DB 인스턴스가 생성되거나 삭제될 때마다 Amazon EventBridge에 이벤트를 전송하도록 Amazon RDS를 구성할 수 있습니다. 자세한 내용은 Amazon CloudWatch Events 사용 설명서Amazon EventBridge 사용 설명서를 참조하세요.

RDS 이벤트에서 트리거되는 규칙 생성
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창의 이벤트 아래에서 규칙을 선택합니다.

  3. 규칙 생성을 선택합니다.

  4. [Event Source]에서 다음을 수행합니다.

    1. 이벤트 패턴을 선택합니다.

    2. 서비스 이름에서 Relational Database Service(RDS)를 선택합니다.

    3. 이벤트 유형(Event Type)에서 이벤트를 트리거할 Amazon RDS 리소스 유형을 선택합니다. 예를 들어, DB 인스턴스가 이벤트를 트리거하는 경우 RDS DB 인스턴스 이벤트(RDS DB Instance Event)를 선택합니다.

  5. 대상에서 대상 추가를 선택한 후 선택한 유형의 이벤트가 감지되면 작동할 AWS 서비스를 선택합니다.

  6. 필요할 경우 이 섹션의 다른 필드에 이 대상 유형에 관련된 정보를 입력합니다.

  7. 여러 대상 유형에 대해 EventBridge에서는 대상에 이벤트를 보낼 권한이 필요합니다. 이 경우 EventBridge는 이벤트 실행에 필요한 IAM 역할을 생성할 수 있습니다.

    • IAM 역할을 자동으로 생성하려면 이 특정 리소스에 대해 새 역할 생성을 선택합니다.

    • 이전에 생성한 IAM 역할을 사용하려면 기존 역할 사용을 선택합니다.

  8. 선택적으로 5-7단계를 반복하여 이 규칙의 다른 대상을 추가합니다.

  9. 세부 정보 구성을 선택합니다. 규칙 정의에 규칙의 이름과 규칙에 대한 설명을 입력합니다.

    규칙 이름은 이 리전 내에서 고유해야 합니다.

  10. 규칙 생성을 선택합니다.

자세한 내용은 Amazon CloudWatch 사용 설명서이벤트에서 트리거되는 EventBridge 규칙 생성을 참조하세요.

자습서: Amazon EventBridge를 사용하여 DB 인스턴스의 상태 변경 로깅

이 자습서에서는 Amazon RDS 인스턴스의 상태 변경을 로깅하는 AWS Lambda 함수를 생성합니다. 그런 다음 기존 RDS DB 인스턴스의 상태가 변경될 때마다 함수를 실행하는 규칙을 생성합니다. 이 자습서에서는 일시적으로 종료할 수 있는 실행 중인 작은 테스트 인스턴스가 있다고 가정합니다.

중요

실행 중인 프로덕션 DB 인스턴스에서 이 자습서를 수행하지 마세요.

1단계: AWS Lambda 함수 생성

Lambda 함수를 생성하여 상태 변경 이벤트를 기록합니다. 규칙을 생성할 때 이 함수를 지정합니다.

Lambda 함수를 만들려면
  1. https://console.aws.amazon.com/lambda/에서 AWS Lambda 콘솔을 엽니다.

  2. Lambda를 처음 사용하는 경우 시작 페이지가 표시됩니다. 지금 시작을 선택합니다. 그렇지 않은 경우에는 함수 생성을 선택합니다.

  3. 새로 작성을 선택합니다.

  4. 함수 생성 페이지에서 다음을 수행합니다.

    1. Lambda 함수의 이름과 설명을 입력합니다. 예를 들어 함수 이름을 RDSInstanceStateChange로 지정합니다.

    2. 런타임에서 Node.js 16x를 선택합니다.

    3. 아키텍처에서는 x86_64를 선택합니다.

    4. 실행 역할에서는 다음 중 하나를 수행합니다.

      • 기본 Lambda 권한을 가진 새 역할 생성을 선택합니다.

      • 기존 역할에서는 기존 역할 사용을 선택합니다. 사용하려는 역할을 선택합니다.

    5. 함수 생성을 선택합니다.

  5. [RDSInstanceStateChange] 페이지에서 다음을 수행합니다.

    1. 코드 소스에서 index.js를 선택합니다.

    2. index.js 창에서 기존 코드를 삭제합니다.

    3. 다음 코드를 입력합니다.

      console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
    4. [Deploy]를 선택합니다.

2단계: 규칙 생성

Amazon RDS 인스턴스를 시작할 때마다 Lambda 함수를 실행하는 규칙을 생성합니다.

EventBridge 규칙을 만들려면
  1. https://console.aws.amazon.com/events/에서 Amazon EventBridge 콘솔을 엽니다.

  2. 탐색 창에서 규칙을 선택합니다.

  3. 규칙 생성을 선택합니다.

  4. 규칙에 대해 이름과 설명을 입력하십시오. 예를 들면 RDSInstanceStateChangeRule을 입력합니다.

  5. 이벤트 패턴이 있는 규칙을 선택한 후다음을 선택합니다.

  6. 이벤트 소스에서 AWS 이벤트 또는 EventBridge 파트너 이벤트를 선택합니다.

  7. 이벤트 패턴 섹션까지 아래로 스크롤합니다.

  8. 이벤트 소스에서 AWS 서비스를 선택합니다.

  9. AWS 서비스에서는 Relational Database Service(RDS)를 선택합니다.

  10. 이벤트 유형에서 RDS DB 인스턴스 이벤트를 선택합니다.

  11. 기본 이벤트 패턴을 그대로 둡니다. 그리고 다음을 선택합니다.

  12. 대상 유형에서 AWS 서비스를 선택합니다.

  13. 대상 선택에서 Lambda 함수를 선택합니다.

  14. 함수에서는 생성한 Lambda 함수를 선택합니다. 다음을 선택합니다.

  15. 태그 구성에서는 다음을 선택합니다.

  16. 규칙의 단계를 검토하십시오. 그런 다음 규칙 생성을 선택합니다.

3단계: 규칙 테스트

규칙을 테스트하려면 RDS DB 인스턴스를 종료합니다. 인스턴스가 종료될 때까지 몇 분 기다린 후에 Lambda 함수가 호출되었는지 확인합니다.

DB 인스턴스를 중지하여 규칙을 테스트하려면
  1. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. RDS DB 인스턴스를 중지합니다.

  3. https://console.aws.amazon.com/events/에서 Amazon EventBridge 콘솔을 엽니다.

  4. 탐색 창에서 [규칙(Rules)]을 선택하고 생성한 규칙의 이름을 선택합니다.

  5. 규칙 세부 정보에서 모니터링을 선택합니다.

    그러면 Amazon CloudWatch 콘솔로 리디렉션됩니다. 리디렉션되지 않은 경우 CloudWatch에서 지표 보기를 클릭합니다.

  6. [모든 지표(All metrics)]에서 생성한 규칙의 이름을 선택합니다.

    그래프에 규칙이 호출된 것으로 표시되어야 합니다.

  7. 탐색 창에서 로그 그룹을 선택합니다.

  8. Lambda 함수에 대한 로그 그룹 이름(/aws/lambda/function-name)을 선택합니다.

  9. 로그 스트림 이름을 선택하여 시작한 인스턴스에서 함수를 통해 제공된 데이터를 확인합니다. 다음과 유사한 수신된 이벤트가 표시되어야 합니다.

    { "version": "0", "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "111111111111", "time": "2021-03-19T19:34:09Z", "region": "us-east-1", "resources": [ "arn:aws:rds:us-east-1:111111111111:db:testdb" ], "detail": { "EventCategories": [ "notification" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb", "Date": "2021-03-19T19:34:09.293Z", "Message": "DB instance stopped", "SourceIdentifier": "testdb", "EventID": "RDS-EVENT-0087" } }

    JSON 형식의 RDS 이벤트에 대한 자세한 예는 Amazon RDS에 대한 이벤트 개요 단원을 참조하세요.

  10. (선택 사항) 작업이 완료되면 Amazon RDS 콘솔을 열고 중지한 인스턴스를 시작할 수 있습니다.