

# Amazon Aurora 이벤트에서 트리거되는 규칙 생성
<a name="rds-cloud-watch-events"></a>

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

**Topics**
+ [

## 자습서: Amazon EventBridge를 사용하여 DB 인스턴스의 상태 변경 로깅
](#log-rds-instance-state)

## 자습서: Amazon EventBridge를 사용하여 DB 인스턴스의 상태 변경 로깅
<a name="log-rds-instance-state"></a>

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

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

**Topics**
+ [

### 1단계: AWS Lambda 함수 생성
](#rds-create-lambda-function)
+ [

### 2단계: 규칙 생성
](#rds-create-rule)
+ [

### 3단계: 규칙 테스트
](#rds-test-rule)

### 1단계: AWS Lambda 함수 생성
<a name="rds-create-lambda-function"></a>

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

**Lambda 함수를 만들려면**

1. AWS Lambdahttps://console.aws.amazon.com/lambda/[에서 ](https://console.aws.amazon.com/lambda/) 콘솔을 엽니다.

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

1. **새로 작성**을 선택합니다.

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

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

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

   1. **아키텍처**에서는 **x86\$164**를 선택합니다.

   1. **실행 역할**에서는 다음 중 하나를 수행합니다.
      + **기본 Lambda 권한을 가진 새 역할 생성**을 선택합니다.
      + **기존 역할**에서는 **기존 역할 사용**을 선택합니다. 사용하려는 역할을 선택합니다.

   1. **함수 생성**을 선택합니다.

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

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

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

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

      ```
      console.log('Loading function');
      
      exports.handler = async (event, context) => {
          console.log('Received event:', JSON.stringify(event));
      };
      ```

   1. [**Deploy**]를 선택합니다.

### 2단계: 규칙 생성
<a name="rds-create-rule"></a>

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

**EventBridge 규칙을 만들려면**

1. [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)에서 Amazon EventBridge 콘솔을 엽니다.

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

1. **규칙 생성**을 선택합니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

### 3단계: 규칙 테스트
<a name="rds-test-rule"></a>

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

**DB 인스턴스를 중지하여 규칙을 테스트하려면**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)에서 Amazon EventBridge 콘솔을 엽니다.

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

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

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

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

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

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

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

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

   ```
   {
       "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에 대한 이벤트 개요](working-with-events.md#rds-cloudwatch-events.sample) 단원을 참조하세요.

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