Amazon ECS 예측 스케일링 정책 평가하기

Amazon ECS 예측 스케일링 정책 평가하기

예측 스케일링(predictive scaling) 정책을 사용해 서비스를 스케일링하기 전에 Amazon ECS 콘솔에서 정책에 대한 권장 사항과 기타 데이터를 검토해 주세요. 예측이 정확하다는 것을 알기 전에는 예측 스케일링 정책이 실제 용량을 스케일링하게 하고 싶지 않기 때문에 이는 중요해요.

출처: 문서

본문

서비스가 새 서비스라면 첫 번째 예측(forecast)을 만드는 데 24시간을 허용해 주세요. AWS가 예측을 만들면 과거 데이터를 사용해요. 서비스에 최근 과거 데이터가 많지 않다면 예측 스케일링은 현재 사용 가능한 과거 집계에서 생성된 집계로 예측을 임시로 백필(backfill)할 수 있어요. 예측은 정책 생성 날짜 이전 최대 2주 동안 백필돼요.

예측 스케일링 권장 사항 보기 효과적인 분석을 위해 서비스 자동 스케일링에는 비교할 예측 스케일링 정책이 최소 2개 있어야 해요. (그러나 단일 정책에 대한 결과도 검토할 수 있어요.) 여러 정책을 만들면 한 메트릭을 사용하는 정책을 다른 메트릭을 사용하는 정책과 평가할 수 있어요. 다른 대상 값과 메트릭 조합의 영향도 평가할 수 있어요. 예측 스케일링 정책이 생성된 후 Amazon ECS는 어떤 정책이 그룹 스케일링을 더 잘 할지 즉시 평가하기 시작해요.

Amazon ECS 콘솔에서 권장 사항을 보려면

  1. https://console.aws.amazon.com/ecs/v2 에서 콘솔을 엽니다.
  2. Clusters 페이지에서 클러스터를 선택합니다.
  3. 클러스터 세부 정보 페이지의 Services 섹션에서 서비스를 선택합니다. 서비스 세부 정보 페이지가 나타납니다.
  4. Service auto scaling 을 선택합니다.
  5. 예측 스케일링 정책을 선택한 다음 Actions , Predictive Scaling , View recommendation 을 선택합니다.
  6. 정책에 대한 세부 정보와 권장 사항을 함께 볼 수 있어요. 권장 사항은 예측 스케일링 정책이 사용하지 않는 것보다 더 잘하는지 여부를 알려 줘요.
  7. 예측 스케일링 정책이 그룹에 적합한지 확실하지 않다면 Availability impact 및 Cost impact 열을 검토해 올바른 정책을 선택해 주세요. 각 열의 정보는 정책의 영향이 무엇인지 알려 줘요.
    • Availability impact : 정책을 사용하지 않는 것과 비교해, 워크로드를 처리할 충분한 태스크를 프로비저닝해 가용성에 부정적인 영향을 피할 수 있는지 설명해요.
    • Cost impact : 정책을 사용하지 않는 것과 비교해, 태스크를 과도하게 프로비저닝하지 않음으로써 비용에 부정적인 영향을 피할 수 있는지 설명해요. 너무 과도하게 프로비저닝하면 서비스가 활용도가 낮거나 유휴 상태가 되어 비용 영향만 더해져요.
  8. 여러 정책이 있다면 더 낮은 비용으로 가장 많은 가용성 이점을 제공하는 정책의 이름 옆에 Best prediction 태그가 표시돼요. 가용성 영향에 더 많은 가중치가 부여돼요.
  9. (선택 사항) 권장 사항 결과의 원하는 기간을 선택하려면 Evaluation period 드롭다운에서 선호하는 값을 선택합니다: 2 days , 1 week , 또는 2 weeks . 기본적으로 평가 기간은 지난 2주입니다. 더 긴 평가 기간은 권장 사항 결과에 더 많은 데이터 포인트를 제공합니다. 그러나 과도한 수요 기간 이후처럼 로드 패턴이 변경되었다면 더 많은 데이터 포인트를 추가해도 결과가 개선되지 않을 수 있습니다. 이 경우 더 최근 데이터를 보면 더 집중된 권장 사항을 얻을 수 있습니다.

참고 권장 사항은 Forecast only 모드에 있는 정책에 대해서만 생성돼요. 권장 사항 기능은 정책이 평가 기간 내내 Forecast only 모드에 있을 때 더 잘 작동해요. 정책을 Forecast and scale 모드로 시작했다가 나중에 Forecast only 모드로 전환하면 해당 정책의 결과가 편향될 가능성이 높아요. 이는 정책이 이미 실제 용량에 기여했기 때문이에요.

예측 스케일링 모니터링 그래프 검토 콘솔에서 지난 며칠, 몇 주 또는 몇 달의 예측을 검토해 정책이 시간이 지남에 따라 얼마나 잘 수행되는지 시각화할 수 있어요. 이 정보를 사용해 정책이 태스크 수를 실제로 스케일링하도록 할지 결정할 때 예측의 정확성을 평가할 수도 있어요.

