ec2인스턴스 기동/정지 스케쥴링
2023. 7. 11. 11:46ㆍIT/d . e . v . O . p . s
1. 정책(policy)생성
람다가 ec2의 start/stop의 실행 가능한 권한을 정책(policy)에 부여
lambda_start_stop_ec2_policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:Start*",
"ec2:Stop*"
],
"Resource": "*"
}
]
}
2. Role 생성
Lambda_EC2_StartStopRole란 이름의 Role를 생성해주고
생성한 lambda_start_stop_ec2_policy 정책을 생성한 Role에 부여해준다.
3. Lambda 함수 생성
- 새로작성
- 기본 정보
- 함수이름 : test
- 런타임 : python 3.8
- 권한
- 실행역할 : 기존 역할 사용
- 기존역할 : Lambda_EC2_StartStopRole
4. Lambda 함수 설정
- 함수 코딩
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))
5. 트리거 구성
- Amazon EventBridge 선택
- 이름
- ec2start
- 설명
- ec2인스턴스를 스케쥴대로 커맨드를 실행(인스턴스 기동)
- 규칙유형
- 예약표현식 : cron(0 0 ? * MON-FRI *)
6. 상수 입력
- Amazon EventBridge(ec2start) > 대상 선택 > 입력구성
- 상수(JSON텍스트)
{
"Action": "start",
"Region": "ap-northeast-1",
"Instances": ["i-9c574585"]
}
'IT > d . e . v . O . p . s' 카테고리의 다른 글
테라폼에서 루프문 사용하기4 (0) | 2024.08.23 |
---|---|
테라폼에서 루프문 사용하기3 (0) | 2024.08.23 |
테라폼에서 루프문 사용하기2 (0) | 2024.08.23 |
테라폼에서 루프문 사용하기1 (0) | 2024.08.23 |
테라폼에서 aws_caller_identity는 어디에 쓰이나요? (0) | 2022.06.17 |