Scheduler 이용한 VM, RDS 이용시간 관리

특정한 시간에 자동으로 VM을 켜고 끄는 것은 Lambda, Instance Scheduler on AWS 같은 것 이용해서 구현할 수 있습니다.

https://aws.amazon.com/ko/solutions/implementations/instance-scheduler/

https://aws.amazon.com/ko/premiumsupport/knowledge-center/start-stop-lambda-eventbridge/

 

CloudWatch 에서 리소스 정보를 모니터링하면서 특정 기간동안 예를 들어 CPU 사용률이 낮으면 VM을 stop 또는 삭제하는 방법도 있습니다.

https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html

 

tag에 TTL 이나 만료기간 같은 것을 넣어서 Lambda 로 정기적으로 스크립트 돌려서 작업을 하는 방법도 있겠구요.

 

 

ec2, rds 등 lambda function 이용하여 지정시간에 stop, start 하는 terraform 코드

https://github.com/diodonfrost/terraform-aws-lambda-scheduler-stop-start

GMT 10시(KST 19시)에 tostop 태그에 true 가 들어간 ec2 stop 시키는 코드.

module "stop_ec2_instance" { source = "diodonfrost/lambda-scheduler-stop-start/aws" version = "3.1.3" name = "ec2_stop" cloudwatch_schedule_expression = "cron(0 10 * * ? *)" schedule_action = "stop" autoscaling_schedule = "false" ec2_schedule = "true" rds_schedule = "false" resources_tag = { key = "tostop" value = "true" } }