
내용이 다른 이유는? 수정했음
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:StartInstances",
"ec2:DescribeTags",
"logs:*",
"ec2:DescribeInstanceTypes",
"ec2:StopInstances",
"ec2:DescribeInstanceStatus"
],
"Resource": "*"
}
]
}

EC2에 접근할 수 있는 권한 생성

생성한 정책을 선택하여 역할 생성
기존 역할 사용하여 lambda 함수 생성


import boto3
region = 'ap-northeast-2'
ec2 = boto3.resource('ec2', region_name=region)
def lambda_handler(event, context):
# Get running instance list with tag AutoSchedule=True
# instance-state-name : ( pending | running | shutting-down | terminated | stopping | stopped )
instances = ec2.instances.filter(Filters=[
{
'Name': 'instance-state-name',
'Values': ['running']
}
,{
'Name': 'tag:AutoSchedule',
'Values':['True']
}
])
# Stop instance
for instance in instances:
id=instance.id
# ec2.instances.filter(InstanceIds=[id]).start()
ec2.instances.filter(InstanceIds=[id]).stop()
print('Instance ID is stopped :- '+instance.id)
return 'success'

인스턴스 중지 중이면 성공
이제 시간 설정을 해보자!

일정에 따라 실행해야 cron식을 사용해서 설정할 수 있다!
패턴 설정

매일 야근자도 퇴근했으면 좋겠는 21시에 실행되도록 설정
대상은 lambda


시간을 가까운 시간으로 바꿔서 테스트 진행해보자 잘 실행된다!