EC2 인스턴스를 쉽게 예약하는 방법(시작/중지)
1단계. ec2_scheduler라는 람다 함수 생성
2단계. 다음 코드를 복사하여 붙여넣습니다.
import boto3
import os
import json
region = os.environ['REGION']
ec2 = boto3.client('ec2', region_name=region)
instances = []
def lambda_handler(event, context):
action = event['Action']
response = ec2.describe_instances(Filters=[{'Name' : 'instance-state-name','Values' : [action]}, {'Name': 'tag-key', 'Values': ['auto-scheduled']}])
reservations = response['Reservations']
for reservation in reservations:
for instance in reservation['Instances']:
instanceId = instance['InstanceId']
for tag in instance['Tags']:
if tag['Key'] == 'auto-scheduled' and tag['Value'] == 'true':
instances.append(instanceId)
if (action == 'stopped'):
if (len(instances) > 0):
ec2.start_instances(InstanceIds=instances)
else
if (len(instances) > 0):
ec2.stop_instances(InstanceIds=instances)
3단계. 값이 true로 할당된 auto-scheduled라는 EC2 인스턴스에 태그를 설정합니다.
4단계. 다음을 포함하는
Lambda
의 구성 및 권한 섹션에 새 정책을 추가합니다.{
"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*",
"ec2:Describe*"
],
"Resource": "*"
}
]
}
5단계. 다음과 같은 cron 표현식을 사용하여
Lambda
를 트리거로 예약합니다.cron(0 6 ? * MON-FRI *)
cron(0 16 ? * MON-FRI *)
6단계. 시작 또는 중지 여부를 알 수 있도록 다음 표현식이 포함된
JSON
를 설정합니다.{
"Action": "stopped"
}
{
"Action": "running"
}
그리고 그게 다야!
나를 팔로우하세요:
링크드인
유튜브
인스 타 그램
사이버 예언자
당신의 이야기를 공유
배너 크레딧:
https://tridentsys.net/howto-schedule-ec2/
Reference
이 문제에 관하여(EC2 인스턴스를 쉽게 예약하는 방법(시작/중지)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fanmixco/how-to-schedule-ec2-instances-easily-dnh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)