

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Lambda 를 사용하여 EventBridge 이벤트 처리
<a name="using_lambda"></a>

Amazon EBS와 Amazon EventBridge를 사용하여 데이터 백업 워크플로를 자동화할 수 있습니다. 이를 위해서는 IAM 정책, 이벤트를 처리하는 AWS Lambda 함수, 수신 이벤트와 일치하고 이를 Lambda 함수로 라우팅하는 EventBridge 규칙을 생성해야 합니다.

다음 절차에서는 재해 복구를 위해 `createSnapshot` 이벤트를 사용하여 완료된 스냅샷을 다른 리전으로 자동으로 복사합니다.

**완료된 스냅샷을 다른 리전으로 복사하려면**

1. 다음 예에 표시된 것과 같이 `CopySnapshot` 작업을 사용하고 EventBridge 로그에 쓸 수 있는 권한을 제공하려면 IAM 정책을 생성합니다. EventBridge 이벤트를 처리할 사용자에게 정책을 할당합니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents"
         ],
         "Resource": "arn:aws:logs:*:*:*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:CopySnapshot"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

1. EventBridge 콘솔에서 사용할 수 있는 Lambda 함수를 정의합니다. 아래 Node.js로 작성된 샘플 Lambda 함수는 일치하는 `createSnapshot` 이벤트를 Amazon EBS가 발생시킬 때 EventBridge에 의해 호출됩니다. 이는 스냅샷이 완료되었음을 의미합니다. 호출되면 함수가 `us-east-2`에서 `us-east-1`로 스냅샷을 복사합니다.

   ```
   // Sample Lambda function to copy an EBS snapshot to a different Region
    
   var AWS = require('aws-sdk');
   var ec2 = new AWS.EC2();
    
   // define variables
   var destinationRegion = 'us-east-1';
   var sourceRegion = 'us-east-2';
   console.log ('Loading function');
    
   //main function
   exports.handler = (event, context, callback) => {
    
       // Get the EBS snapshot ID from the event details
       var snapshotArn = event.detail.snapshot_id.split('/');
       const snapshotId = snapshotArn[1];
       const description = `Snapshot copy from ${snapshotId} in ${sourceRegion}.`;
       console.log ("snapshotId:", snapshotId);
   
       // Load EC2 class and update the configuration to use destination Region to initiate the snapshot.
       AWS.config.update({region: destinationRegion});
       var ec2 = new AWS.EC2();
   
       // Prepare variables for ec2.modifySnapshotAttribute call
       const copySnapshotParams = {
           Description: description,
           DestinationRegion: destinationRegion,
           SourceRegion: sourceRegion,
           SourceSnapshotId: snapshotId
       };
    
       // Execute the copy snapshot and log any errors
       ec2.copySnapshot(copySnapshotParams, (err, data) => {
           if (err) {
               const errorMessage = `Error copying snapshot ${snapshotId} to Region ${destinationRegion}.`;
               console.log(errorMessage);
               console.log(err);
               callback(errorMessage);
           } else {
               const successMessage = `Successfully started copy of snapshot ${snapshotId} to Region ${destinationRegion}.`;
               console.log(successMessage);
               console.log(data);
               callback(null, successMessage);
           }
       });
   };
   ```

   Lambda 함수를 EventBridge 콘솔에서 사용하도록 보장하려면 EventBridge 이벤트가 발생하는 리전에서 생성합니다. 자세한 내용은 [ 개발자 안내서AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/)를 참조하세요.

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

1. 탐색 창에서 **규칙(Rules)**을 선택한 후 **규칙 생성(Create rule)**을 선택합니다.

1. **Step 1: Define rule detail**(1단계: 규칙 세부 정보 정의)에 대해 다음을 수행합니다.

   1. **Name**(이름)과 **Description**(설명)을 입력합니다.

   1. **Event bus**(이벤트 버스)의 경우 **default**(기본값)를 유지합니다.

   1. **Enable the rule on the selected event bus**(선택한 이벤트 버스에 대해 규칙 활성화)가 설정되었는지 확인합니다.

   1. **Event type**(이벤트 유형)에서 **Rule with an event pattern**(이벤트 패턴이 있는 규칙)을 선택합니다.

   1. **다음**을 선택합니다.

1. **Step 2: Build event pattern**(2단계: 이벤트 패턴 빌드)에서 다음을 수행합니다.

   1. **Event source**(이벤트 소스)에서 **AWS events or EventBridge partner events**를 선택합니다.

   1. **Event pattern**(이벤트 패턴) 섹션에서 **Event source**(이벤트 소스)에 대해 **AWS service**가 선택되어 있는지 확인하고 **AWS service**에 대해 **EC2**를 선택합니다.

   1. **Event type**(이벤트 유형)에서 **EBS Snapshot Notification**(EBS 스냅샷 알림)을 선택하고 **Specific event(s)**(특정 이벤트)를 선택한 다음 **createSnapshot**을 선택합니다.

   1. **특정 결과(Specific result(s))**를 선택한 다음 **성공(succeeded)**을 선택합니다.

   1. **다음**을 선택합니다.

1. **Step 3: Select targets**(3단계: 대상 선택)에서 다음을 수행합니다.

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

   1. **Select target**(대상 선택)에서 **Lambda function**(Lambda 함수)을 선택하고 **Function**(함수)에서 이전에 생성한 함수를 선택합니다.

   1. **Next**(다음)를 선택합니다.

1. **Step 4: Configure tags**(4단계: 태그 구성)에서 필요한 경우 규칙에 대한 태그를 지정하고 **Next**(다음)를 선택합니다.

1. **Step 5: Review and create**(5단계: 검토 및 생성)에서 규칙을 검토한 다음 **Create rule**(규칙 생성)을 선택합니다.

이제 **규칙** 탭에 규칙이 표시됩니다. 표시된 예에서 구성된 이벤트는 다음에 스냅샷을 복사할 때 EBS가 발생시킵니다.