EC2 인스턴스를 스케줄로 시작 및 중지
10045 단어 EC2람다CloudWatchAWS
EC2 인스턴스를 예약으로 시작 및 중지
목적
함수 만들기 1
함수 이름과 역할을 설정합니다.
사용자 지정 역할 만들기를 선택하면 사용자 지정 역할 만들기의 새 화면이 열립니다.
![](https://s1.md5.ltd/image/b0fa3d66e7e4e5dee209c7bea273d17a.png)
사용자 지정 역할 만들기
정책 문서
{
"Version": "2012-10-17",
"Statement": [![Screenshot 2017-10-28_20-38-06.png](https://qiita-image-store.s3.amazonaws.com/0/88753/6aee1997-0196-ebb1-303b-d52803d52427.png)
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"ec2:Start*",
"ec2:Stop*"
],
"Resource": "*"
}
]
}
![](https://s1.md5.ltd/image/241ddf0cc59dd6c9f75fe976cc9d75d9.png)
함수 생성 2
작성한 롤이 기존의 롤로서 읽혀지기 때문에, [함수의 작성]을 실시한다.
![](https://s1.md5.ltd/image/af6fbe2f91321344b8d6a5c9a95a48ae.png)
lambda_handler.py
import boto3
def lambda_handler(event, context):
region = event['Region']
instances = event['Instances']
ec2 = boto3.client('ec2', region_name=region)
if event['Action'] == 'start':
ec2.start_instances(InstanceIds=instances)
print 'started your instances: ' + ", ".join(instances)
elif event['Action'] == 'stop':
ec2.stop_instances(InstanceIds=instances)
print 'stopped your instances: ' + ", ".join(instances)
동작 테스트
임의의 파라미터를 설정하여 동작을 확인한다.
세 개의 인스턴스에 대해 시작을 지시합니다.
![](https://s1.md5.ltd/image/9eee230d18e74859d23f267066087dc6.png)
인스턴스 ID를 임의의 ID로 변경
대상을 3개 정의하고 있지만, 당연히 증감시켜도 좋다
test.json
{
"Action": "start",
"Region": "ap-northeast-1",
"Instances":
[
"i-xxxxxxxxxxxxxxxxx",
"i-yyyyyyyyyyyyyyyyyy",
"i-zzzzzzzzzzzzzzzzz"
]
}
![](https://s1.md5.ltd/image/4a999a7b6534d56a28e562063f12b9e1.png)
동작 테스트
EC2 인스턴스가 시작되거나 동작을 확인합니다.
실행 결과가 성공하고 EC2가 시작되면 OK입니다.
![](https://s1.md5.ltd/image/bd3cd36a2bc907a2eb56fe13ab7630a2.png)
![](https://s1.md5.ltd/image/f93ae72816c6e8800928a244f92549b0.png)
CloudWatch
30 14 * * ? *
{"Action": "stop", "Region": "ap-northeast-1", "Instances": ["i-xxxxxxxxxxxxxxxxx","i-yyyyyyyyyyyyyyyyyy","i-zzzzzzzzzzzzzzzzz"]}
![](https://s1.md5.ltd/image/9dff7a6619cd74c41ee5100beffff5de.png)
![](https://s1.md5.ltd/image/17b2cda43bf8a49be6799f922b326c23.png)
참고
Reference
이 문제에 관하여(EC2 인스턴스를 스케줄로 시작 및 중지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/r_karotou/items/1b6dca99d4eb6980f9ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)