티스토리 뷰
자습서: Lambda 함수를 호출하는 수명 주기 후크 구성 - Amazon EC2 Auto Scaling
AWSLambdaBasicExecutionRole 정책은 함수가 CloudWatch Logs에 로그를 쓰는 데 필요한 권한을 가집니다.
docs.aws.amazon.com
Auto Scaling 그룹에 대한 시작 템플릿 생성 - Amazon EC2 Auto Scaling
시작 템플릿을 생성할 때 시작 템플릿 파라미터가 완전히 확인되지 않습니다. 파라미터에 잘못된 값을 지정하거나 지원되는 파라미터 조합을 사용하지 않으면 이 시작 템플릿을 사용하여 인스
docs.aws.amazon.com
순서
1. auto scaling 구성
- 시작 템플릿 구성
- auto scaling group 생성
2. lambda 함수를 호출하는 수명 주기 후크 구성
- 권한 IAM 역할 생성
- lambda 함수 생성
- EventBridge 규칙 생성
- 수명 주기 후크 추가
VPC

private subnet에 ec2하나 있ㅇ음
Auto Scaling 구성
시작 템플릿 구성



새엇ㅇ
그룹 생성







저렇게 헬띠한 상태면 autoscaling끝
Lambda 함수를 호출하는 수명 주기 후크 구성
- IAM 콘솔에서 정책(Policies) 페이지를 열고 **Create policy(정책 생성)**를 선택합니다.
- JSON 탭을 선택합니다.
- Policy Document(정책 문서) 상자에 다음 정책 문서를 붙여 넣고 *기울임꼴*로 표시된 텍스트를 계정 번호 및 Auto Scaling 그룹의 이름으로 바꿉니다.
- { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CompleteLifecycleAction" ], "Resource": "arn:aws:autoscaling:*:*123456789012*:autoScalingGroup:*:autoScalingGroupName/*my-asg*" } ] }
- Next(다음)를 선택합니다.
- **정책 이름(Policy name)**에 **LogAutoScalingEvent-policy**을 입력합니다. 정책 생성을 선택합니다.
역할 생성
- 왼쪽의 탐색 창에서 역할을 선택합니다.
- 역할 생성을 선택합니다.
- **신뢰할 수 있는 엔터티 선택(Select trusted entity)**에서 **AWS 서비스( service)**를 선택합니다.
- 사용 사례에 대해 Lambda를 선택하고 **다음(Next)**을 선택합니다.
- **권한 추가(Add permissions)**에서 생성한 정책(LogAutoScalingEvent-policy)과 이름이 AWSLambdaBasicExecutionRole인 정책을 선택합니다. 그리고 다음을 선택합니다.
- 이름 지정, 검토 및 생성(Name, review, and create) 페이지에서 **역할 이름(Role name)**에 **LogAutoScalingEvent-role**을 입력하고 **역할 생성(Create role)**을 선택합니다.

2단계: Lambda 함수 생성
- Lambda 콘솔에서 함수 페이지를 엽니다.
- **Create function(함수 생성)**과 **Author from scratch(새로 작성)**를 차례로 선택합니다.
- **기본 정보(Basic information)**에서 **함수 이름(Function name)**에 **LogAutoScalingEvent**을 입력합니다.
- 런타임에서 Node.js 18.x를 선택합니다.
- 아래로 스크롤하여 집행 역할 기본값 변경을 선택하고 집행 역할에서 기존 역할 사용을 선택합니다.
- **Existing role(기존 역할)**로 LogAutoScalingEvent-role을 선택합니다.
- 나머지는 기본값을 그대로 사용합니다.

콘솔에 LogAutoScalingEvent 함수를 여전히 열어둔 상태에서 편집기의 코드 소스에서 다음 샘플 코드를 index.mjs 파일에 붙여 넣습니다.
import { AutoScalingClient, CompleteLifecycleActionCommand } from "@aws-sdk/client-auto-scaling";
export const handler = async(event) => {
console.log('LogAutoScalingEvent');
console.log('Received event:', JSON.stringify(event, null, 2));
var autoscaling = new AutoScalingClient({ region: event.region });
var eventDetail = event.detail;
var params = {
AutoScalingGroupName: eventDetail['AutoScalingGroupName'],/* required */LifecycleActionResult: 'CONTINUE',/* required */LifecycleHookName: eventDetail['LifecycleHookName'],/* required */InstanceId: eventDetail['EC2InstanceId'],
LifecycleActionToken: eventDetail['LifecycleActionToken']
};
var response;
const command = new CompleteLifecycleActionCommand(params);
try {
var data = await autoscaling.send(command);
console.log(data);// successful response
response = {
statusCode: 200,
body: JSON.stringify('SUCCESS'),
};
} catch (err) {
console.log(err, err.stack);// an error occurred
response = {
statusCode: 500,
body: JSON.stringify('ERROR'),
};
}
return response;
};
이 코드는 이벤트를 간단하게 로깅하므로 자습서를 마치면 이 Lambda 함수와 연결된 CloudWatch Logs 로그 스트림에 이벤트가 나타나는 것을 볼 수 있습니다.

3단계: EventBridge 규칙 생성




4단계: 수명 주기 후크 추가
- Amazon EC2 콘솔에서 Auto Scaling 그룹 페이지를 엽니다.
- Auto Scaling 그룹 옆의 확인란을 선택합니다. 페이지 하단에 분할 창이 열립니다.
- 창 하단 Instance management(인스턴스 관리) 탭의 **Lifecycle hooks(수명 주기 후크)**에서 **Create lifecycle hook(수명 주기 후크 생성)**를 선택합니다.
- 스케일 아웃(인스턴스 실행)을 위한 수명 주기 후크를 정의하려면 다음을 수행하세요.
- **Lifecycle hook name(수명 주기 후크 이름)**으로 **LogAutoScalingEvent-hook**를 입력합니다.
- **Lifecycle transition(수명 주기 전환)**에서 **Instance launch(인스턴스 시작)**를 선택합니다.
- **Heartbeat timeout(하트비트 시간 제한)**에 Lambda 함수에서 콜백을 기다리는 시간(초)으로 **300**을 입력합니다.
- **Default result(기본 결과)**로 **ABANDON(포기)**을 선택합니다. 즉, Lambda 함수에서 콜백을 수신하지 않았는데 후크가 시간 초과되면 Auto Scaling 그룹이 새 인스턴스를 해지합니다.
- (옵션)**Notification metadata(알림 메타데이터)**를 비워 둡니다. EventBridge로 전달하는 이벤트 데이터에는 Lambda 함수를 호출하는 데 필요한 모든 정보가 들어 있습니다.
- **생성(Create)**을 선택합니다

확인

원하는 용량 크기를 1늘리고 업데이트 하면 lambda 함수가 실행돼서

로그 그룹ㅇ에 요론식으로 로그 남음
- Total
- Today
- Yesterday
- 네트워크
- 메트릭
- 설정법
- 설치법
- 패킷트레이서
- 점프킹
- 포트포워딩
- vmware key
- dr/bdr
- 코드업
- ospf
- 라우터
- Brave
- vmware pro
- 정적라우팅
- 과제
- 오버플로우
- github
- 무료설치
- 버퍼오버플로우
- ospf config
- 스택 버퍼 오버플로우
- vmware player
- jump king
- 점프킹설치
- 디폴트라우팅
- 동적라우팅
- 게이트웨이
- 힙오버플로우
- 라우팅
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
