IaC를 사용하여 일정 관리 - AWS 인스턴스 스케줄러

IaC를 사용하여 일정 관리

중요

허브 스택 배포가 완료된 후 별도의 템플릿을 사용하여 일정을 배포합니다.

AWS 인스턴스 스케줄러는 AWS CloudFormation을 통해 일정을 구성하고 관리하는 데 사용할 수 있는 사용자 지정 리소스(ServiceInstanceSchedule)를 제공합니다. 사용자 지정 리소스는 Amazon DynamoDB의 인스턴스 스케줄러 구성 테이블과 동일한 데이터에 대해 PascalCase 키를 사용합니다(예시는 아래 템플릿 참조). 일정 필드에 대한 자세한 내용은 일정 정의를 참조하세요. 기간 필드에 대한 자세한 내용은 기간 정의를 참조하세요.

사용자 지정 리소스를 사용하여 일정을 생성할 때 해당 일정의 이름은 기본적으로 사용자 지정 리소스의 논리적 리소스 이름입니다. 다른 이름을 지정하려면 사용자 지정 리소스의 이름 속성을 사용합니다. 또한 솔루션은 기본적으로 스택 이름을 일정 이름에 접두사로 추가합니다. 스택 이름을 접두사로 추가하지 않으려면 NoStackPrefix 속성을 사용합니다.

이름 및 NoStackPrefix 속성을 사용할 때는 고유한 일정 이름을 선택해야 합니다. 동일한 이름의 일정이 이미 있는 경우 리소스가 생성되거나 업데이트되지 않습니다.

IaC를 사용하여 일정 관리를 시작하려면 다음 샘플 템플릿을 복사하여 붙여 넣고 일정을 원하는 대로 사용자 지정합니다. 파일을 .template 파일(예: my-schedules.template)로 저장한 다음 AWS CloudFormation을 사용하여 새 템플릿을 배포합니다. 완료된 일정 템플릿의 예는 샘플 일정을 참조하세요.

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  SampleSchedule1:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN #do not edit this line
      NoStackPrefix: 'False'
      Name: my-renamed-sample-schedule
      Description: a full sample template for creating cfn schedules showing all possible values
      Timezone: America/New_York
      Enforced: 'True'
      Hibernate: 'True'
      RetainRunning: 'True'
      StopNewInstances: 'True'
      UseMaintenanceWindow: 'True'
      SsmMaintenanceWindow: 'my_window_name'
      Periods:
      - Description: run from 9-5 on the first 3 days of March
        BeginTime: '9:00'
        EndTime: '17:00'
        InstanceType: 't2.micro'
        MonthDays: '1-3'
        Months: '3'
      - Description: run from 2pm-5pm on the weekends
        BeginTime: '14:00'
        EndTime: '17:00'
        InstanceType: 't2.micro'
        WeekDays: 'Sat-Sun'

  SampleSchedule2:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN #do not edit this line
      NoStackPrefix: 'True'
      Description: a sample template for creating simple cfn schedules
      Timezone: Europe/Amsterdam
      Periods:
      - Description: stop at 5pm every day
        EndTime: '17:00'

템플릿을 배포할 때 AWS 인스턴스 스케줄러를 배포할 수 있도록 ServiceTokenARN을 제공해야 합니다. 이 ARN은 배포된 인스턴스 스케줄러 스택으로 이동하여 출력을 선택하고 ServiceInstanceScheduleServiceToken.을 찾아 CloudFormation에서 찾을 수 있습니다.

중요

DynamoDB 콘솔 또는 스케줄러 CLI로 사용자 지정 리소스를 사용해 구성된 일정 및 기간을 삭제하거나 수정하지 마십시오. 이렇게 하면 스택에 저장된 파라미터와 테이블의 값 간에 충돌이 발생합니다. 또한 DynamoDB 콘솔 또는 스케줄러 CLI로 생성된 일정에 사용자 지정 리소스를 사용하여 구성된 기간을 사용하지 마십시오.

기본 인스턴스 스케줄러 스택을 삭제하기 전에 사용자 지정 리소스 스택에 기본 스택의 DynamoDB 테이블에 대한 종속성이 포함되므로 사용자 지정 리소스를 사용하여 생성된 일정 및 기간이 포함된 추가 스택을 모두 삭제해야 합니다.

구성 DynamoDB 테이블에서 사용자 지정 리소스로 구성된 일정 및 기간은 configured_in_stack 속성으로 식별할 수 있습니다. 속성에는 항목을 생성하는 데 사용된 스택의 Amazon 리소스 이름이 포함됩니다.