Amazon ECS 콘솔에서 예측 스케일링 모니터링 그래프를 검토하려면

  1. https://console.aws.amazon.com/ecs/v2 에서 콘솔을 엽니다.
  2. Clusters 페이지에서 클러스터를 선택합니다.
  3. 클러스터 세부 정보 페이지의 Services 섹션에서 서비스를 선택합니다. 서비스 세부 정보 페이지가 나타납니다.
  4. Service auto scaling 을 선택합니다.
  5. 예측 스케일링 정책을 선택한 다음 Actions , Predictive Scaling , View Graph 를 선택합니다.
  6. Monitoring 섹션에서 실제 값과 비교한 부하 및 용량에 대한 정책의 과거 및 미래 예측을 볼 수 있어요. Load 그래프는 선택한 부하 메트릭에 대한 부하 예측과 실제 값을 보여 줘요. Capacity 그래프는 정책이 예측한 태스크 수를 보여 줘요. 실제 시작된 태스크 수도 포함돼요. 세로선은 과거 값과 미래 예측을 구분해요. 이러한 그래프는 정책이 생성된 직후에 사용할 수 있게 돼요.
  7. (선택 사항) 차트에 표시되는 과거 데이터의 양을 변경하려면 Evaluation period 드롭다운에서 선호하는 값을 선택합니다. 평가 기간은 이 페이지의 데이터를 어떤 식으로든 변형하지 않습니다. 표시되는 과거 데이터의 양만 변경합니다.

Load 그래프의 데이터 비교 각 가로선은 1시간 간격으로 보고된 서로 다른 데이터 포인트 집합을 나타내요.

  • Actual observed load 는 선택한 부하 메트릭에 SUM 통계를 사용해 과거의 총 시간당 부하를 보여 줘요.
  • Load predicted by the policy 는 시간당 부하 예측을 보여 줘요. 이 예측은 이전 2주간의 실제 부하 관찰을 기반으로 해요.

Capacity 그래프의 데이터 비교 각 가로선은 1시간 간격으로 보고된 서로 다른 데이터 포인트 집합을 나타내요.

  • Actual observed number of tasks 는 선택한 기간 동안 적용된 다른 스케일링 정책과 최소 그룹 크기에 따라 달라지는 Amazon ECS 서비스의 과거 실제 용량을 보여 줘요.
  • Capacity predicted by the policy 는 정책이 Forecast and scale 모드에 있을 때 각 시간 시작 시점에 기대할 수 있는 기준 용량을 보여 줘요.
  • Inferred required number of tasks 는 스케일링 메트릭을 선택한 대상 값으로 유지하기 위한 서비스의 이상적인 태스크 수를 보여 줘요.
  • Minimum number of tasks 는 서비스의 최소 태스크 수를 보여 줘요.
  • Maximum capacity 는 서비스의 최대 태스크 수를 보여 줘요.

추론된 필요 용량(inferred required capacity)을 계산하기 위해 먼저 각 태스크가 지정된 대상 값에서 균등하게 활용된다고 가정해요. 실제로 태스크 수는 균등하게 활용되지 않아요. 그러나 활용이 태스크 간에 균일하게 분산된다고 가정하면 필요한 용량의 양에 대한 가능성 추정을 할 수 있어요. 태스크 수의 요구 사항은 예측 스케일링 정책에 사용한 스케일링 메트릭에 반비례하도록 계산돼요. 즉 태스크 수가 증가하면 스케일링 메트릭은 같은 비율로 감소해요. 예를 들어 태스크 수가 두 배가 되면 스케일링 메트릭은 절반으로 감소해야 해요.

추론된 필요 용량 공식:

sum of (actualServiceUnits*scalingMetricValue)/(targetUtilization)

예를 들어 주어진 시간에 대해 actualServiceUnits ( 10 )와 scalingMetricValue ( 30 )을 취해요. 그런 다음 예측 스케일링 정책에 지정한 targetUtilization ( 60 )을 취해 같은 시간의 추론된 필요 용량을 계산해요. 이는 5 의 값을 반환해요. 이는 5가 스케일링 메트릭의 대상 값에 정비례 반대(inverse proportion)로 용량을 유지하는 데 필요한 추론된 용량 양임을 의미해요.

참고 애플리케이션의 비용 절감과 가용성을 조정하고 개선할 수 있는 다양한 수단(levers)이 있어요.

  • 예측 스케일링을 기준 용량에 사용하고 동적 스케일링(dynamic scaling)을 사용해 추가 용량을 처리해요. 동적 스케일링은 현재 사용률에 따라 스케일 인/아웃하며 예측 스케일링과 독립적으로 작동해요. 먼저 Amazon ECS는 각 비스케줄링 스케일링 정책에 대한 권장 태스크 수를 계산해요. 그런 다음 가장 많은 태스크 수를 제공하는 정책을 기반으로 스케일링해요.
  • 부하가 감소할 때 스케일인이 발생하도록 서비스에는 항상 스케일인 부분이 활성화된 동적 스케일링 정책이 하나 이상 있어야 해요.
  • 최소 및 최대 용량이 너무 제한적이지 않도록 해 스케일링 성능을 개선할 수 있어요. 권장 태스크 수가 최소 및 최대 용량 범위에 속하지 않는 정책은 스케일 인/아웃이 방지돼요.

더 알아보기 (Learn more)