https://docs.aws.amazon.com/ko_kr/solutions/latest/instance-scheduler-on-aws/architecture-overview.html
- 인스턴스(EC2, RDS)의 시작 및 중지 일정을 구성
CloudFormation 배포
Cloudformation template from AWS
https://s3.amazonaws.com/solutions-reference/aws-instance-scheduler/latest/instance-scheduler.template
CloudFormation 생성 Link
- Region(s)
- 인스턴스가 예약된 지역, 공백이라면 현재 지역으로 설정
- Frequency
- 스케줄러를 실행할 빈도
- Cross-account roles
- 교차 계정 액세스 역할에 대한 ANR의 쉼표로 구분된 목록입니다. 인스턴스를 시작하고 중지하려면 스케줄러가 선택한 모든 계정에서 이러한 역할을 생성해야 합니다.
- Memory size
- Lambda 메모리 사이즈
스택 세부 정보 지정
3단계 - 스택 옵션 구성
- default or 필요한 설정 추가
4단계 - 검토
- AWS CloudFormation에서 IAM 리소스를 생성할 수 있음을 승인합니다.
생성된 리소스 확인
DynamoDB
스케줄 정의
DynamoDB - ConfigTable
definition 참고 - schedule, period
https://docs.aws.amazon.com/ko_kr/solutions/latest/instance-scheduler-on-aws/components.html#schedules
- begintime만 지정하는 경우 수동으로 인스턴스를 종료
- begintime을 09:00, weekdays 설정하는 경우 11:59분에 인스턴스 중지
- override_status
- running: 스케줄대로 시작은 가능하지만, 수동으로 종료해야함(그전까지는 중지안함)
- stopped: 스케줄대로 중지는 가능하지만, 수동으로 시작해야함(그전까지는 시작안함)
- retain_running
- 기간이 시작되기 전에 인스턴스가 수동으로 시작된 경우 솔루션이 실행 기간 종료 시 인스턴스를 중지하지 않도록 할지 여부를 선택합니다.
기간(period) 정의
{
"type": {
"S": "period"
},
"name": {
"S": "jeff-start"
},
"begintime": {
"S": "00:00"
},
"description": {
"S": "ec or rds instance start"
},
"endtime": {
"S": "03:00"
},
"weekdays": {
"SS": [
"0-4"
]
}
}
- weekdays
- 0: 월요일
스케줄(scheduler) 정의
- jeff-running
{
"type": {
"S": "schedule"
},
"name": {
"S": "jeff-running"
},
"description": {
"S": "Instances running"
},
"periods": {
"SS": [
"jeff-start"
]
},
"timezone": {
"S": "Asia/Seoul"
},
"use_metrics": {
"BOOL": false
}
}
동작 확인
instanace가 stop/running 상태로 변경되고 태그에 state: stopped or started 가 달리는 것을 확인할 수 있다.
Cloudwatch log에서 설정한 시간 마다 실행되는 메시지를 확인할 수 있다.
{
"action": "scheduler:run",
"configuration": {
"tag_name": "Schedule",
"default_timezone": "Asia/Seoul",
"trace": true,
"use_metrics": false,
"schedule_clusters": false,
"create_rds_snapshot": false,
"schedule_lambda_account": true,
"started_tags": "state=started",
"stopped_tags": "state=stoped",
"regions": [
"ap-northeast-2"
],
"scheduled_services": [
"ec2"
],
"schedules": {
"jeff-running": {
"name": "jeff-running",
"timezone": "Asia/Seoul",
"stop_new_instances": true,
"use_metrics": false,
"enforced": false,
"hibernate": false,
"use_maintenance_window": false,
"schedule_dt": "2022-12-02T00:30:12.717647+09:00",
"periods": [
"jeff-start"
]
},
## 중략
},
"dispatch_time": "2022-12-01 15:30:14.320155"
}
참고
Instance Scheduler on AWS
https://docs.aws.amazon.com/ko_kr/solutions/latest/instance-scheduler-on-aws/welcome.html
'Cloud-computing > AWS' 카테고리의 다른 글
[AWS]Amazon SNS을 사용하여 CloudWatch Log Alerting (0) | 2022.09.25 |
---|---|
[AWS]Amazon SNS - Lambda - Slack 알림 설정 방법 with KMS (0) | 2022.09.25 |
[AWS]통합 CloudWatch 에이전트를 사용하여 CloudWatch Logs 시작하기 (0) | 2022.08.23 |
[AWS]AWS CLI 자동완성 설정(AWS CLI Enable Auto Completion) (0) | 2022.07.03 |
[AWS]Install AWS CLI in Ubuntu (0) | 2022.07.03 |