경우에 따라 예상 계산에서 고려할 수 없는 향후 애플리케이션 필요량에 대한 추가 정보가 있을 수 있습니다. 예컨대, 예상 계산은 향후 마케팅 이벤트에 필요한 작업을 과소 평가할 수 있습니다. 예약된 작업을 사용하여 미래 기간에 대한 예상을 임시로 재정의할 수 있습니다. 예약된 작업은 반복적으로 실행되거나 일회성 수요 변동이 있는 특정 날짜 및 시간에 실행될 수 있습니다.
예컨대, 예상한 것보다 높은 작업 수로 예약된 작업을 생성할 수 있습니다. 런타임 시 Amazon ECS에서는 서비스의 최소 태스크 수를 업데이트합니다. 예측 조정은 작업 수에 맞게 최적화하므로 최소 작업 수가 예상 값보다 높은 예약된 작업이 적용됩니다. 이렇게 하면 작업 수가 예상보다 적지 않습니다. 예상 재정의를 중지하려면 두 번째 예약된 작업을 사용하여 최소 작업 수를 원래 설정으로 되돌립니다.
다음 절차에서는 미래 기간의 예상을 재정의하는 단계를 간략하게 설명합니다.
중요
이 주제에서는 예측보다 더 큰 용량으로 확장하기 위해 예측을 재정의한다고 가정합니다. 예측 조정 정책의 간섭 없이 일시적으로 작업 수를 줄여야 하는 경우 예측 전용 모드를 대신 사용합니다. 예측 전용 모드에서 예측 조정은 계속 예측을 생성하지만 작업 수가 자동으로 증가하지는 않습니다. 그러면 리소스 사용률을 모니터링하고 필요에 따라 태스크 수를 수동으로 줄일 수 있습니다.
1단계: (옵션) 시계열 데이터 분석
예상 시계열 데이터 분석으로 시작합니다. 이 단계는 선택 사항이지만 예상의 세부 정보를 파악하려는 경우, 유용합니다.
-
예상 검색
예상이 생성되면 예상에서 특정 기간을 쿼리할 수 있습니다. 쿼리의 목표는 특정 기간에 대한 시계열 데이터의 전체 보기를 얻는 것입니다.
쿼리에는 최대 2일간의 미래 예상 데이터가 포함될 수 있습니다. 예측 조정을 잠시 사용한 경우에도 과거 예상 데이터에 액세스할 수 있습니다. 그러나 시작 시간과 해지 시간 사이의 최대 기간은 30일입니다.
get-predictive-scaling-forecast AWS CLI 명령을 사용하여 예상을 얻으려면 명령에 다음 파라미터를 제공합니다.
-
resource-id
파라미터에 클러스터의 이름을 입력합니다. -
--policy-name
파라미터에 정책 이름을 입력합니다. -
지정한 시간 또는 그 이후의 예상 데이터만 반환하려면
--start-time
파라미터에 시작 시간을 입력합니다. -
지정한 시간 이전의 예상 데이터만 반환하려면
--end-time
파라미터에 해지 시간을 입력합니다.
aws application-autoscaling get-predictive-scaling-forecast \ --service-namespace ecs \ --resource-id service/MyCluster/test \ --policy-name
cpu40-predictive-scaling-policy
\ --scalable-dimension ecs:service:DesiredCount \ --start-time "2021-05-19T17:00:00Z
" \ --end-time "2021-05-19T23:00:00Z
"이 작업이 성공하면 명령에서 다음 예와 비슷한 데이터가 반환됩니다.
{ "LoadForecast": [ { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 153.0655799339254, 128.8288551285919, 107.1179447150675, 197.3601844551528, 626.4039934516954, 596.9441277518481, 677.9675713779869 ], "MetricSpecification": { "TargetValue": 40.0, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } } ], "CapacityForecast": { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 2.0, 2.0, 2.0, 2.0, 4.0, 4.0, 4.0 ] }, "UpdateTime": "2021-05-19T01:52:50.118000+00:00" }
응답에는
LoadForecast
및CapacityForecast
라는 두 가지 예측 값이 포함됩니다.LoadForecast
는 시간별 로드 예측을 보여 주고CapacityForecast
는 40.0(평균 CPU 사용률 40%)의TargetValue
를 유지하는 동안 예측 로드를 처리하는 데 시간당 필요한 용량에 대한 예측 값을 보여 줍니다. -
-
대상 기간 식별
일회성 수요 변동이 발생해야 하는 시간을 식별합니다. 예상에 표시된 날짜와 시간은 UTC입니다.
2단계: 2개의 예약된 작업 생성
다음으로, 애플리케이션의 예상 로드보다 높은 특정 기간에 대해 2개의 예약된 작업을 생성합니다. 예컨대, 제한된 기간에 사이트에 대한 트래픽을 높이는 마케팅 이벤트가 있는 경우, 이벤트 시작 시 최소 용량을 업데이트하는 일회성 작업을 예약할 수 있습니다. 그런 다음 이벤트가 해지 시 최소 용량을 원래 설정으로 되돌리도록 다른 작업을 예약합니다.
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
클러스터(Clusters) 페이지에서 클러스터를 선택합니다.
-
클러스터 세부 정보 페이지의 서비스 단원에서 서비스를 선택합니다.
서비스 세부 정보 페이지가 나타납니다.
-
서비스 오토 스케일링을 선택합니다.
정책 페이지가 나타납니다.
-
예약된 작업과 생성을 차례로 선택합니다.
예약 생성 작업 페이지가 나타납니다.
-
액션 이름에 고유한 이름을 입력합니다.
-
시간대에서 시간대를 선택합니다.
나열된 모든 표준 시간대는 IANA 표준 시간대 데이터베이스에서 가져온 것입니다. 자세한 내용은 tz 데이터베이스 시간대 목록
을 참조하세요. -
시작 시간에는 작업이 시작되는 날짜와 시간을 입력합니다.
-
반복에서 1회(Once)를 선택합니다.
-
작업 조정의 최솟값에 최대 작업 수보다 적거나 같은 값을 입력합니다.
-
예약된 작업 생성을 선택합니다.
정책 페이지가 나타납니다.
-
이벤트 종료 시 최소 작업 수가 원래 설정으로 되돌아 가도록 두 번째 예약된 작업을 구성합니다. 예측 조정은 최소에 대해 사용자가 설정한 값이 예상 값보다 적은 경우에만 작업 수를 조정할 수 있습니다.
일회성 이벤트에 대해 2개의 예약된 작업을 생성하려면(AWS CLI)
AWS CLI를 사용하여 예약된 작업을 생성하려면 put-scheduled-update-group-action 명령을 사용합니다.
예컨대, 5월 19일 오후 5시에 8시간 동안 최소 용량으로 인스턴스 3개를 유지하는 일정을 정의해 보겠습니다. 다음 명령은 이 시나리오를 구현하는 방법을 보여 줍니다.
첫 번째 put-scheduled-update-group-action 명령은 2021년 5월 19일 오후 5시(UTC)에 지정된 Auto Scaling 그룹의 최소 용량을 업데이트하도록 Amazon EC2 Auto Scaling에 지시합니다.
aws autoscaling put-scheduled-update-group-action --scheduled-action-name
my-event-start
\ --auto-scaling-group-namemy-asg
--start-time "2021-05-19T17:00:00Z
" --minimum-capacity3
두 번째 명령은 그룹의 최소 용량을 2021년 5월 20일 오전 1시(UTC)의 용량으로 설정하도록 Amazon EC2 Auto Scaling에 지시합니다.
aws autoscaling put-scheduled-update-group-action --scheduled-action-name
my-event-end
\ --auto-scaling-group-namemy-asg
--start-time "2021-05-20T01:00:00Z
" --minimum-capacity1
이러한 예약된 작업을 Auto Scaling 그룹에 추가하면 Amazon EC2 Auto Scaling은 다음을 수행하십시오:
-
2021년 5월 19일 오후 5시(UTC)에 첫 번째 예약된 작업이 실행됩니다. 현재 해당 그룹에 인스턴스가 3개 미만 있는 경우, 그룹은 인스턴스 3개로 스케일 아웃됩니다. 이 시간과 향후 8시간 동안 예측 용량이 실제 용량보다 높거나 동적 조정 정책이 적용되는 경우, Amazon EC2 Auto Scaling이 계속 스케일 아웃을 수행할 수 있습니다.
-
2021년 5월 20일 오전 1시(UTC)에 두 번째 예약된 작업이 실행됩니다. 이렇게 하면 이벤트 해지 시 최소 용량이 원래 설정으로 돌아갑니다.
반복 일정에 따라 크기 조정
매주 동일한 기간에 대한 예상을 재정의하려면 두 개의 예약된 작업을 생성하고 cron 표현식을 사용하여 시간 및 날짜 로직을 제공합니다.
cron 표현식 형식은 다음과 같이 공백으로 구분된 다섯 개의 필드로 구성됩니다. [Minute] [Hour] [Day_of_Month] [Month_of_Year] [Day_of_Week]. 필드에는 특수 문자를 포함하여 허용되는 모든 값을 포함할 수 있습니다.
예컨대, 다음 cron 표현식은 매주 화요일 오전 6시 30분에 작업을 실행합니다. 별표는 필드의 모든 값을 일치시키기 위한 와일드카드로 사용됩니다.
30 6 * * 2
다음 사항도 참조하세요.
예약된 작업을 관리하는 방법에 대한 자세한 내용은 예약된 조치를 사용하여 Amazon ECS 서비스 규모 조정 단원을 참조하세요.