Lambda를 사용하여 작업을 자동화하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 10월 14일

AWS Lambda를 사용하여 AWS 계정의 작업을 자동화하고 싶습니다. 어떻게 설정해야 합니까?

간략한 설명

Lambda와 통합하여 일정에 따라 또는 특정 이벤트에 대한 응답으로 함수를 호출할 수 있는 여러 AWS 서비스가 있습니다. Amazon CloudWatch EventsAmazon S3(mazon Simple Storage Service) 이벤트 알림은 작업 자동화에 가장 많이 사용되는 기능 중 일부입니다. 이 문서에서는 두 가지 방법 모두에 대해 사용 사례 지침으로 사용할 수 있는 예제를 제공합니다.

더 많은 예제는 자습서: 예약된 이벤트와 함께 AWS Lambda 사용자습서: Amazon S3과 함께 AWS Lambda 사용을 참조하십시오.

참고: CloudWatch와 Amazon S3는 Lambda 함수의 실행 역할을 자동으로 업데이트하여 리소스 기반 정책을 사용하는 데 필요한 액세스를 추가합니다. 하지만 모든 AWS 서비스가 이 작업을 자동으로 수행하는 것은 아니며, 다른 프로세스에서 함수의 실행 역할을 변경하고 올바른 호출을 막을 수도 있습니다. 이러한 경우에는 Lambda와 통합하는 서비스에 대한 권한을 수동으로 추가합니다.

​해결 방법

Lambda 함수 생성

다음 예제 단계에 따라 Amazon CloudWatch Logs에 입력을 로깅하는 간단한 함수를 생성합니다. 이 함수는 구성할 이벤트의 대상이 됩니다. 예제 함수 코드를 해당 사용 사례에서 자동화하려는 작업에 대한 자체 코드로 바꿀 수 있습니다.

참고: 자체 배포 패키지를 빌드 및 업로드하여 Lambda 함수를 생성할 수도 있습니다.

1.    Lambda 콘솔을 엽니다.

2.    Lambda를 처음 사용하는 경우, [Get Started Now]를 선택합니다. 그렇지 않은 경우, [Create function]을 선택합니다. [Create function] 페이지가 열리고 [Author from scratch] 옵션이 표시됩니다.

3.    [Author from scratch]가 선택된 상태로 [Basic information]에서 다음을 수행합니다.
[Function name]에 이름을 입력합니다.
[Runtime]에서 [Node.js 10.x]를 선택합니다.

4.    [Permissions]에서 [Choose or create an execution role]을 확장한 후 다음 중 하나를 수행합니다.
Lambda를 처음 사용하는 경우, [Create a new role with basic Lambda permissions]를 선택합니다.
사용할 Lambda 실행 역할을 이미 생성한 경우, [Use an existing role]을 선택합니다.
AWS 관리형 정책 템플릿을 사용하여 새 실행 역할을 생성하려는 경우, [Create a new role from AWS policy templates]를 선택하고 이름을 입력한 다음 정책 템플릿을 선택합니다.

5.    [Create function]을 선택합니다.

6.    [Configuration] 창의 [Function code]에서 이 예제 함수 코드를 편집기 창에 붙여 넣습니다.

'use strict';
exports.handler = (event, context, callback) => {
    console.log('LogScheduledEvent');
    console.log('Received event:', JSON.stringify(event, null, 2));
    callback(null, 'Finished');
};

7.    [Save]를 선택합니다.

자세한 내용은 콘솔로 Lambda 함수 만들기를 참조하십시오.

CloudWatch Events 규칙 생성

CloudWatch Events를 사용하여 일정에 따라 트리거되거나 이벤트에 대한 응답으로 트리거되는 규칙을 생성합니다. 자세한 내용은 Getting Started with Amazon CloudWatch Events를 참조하십시오.

예약된 이벤트

특정 타이밍과 입력 없이 작업을 수행하려면 Creating a CloudWatch Events Rule That Triggers on a Schedule의 지침을 따릅니다. 자동화된 작업을 실행할 빈도 또는 시기에 대한 일정을 지정합니다. 이벤트에 대한 응답으로 트리거할 대상으로 생성한 Lambda 함수를 추가합니다.

규칙을 생성하면 정의한 타이밍에 따라 Lambda 함수가 자동으로 호출됩니다. 예제 함수 코드를 사용한 경우, Lambda의 로그 스트림이 일정에 따라 CloudWatch에 채워집니다.

참고: 추가 예제는 Tutorial: Schedule AWS Lambda Functions Using CloudWatch Events를 참조하십시오.

서비스 이벤트

AWS 서비스에서 생성된 이벤트에 대한 응답으로 작업을 수행하려면 Creating a CloudWatch Events Rule That Triggers on an Event의 지침을 따릅니다. 이 예제 설정의 경우, [Service Name]에서 [EC2]를 선택합니다. [이벤트 유형]에서 [EC2 Instance State-change Notification]을 선택합니다. 대상으로 생성한 Lambda 함수를 추가합니다.

참고: 자세한 내용은 Event Patterns in CloudWatch EventsCloudWatch Events Event Examples From Supported Services를 참조하십시오.

규칙을 생성하면 정의한 이벤트 패턴이 발생할 때마다 Lambda 함수가 호출됩니다.

이 예제에서는 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에서 상태 변경을 유발하여 규칙을 테스트할 수 있습니다. 아직 시작하지 않은 경우 EC2 인스턴스를 시작합니다. 인스턴스를 생성할 때와 인스턴스를 중지하거나 시작할 때, Lambda가 로그 스트림을 CloudWatch로 전송합니다.

참고: EC2 인스턴스는 AWS 계정에 요금이 발생할 수 있습니다. 이 예제용으로만 인스턴스를 생성하는 경우, 반복 요금이 발생하지 않도록 작업을 마쳤을 때 인스턴스를 종료해야 합니다.

Amazon S3 이벤트 알림 구성

Amazon S3 이벤트 알림을 사용하여 지정한 지원되는 Amazon S3 이벤트 유형 S3 버킷에서 발생할 때마다 Lambda 함수를 트리거합니다. 자세한 내용과 이벤트 예제는 Amazon S3와 함께 AWS Lambda 사용을 참조하십시오.

아직 생성하지 않은 경우 S3 버킷을 생성합니다. 그런 다음 이벤트 알림 활성화 및 구성의 지침을 따릅니다. 이 예제에서는 [Events]에서 [All object create events] 확인란을 선택합니다. [Send to]에서 [Lambda Function]을 선택합니다. [Lambda]에서, 앞서 생성한 Lambda 함수를 선택합니다.

설정을 테스트하려면 S3 버킷에 객체를 업로드합니다. [Prefix] 또는 [Suffix] 필터를 구성한 경우 객체에 올바른 접두사 또는 접미사가 있는지 확인합니다. 업로드가 완료되면 Lambda 함수가 호출됩니다. 예제 함수 코드를 사용한 경우 Lambda의 로그 스트림이 CloudWatch에 채워집니다. 이러한 로그에는 S3 버킷 이름 및 객체 이름과 같은 이벤트 객체의 메타데이터가 포함되어 있습니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?