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 이벤트에서 트리거되는 규칙 생성
https://console.aws.amazon.com/cloudwatch/
에서 CloudWatch 콘솔을 엽니다. -
탐색 창의 이벤트 아래에서 규칙을 선택합니다.
-
규칙 생성을 선택합니다.
-
[Event Source]에서 다음을 수행합니다.
-
이벤트 패턴을 선택합니다.
-
서비스 이름에서 Relational Database Service(RDS)를 선택합니다.
-
이벤트 유형(Event Type)에서 이벤트를 트리거할 Amazon RDS 리소스 유형을 선택합니다. 예를 들어, DB 인스턴스가 이벤트를 트리거하는 경우 RDS DB 인스턴스 이벤트(RDS DB Instance Event)를 선택합니다.
-
-
대상에서 대상 추가를 선택한 후 선택한 유형의 이벤트가 감지되면 작동할 AWS 서비스를 선택합니다.
-
필요할 경우 이 섹션의 다른 필드에 이 대상 유형에 관련된 정보를 입력합니다.
-
여러 대상 유형에 대해 EventBridge에서는 대상에 이벤트를 보낼 권한이 필요합니다. 이 경우 EventBridge는 이벤트 실행에 필요한 IAM 역할을 생성할 수 있습니다.
-
IAM 역할을 자동으로 생성하려면 이 특정 리소스에 대해 새 역할 생성을 선택합니다.
-
이전에 생성한 IAM 역할을 사용하려면 기존 역할 사용을 선택합니다.
-
-
선택적으로 5-7단계를 반복하여 이 규칙의 다른 대상을 추가합니다.
-
세부 정보 구성을 선택합니다. 규칙 정의에 규칙의 이름과 규칙에 대한 설명을 입력합니다.
규칙 이름은 이 리전 내에서 고유해야 합니다.
-
규칙 생성을 선택합니다.
자세한 내용은 Amazon CloudWatch 사용 설명서의 이벤트에서 트리거되는 EventBridge 규칙 생성을 참조하세요.
자습서: Amazon EventBridge를 사용하여 DB 인스턴스의 상태 변경 로깅
이 자습서에서는 Amazon RDS 인스턴스의 상태 변경을 로깅하는 AWS Lambda 함수를 생성합니다. 그런 다음 기존 RDS DB 인스턴스의 상태가 변경될 때마다 함수를 실행하는 규칙을 생성합니다. 이 자습서에서는 일시적으로 종료할 수 있는 실행 중인 작은 테스트 인스턴스가 있다고 가정합니다.
중요
실행 중인 프로덕션 DB 인스턴스에서 이 자습서를 수행하지 마세요.
1단계: AWS Lambda 함수 생성
Lambda 함수를 생성하여 상태 변경 이벤트를 기록합니다. 규칙을 생성할 때 이 함수를 지정합니다.
Lambda 함수를 만들려면
https://console.aws.amazon.com/lambda/
에서 AWS Lambda 콘솔을 엽니다. -
Lambda를 처음 사용하는 경우 시작 페이지가 표시됩니다. 지금 시작을 선택합니다. 그렇지 않은 경우에는 함수 생성을 선택합니다.
-
새로 작성을 선택합니다.
-
함수 생성 페이지에서 다음을 수행합니다.
-
Lambda 함수의 이름과 설명을 입력합니다. 예를 들어 함수 이름을
RDSInstanceStateChange
로 지정합니다. -
런타임에서 Node.js 16x를 선택합니다.
-
아키텍처에서는 x86_64를 선택합니다.
-
실행 역할에서는 다음 중 하나를 수행합니다.
-
기본 Lambda 권한을 가진 새 역할 생성을 선택합니다.
-
기존 역할에서는 기존 역할 사용을 선택합니다. 사용하려는 역할을 선택합니다.
-
-
함수 생성을 선택합니다.
-
-
[RDSInstanceStateChange] 페이지에서 다음을 수행합니다.
-
코드 소스에서 index.js를 선택합니다.
-
index.js 창에서 기존 코드를 삭제합니다.
-
다음 코드를 입력합니다.
console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
-
[Deploy]를 선택합니다.
-
2단계: 규칙 생성
Amazon RDS 인스턴스를 시작할 때마다 Lambda 함수를 실행하는 규칙을 생성합니다.
EventBridge 규칙을 만들려면
https://console.aws.amazon.com/events/
에서 Amazon EventBridge 콘솔을 엽니다. -
탐색 창에서 규칙을 선택합니다.
-
규칙 생성을 선택합니다.
-
규칙에 대해 이름과 설명을 입력하십시오. 예를 들면
RDSInstanceStateChangeRule
을 입력합니다. -
이벤트 패턴이 있는 규칙을 선택한 후다음을 선택합니다.
-
이벤트 소스에서 AWS 이벤트 또는 EventBridge 파트너 이벤트를 선택합니다.
-
이벤트 패턴 섹션까지 아래로 스크롤합니다.
-
이벤트 소스에서 AWS 서비스를 선택합니다.
-
AWS 서비스에서는 Relational Database Service(RDS)를 선택합니다.
-
이벤트 유형에서 RDS DB 인스턴스 이벤트를 선택합니다.
-
기본 이벤트 패턴을 그대로 둡니다. 그리고 다음을 선택합니다.
-
대상 유형에서 AWS 서비스를 선택합니다.
-
대상 선택에서 Lambda 함수를 선택합니다.
-
함수에서는 생성한 Lambda 함수를 선택합니다. 다음을 선택합니다.
-
태그 구성에서는 다음을 선택합니다.
-
규칙의 단계를 검토하십시오. 그런 다음 규칙 생성을 선택합니다.
3단계: 규칙 테스트
규칙을 테스트하려면 RDS DB 인스턴스를 종료합니다. 인스턴스가 종료될 때까지 몇 분 기다린 후에 Lambda 함수가 호출되었는지 확인합니다.
DB 인스턴스를 중지하여 규칙을 테스트하려면
https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
RDS DB 인스턴스를 중지합니다.
https://console.aws.amazon.com/events/
에서 Amazon EventBridge 콘솔을 엽니다. -
탐색 창에서 [규칙(Rules)]을 선택하고 생성한 규칙의 이름을 선택합니다.
-
규칙 세부 정보에서 모니터링을 선택합니다.
그러면 Amazon CloudWatch 콘솔로 리디렉션됩니다. 리디렉션되지 않은 경우 CloudWatch에서 지표 보기를 클릭합니다.
-
[모든 지표(All metrics)]에서 생성한 규칙의 이름을 선택합니다.
그래프에 규칙이 호출된 것으로 표시되어야 합니다.
-
탐색 창에서 로그 그룹을 선택합니다.
-
Lambda 함수에 대한 로그 그룹 이름(/aws/lambda/
function-name
)을 선택합니다. -
로그 스트림 이름을 선택하여 시작한 인스턴스에서 함수를 통해 제공된 데이터를 확인합니다. 다음과 유사한 수신된 이벤트가 표시되어야 합니다.
{ "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에 대한 이벤트 개요 단원을 참조하세요.
-
(선택 사항) 작업이 완료되면 Amazon RDS 콘솔을 열고 중지한 인스턴스를 시작할 수 있습니다.