Lambda 및 EventBridge를 사용하여 사전 정의된 시간에 EC2 인스턴스 중지 및 시작 - STOPINATOR 2.0
9227 단어 devopsproductivitywebdevpython
7일차 - 사전 정의된 시간에 EC2 인스턴스 중지 및 시작 Lambda 및 EventBridge 사용 - STOPINATOR 2.0
☁️ 100 days of Cloud- Day Seven
✅
![](https://s1.md5.ltd/image/624630d560364f9e0618dcd73af71150.jpg)
- Read on GitHub - Read On iCTPro.co.nz
Lambda 및 EventBridge를 사용하여 사전 정의된 시간에 EC2 인스턴스 중지 및 시작
EC2를 자동으로 시작 및 중지하여 Amazon Elastic Compute Cloud(Amazon EC2) 사용량을 줄입니다.
1단계 Lambda에 대한 IAM 폴리 및 실행 역할 생성.
IAM 정책 생성
AWS 콘솔에서 IAM으로 이동하고 정책을 클릭합니다.
정책 만들기를 클릭합니다.
JSON 탭을 클릭한 다음 아래 코드를 복사하여 붙여넣습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"ec2:Start*",
"ec2:Stop*"
],
"Resource": "*"
}
]
}
정책 이름을 Stopinator-II로 지정하고 만들기를 클릭합니다.
IAM 역할 생성
IAM 콘솔로 이동하여 역할을 선택하고 역할 생성을 클릭합니다.
코멘트
스크린샷
AWS 서비스 선택
![](https://s1.md5.ltd/image/972eb61c13d33c59eeff20126ad77aad.png)
그런 다음 Lambda를 선택하고 다음을 클릭합니다.
![](https://s1.md5.ltd/image/4f4d1a87e7664c0d2024bb12b7cb7268.png)
AWSLambdaBasicExecutionRole을 검색하고 선택합니다.
![](https://s1.md5.ltd/image/8e7fe0244656602686d3e8a9eb7ee249.png)
Stopinator 정책도 추가
![](https://s1.md5.ltd/image/3a01ecf6668cd7bc5e2688c6ee7d0a11.png)
역할 이름을 지정하고 역할 생성을 클릭합니다.
![](https://s1.md5.ltd/image/724f322f6f73fb028f92fab0f44bc787.png)
Lambda 함수 생성
정지 기능
코멘트
스크린샷
1. 람다 대시보드로 이동하여 함수 생성을 클릭합니다.
![](https://s1.md5.ltd/image/a06b0bd66bcd9458c96c9cf4ae0a71da.png)
2. 처음부터 작성자로 유지하고 함수 이름 지정
![](https://s1.md5.ltd/image/7775628d8a79b3cc098848a0eea7a950.png)
3. 런타임 선택
파이썬 3.9
4. 권한, 생성된 역할 선택
![](https://s1.md5.ltd/image/f99ecb373259b0a4bcd598a3661d7c83.png)
Goto 코드 및 붙여넣기
import boto3
region = 'ap-southeast-2'
instances = ['i-xxxxxxxxxxxxxxxxxx,i-xxxxxxxxxxxxxxxxxx']
ec2 = boto3.client('ec2', region_name=region)
def lambda_handler(event, context):
ec2.stop_instances(InstanceIds=instances)
print('stopped your instances: ' + str(instances))
저장 및 배포
인스턴스 이름과 지역을 추가하는 것을 잊지 마십시오.
시작 기능
1~4단계를 반복하고 아래 코드를 추가하십시오.
import boto3
region = 'ap-southeast-2'
instances = ['i-xxxxxxxxxxxxxxxxxx,i-xxxxxxxxxxxxxxxxxx']
ec2 = boto3.client('ec2', region_name=region)
def lambda_handler(event, context):
ec2.start_instances(InstanceIds=instances)
print('started your instances: ' + str(instances))
인스턴스 이름과 지역을 추가하는 것을 잊지 마십시오.
저장 및 배포
람다 함수 테스트
함수를 선택하고 테스트를 클릭하면 람다 함수가 들여쓰기된 대로 작동하는지 확인합니다.
EventBridge를 사용하여 EC2를 켜고 끌 시간 예약
AWS 콘솔에서 EventBridge로 이동하고 규칙 생성을 클릭합니다.
코멘트
스크린샷
규칙 이름 지정
![](https://s1.md5.ltd/image/808a5ef260cb81daa4807402016770ae.png)
패턴을 정의하고 일정을 선택하고 CRON 시간을 입력하십시오. 나는 매일 오후 6시를 중지 시간으로 유지하고 있습니다. 이것을 사용하십시오. link 당신의 크론을 만들기 위해
![](https://s1.md5.ltd/image/6b0a1767e88d65ad12d54158a84778c9.png)
중지할 Lambda 함수로 대상 선택
Stopinator-II-Stop 선택
이제 만들기를 클릭합니다.
![](https://s1.md5.ltd/image/bc5bf664f1ed136f87e23f05f05c1bd3.png)
에 대해 단계를 반복합니다.
스트라이팅 인스턴스
축하합니다. Stopinator 2.0을 성공적으로 구성했습니다.
.ltag__user__id__637154 .follow-action-button {
배경색: #141D2B !중요;
색상: #9FEF00 !중요;
테두리 색상: #141D2B !중요;
}
![](https://s1.md5.ltd/image/05654fd3bd22a20dbcff616723cb1a87.jpg)
아누빈드 산카라빌라삼 팔로우
Experienced Cloud Technology Specialist with a demonstrated skillset of working with Emergency, NZ Police & Education industry
Reference
이 문제에 관하여(Lambda 및 EventBridge를 사용하여 사전 정의된 시간에 EC2 인스턴스 중지 및 시작 - STOPINATOR 2.0), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/stop-and-start-ec2-instances-at-predefined-times-using-lambda-and-cloudwatch-stopinator-20-day-7-2b0c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)