Lambda활용한 EC2 자동 시작, 중지 스케줄링 구성
월-금 10:25
1. IAM 구성
ㅇ정책 생성
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:Start*", "ec2:Stop*", "rds:StartDBCluster", "rds:StopDBCluster", "rds:ListTagsForResource", "rds:DescribeDBInstances", "rds:StopDBInstance", "rds:DescribeDBClusters", "rds:StartDBInstance" ], "Resource": "*" } ] } |
Ec2와rds 같이 관리하려는 정책으로 필요한 정책만 사용하면 됩니다.
ㅇ역할
역할 생성 후 위에 만든 정책 연결
2. Lambda 함수 생성
stop 함수코드
import boto3 region = 'us-east-1' instances = [] ec2_r = boto3.resource('ec2') ec2 = boto3.client('ec2', region_name=region) for instance in ec2_r.instances.all(): for tag in instance.tags: if tag['Key'] == 'auto-schedule': if tag['Value'] == 'True': instances.append(instance.id) def lambda_handler(event, context): ec2.stop_instances(InstanceIds=instances) print('stopped your instances: ' + str(instances)) |
배포 후 test진행 ( ec2 중지되는 것을 확인)
3. 트리거 추가
이벤트 일정 :
25 02 ? * MON-FRI *
참고)
Start / stop 각각 함수를 생성하고 각각 스케줄 등록 9시 시작 6시 종료 등
https://blog.naver.com/classmethodkr/223442077359
하나의 함수를 가지고 시작 시간/ 종료시간 태그를 통해 1분마다 이벤트 돌면서 스탑종료도 확인가능
'AWS 기타' 카테고리의 다른 글
[AWS] RDS Proxy 구성 (0) | 2025.01.21 |
---|---|
[AWS] CLI 명령어를 사용한 S3 버킷 용량 확인 (0) | 2024.11.21 |
[Redshift] OJBECT, 스키마, 데이터베이스, Defult ACL 등 권한 조회 sql (0) | 2024.10.30 |