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

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

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

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

이 자습서에서는 인스턴스의 상태 변경을 로깅하는 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. 탐색 창에서 [Rules]를 선택합니다.

  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 함수를 선택합니다. 그런 다음 Next(다음)를 선택합니다.

  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 이벤트에 대한 자세한 예는 Aurora에 대한 이벤트 개요 단원을 참조하세요.

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