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"
}
}