

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

# 자습서: EventBridge를 사용하여 Auto Scaling 그룹의 상태 로깅
<a name="eb-log-as-group-state"></a>

Auto Scaling 그룹이 Amazon EC2 인스턴스를 시작하거나 종료할 때마다 [이벤트](eb-events.md)를 로깅하고 이벤트가 성공했는지 여부를 나타내는 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 함수를 실행할 수 있습니다.

Amazon EC2 Auto Scaling 이벤트를 사용하는 추가 시나리오에 대한 자세한 내용은 *Amazon EC2 Auto Scaling 사용 설명서*에서 [EventBridge를 사용하여 Auto Scaling 이벤트 처리](https://docs.aws.amazon.com/autoscaling/latest/userguide/automating-ec2-auto-scaling-with-eventbridge.html)를 참조하세요.

이 자습서에서는 Lambda 함수를 생성하고 Amazon EC2 Auto Scaling 그룹이 인스턴스를 시작하거나 종료할 때 해당 함수를 호출하는 [규칙](eb-rules.md)을 EventBridge 콘솔에 생성합니다.

**Topics**
+ [사전 조건](#eb-as-prereqs)
+ [1단계: Lambda 함수 생성](#eb-as-create-lambda-function)
+ [2단계: 규칙 생성](#eb-as-create-rule)
+ [3단계: 규칙 테스트](#eb-as-test-rule)
+ [4단계: 성공 확인](#success)
+ [5단계: 리소스 정리](#cleanup)

## 사전 조건
<a name="eb-as-prereqs"></a>

이 자습서를 완료하려면 다음 리소스가 필요합니다.
+ Auto Scaling 그룹 생성에 대한 자세한 내용은 Amazon EC2 Auto Scaling 사용 설명서의 [시작 구성을 사용하여 Auto Scaling 그룹 생성](https://docs.aws.amazon.com/autoscaling/latest/userguide/create-asg.html)을 참조하세요.

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

Lambda 함수를 생성하여 Auto Scaling 그룹에서 이벤트의 확장 및 축소를 로그합니다.

**Lambda 함수 생성**

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

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

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

1. Lambda 함수 이름을 입력합니다. 예를 들어 함수 이름을 `LogAutoScalingEvent`로 지정합니다.

1. 나머지 옵션은 기본값으로 두고 **함수 생성**을 선택합니다.

1. 함수 페이지의 **코드** 탭에서 **index.js**를 두 번 클릭합니다.

1. 기존 코드를 다음 코드로 바꿉니다.

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

1. **배포**를 선택합니다.

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

1단계에서 생성한 Lambda 함수를 실행하는 규칙을 생성합니다. 규칙은 Auto Scaling 그룹이 인스턴스를 시작하거나 중지할 때 실행됩니다.

**규칙을 생성하려면**

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

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

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

1. 규칙에 대해 이름과 설명을 입력하세요. 예를 들어, 규칙의 이름을 `TestRule`로 지정합니다.

1. **이벤트 버스**에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 **기본**을 선택합니다. 계정의 AWS 서비스가 이벤트를 출력하면 항상 계정의 기본 이벤트 버스로 이동합니다.

1. **규칙 유형**에서 **이벤트 패턴이 있는 규칙**을 선택합니다.

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

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

1. **이벤트 패턴**에서 다음을 수행합니다.

   1. **이벤트 소스**의 경우 드롭다운 목록에서 **Auto Scaling**을 선택합니다.

   1. **이벤트 유형**의 경우 드롭다운 목록에서 **인스턴스 시작 및 종료**를 선택합니다.

   1. **모든 인스턴스 이벤트**와 **모든 그룹 이름**을 선택합니다.

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

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

1. **대상 선택**의 경우 드롭다운 목록에서 **Lambda 함수**를 선택합니다.

1. **함수**의 경우 **1단계: Lambda 함수 생성** 섹션에서 생성한 Lambda 함수를 선택합니다. 이 예시에서는 `LogAutoScalingEvent`를 선택합니다.

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

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

1. 규칙의 세부 정보를 검토하고 **규칙 생성**을 선택합니다.

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

인스턴스가 시작되도록 Auto Scaling 그룹을 수동으로 크기 조정함으로써 규칙을 테스트할 수 있습니다. 확장 이벤트가 발생할 때까지 몇 분 정도 기다린 후 Lambda 함수가 간접 호출되었는지 확인합니다.

**Auto Scaling 그룹을 사용하여 규칙을 테스트하려면**

1. Auto Scaling 그룹의 크기를 늘리려면 다음을 수행합니다.

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

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

   1. Auto Scaling 그룹의 확인란을 선택합니다.

   1. **세부 정보** 탭에서 **편집**을 선택합니다. **원하는 용량**에서 한 개씩 원하는 용량을 늘립니다. 예를 들어, 현재 값이 **2**인 경우 **3**을 입력합니다. 원하는 용량은 그룹의 최대 크기보다 작거나 같아야 합니다. **원하는 용량**에 대한 새 값이 **최대 용량**보다 크면 **최대 용량**을 업데이트해야 합니다. 작업을 마쳤으면 **저장**을 선택합니다.

1. Lambda 함수에서 출력을 보려면 다음을 수행합니다.

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

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

   1. Lambda 함수에 대한 로그 그룹 명칭을 선택합니다(`/aws/lambda/{{function-name}}`).

   1. 로그 스트림 이름을 선택하여 시작한 인스턴스에서 함수를 통해 제공된 데이터를 확인합니다.

1. (선택 사항) 완료되면 Auto Scaling 그룹이 이전 크기로 돌아가도록 한 개씩 원하는 용량을 줄일 수 있습니다.

## 4단계: 성공 확인
<a name="success"></a>

CloudWatch 로그에 Lambda 이벤트가 표시되면 이 자습서를 성공적으로 완료한 것입니다. 이벤트가 CloudWatch 로그에 없는 경우, 규칙이 성공적으로 생성되었는지 확인하여 문제 해결을 시작하고, 규칙이 올바른 것으로 보이면 Lambda 함수의 코드가 올바른지 확인하세요.

## 5단계: 리소스 정리
<a name="cleanup"></a>

이 자습서 용도로 생성한 리소스를 보관하고 싶지 않다면 지금 삭제할 수 있습니다. 더 이상 사용하지 않는 AWS 리소스를 삭제하면 AWS 계정에 불필요한 요금이 부과되지 않습니다.

**EventBridge 규칙을 삭제하려면**

1. EventBridge 콘솔의 [규칙 페이지](https://console.aws.amazon.com/events/home#/rules)를 엽니다.

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

1. **삭제**를 선택합니다.

1. **삭제**를 선택합니다.

**Lambda 함수를 삭제하려면**

1. Lambda 콘솔의 [함수 페이지](https://console.aws.amazon.com/lambda/home#/functions)를 엽니다.

1. 생성한 함수를 선택합니다.

1. **작업**, **삭제**를 선택합니다.

1. **삭제**를 선택합니다.