Amazon ECS 서비스 자동 스케일링용 예약 작업 생성

Amazon ECS 서비스 자동 스케일링용 예약 작업 생성

예약 작업(scheduled action)을 만들어 날짜와 시간에 따라 서비스가 실행하는 태스크 수를 Amazon ECS가 늘리거나 줄이도록 할 수 있어요.

출처: 문서

본문

콘솔 (Console)

  1. 콘솔을 https://console.aws.amazon.com/ecs/v2 에서 엽니다.
  2. Clusters 페이지에서 클러스터를 선택합니다.
  3. 클러스터 상세 페이지의 Services 섹션에서 서비스를 선택합니다. 서비스 상세 페이지가 나타납니다.
  4. Service auto scaling을 선택합니다. 서비스 자동 스케일링 페이지가 나타납니다.
  5. 서비스 자동 스케일링을 구성하지 않았다면 Set the number of tasks를 선택합니다. Amazon ECS 서비스 태스크 수 섹션이 나타납니다.
  6. Amazon ECS service task count 아래에서 Use service auto scaling to adjust your service's desired task count를 선택합니다. Task count 섹션이 나타납니다.
  7. Minimum number of tasks에 서비스 자동 스케일링이 사용할 태스크 수의 하한을 입력합니다. desired count는 이 수보다 낮아지지 않아요.
  8. Maximum에 서비스 자동 스케일링이 사용할 태스크 수의 상한을 입력합니다. desired count는 이 수보다 높아지지 않아요.
  9. Choose Save를 선택합니다. 정책 페이지가 나타납니다.
  10. Scheduled actions를 선택한 다음 Create를 선택합니다. Create Scheduled action 페이지가 나타납니다.
  11. Action name에 고유한 이름을 입력합니다.
  12. Time zone에서 시간대를 선택합니다. 나열된 모든 시간대는 IANA Time Zone database에서 온 것이에요. 자세한 내용은 List of tz database time zones를 참고하세요.
  13. Start time에 작업이 시작되는 날짜와 시간을 입력합니다. 반복 일정을 선택했다면 시작 시간은 반복 시리즈의 첫 번째 예약 작업이 실행되는 시점을 정의해요.
  14. Recurrence에서 사용 가능한 옵션 중 하나를 선택합니다.
    • 반복 일정으로 스케일링하려면 Amazon ECS가 예약 작업을 실행하는 빈도를 선택합니다.
    • Rate로 시작하는 옵션을 선택하면 cron 표현식이 자동으로 만들어져요.
    • Cron을 선택하면 작업을 수행할 시점을 지정하는 cron 표현식을 입력합니다.
    • 한 번만 스케일링하려면 Once를 선택합니다.
  15. Task adjustments 아래에서 다음을 수행합니다.
    • Minimum에 서비스가 실행해야 할 최소 태스크 수를 입력합니다.
    • Maximum에 서비스가 실행해야 할 최대 태스크 수를 입력합니다.
  16. Create scheduled action을 선택합니다.

AWS CLI

다음과 같이 AWS CLI를 사용해 서비스에 예약 스케일링 정책을 구성할 수 있어요. 각 사용자 입력 자리 표시자를 사용자의 정보로 바꾸세요.

예: 일회성 스케일링 – --start-time "YYYY-MM-DDThh:mm:ssZ"와 --MinCapacity, --MaxCapacity 옵션 중 하나 또는 둘 다를 사용하는 다음 put-scheduled-action 명령을 사용하세요.

aws application-autoscaling put-scheduled-action --service-namespace ecs \
  --resource-id service/my-cluster/my-service \
  --scheduled-action-name my-one-time-schedule \
  --start-time 2021-01-30T12:00:00 \
  --scalable-target-action MinCapacity=3,MaxCapacity=10

예: 반복 일정으로 스케일링 예약 – 다음 put-scheduled-action 명령을 사용하세요. 사용자 입력을 사용자의 값으로 바꾸세요.

aws application-autoscaling put-scheduled-action --service-namespace ecs \
  --resource-id service/my-cluster/my-service \
  --scheduled-action-name my-recurring-action \
  --schedule "rate(5 hours)" \
  --start-time 2021-01-30T12:00:00 \
  --end-time 2021-01-31T22:00:00 \
  --scalable-target-action MinCapacity=3,MaxCapacity=10

지정된 반복 일정은 UTC 시간대를 기준으로 실행돼요. 다른 시간대를 지정하려면 --time-zone 옵션과 IANA 시간대 이름을 포함하세요. 예를 들면 다음과 같아요.

--time-zone "America/New_York"

자세한 내용은 List of tz database time zones를 참고하세요.