#
ドキュメント

Document

自分のための備忘録です。

ECSのAuto Scaling

ECS サービス

ECSに以下の方法でAuto Scalingを設定できる。

  • Webマネジメントコンソールからサービス作成時にAuto Scalingを設定
  • CloudFormationでAuto Scaling設定 CloudFormationのAuto Scaling関連リソース
    • AWS::ApplicationAutoScaling::ScalableTarget:MaxCapacity、MinCapacityに最大数と最小数を指定。ResourceIdにAuto Scalingを設定するECSサービスのARNを指定
    • AWS::ApplicationAutoScaling::ScalingPolicy:ResourceIdにAuto Scalingを設定するECSサービスのARNを指定

Webマネジメントコンソール

Amazon_ECS

CloudFormation

ref. Application Auto Scaling resource type reference

ECSのAuto Scalingを設定するには主に3つの要素が必要

  • AWS::CloudWatch::Alarm
    CloudWatch Alarm Metrix(例:SQSの ApproximateNumberOfMessagesVisibleなど)をトリガーにして、指定したAlarmActions(AWS::ApplicationAutoScaling::ScalingPolicy)が実行される
  • AWS::ApplicationAutoScaling::ScalingPolicy
    • CloudWatch Alarm Metrixをトリガーに実行されるAutoScalingを指定する
    • ScalingTargetIdにAuto Scalingする対象リソース(AWS::ApplicationAutoScaling::ScalableTarget)を指定する
  • AWS::ApplicationAutoScaling::ScalableTarget
    • AWS::ApplicationAutoScaling::ScalingPolicyScalableTargetに指定できるリソース一覧はRegisterScalableTargetのResourceIdを参照

MaxCapacity、MinCapacityとScalingAdjustmentの関係

AWS::ApplicationAutoScaling::ScalableTargetのMaxCapacityMinCapacityで指定した範囲内で、AWS::ApplicationAutoScaling::ScalingPolicyの` AWS::ApplicationAutoScaling::ScalingAdjustmentを指定できる。

MetricIntervalUpperBound、MetricIntervalUpperBound

MetricIntervalUpperBound

  • アラーム閾値(AWS::CloudWatch::Alarm.Threshold)を超えている場合は含まない
  • アラーム閾値(AWS::CloudWatch::Alarm.Threshold)を超えていない場合は含む

MetricIntervalUpperBound The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.

The upper bound must be greater than the lower bound.

-- https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-metricintervalupperbound

DeepLでの翻訳

MetricIntervalUpperBound アラーム閾値とCloudWatchメトリックの差の上限値。メトリック値が違反しきい値より上の場合、上限は排他的である(メトリックはしきい値に上限を足した値より小さくなければならない)。それ以外の場合は、包含的です(メトリックは、閾値に上限を加えた値以下でなければなりません)。ヌル値は正の無限大を示す。

MetricIntervalLowerBound

  • アラーム閾値(AWS::CloudWatch::Alarm.Threshold)を超えている場合は含む
  • アラーム閾値(AWS::CloudWatch::Alarm.Threshold)を超えていない場合は含まない

MetricIntervalLowerBound The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.

-- https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-metricintervalupperbound

DeepLでの翻訳

アラーム閾値とCloudWatchメトリックの差の下限値。メトリック値が違反しきい値を超えている場合、下限は包括的である(メトリックはしきい値に下限を足した値以上でなければならない)。それ以外の場合は、排他的です(メトリックは、閾値に下限を加えた値より大きくなければなりません)。ヌル値は負の無限大を示す。

SQSのキューが空になったらECS サービスを停止する

Fargate で Amazon ECS を Amazon CloudWatch アラームおよび Application Auto Scaling と統合することで、タスクの必要数を増減できます。その後、CloudWatch メトリクスを使用して CloudWatch アラームを設定できます。

CloudWatch アラームが Auto Scaling ポリシーをトリガーすると、Application Auto Scaling は、設定されたスケーリングポリシーに基づいて新しい必要数を決定します。その後、Application Auto Scaling は、新しい必要数の値を使用して UpdateService API を Amazon ECS に呼び出します。Amazon ECS サービススケジューラは、新しい必要数を満たすた

-- https://aws.amazon.com/jp/premiumsupport/knowledge-center/ecs-fargate-service-auto-scaling/?utm_source=pocket_mylist

ECS スケジュールタスク

タスクスケジュールにはAuto Scalingの機能はなく、事前にターゲットに指定されたタスクが起動する。
以下だと3つのtargetが起動する。

auto-scalling

タスクの数とAuto Scalingの必要数

  • タスクの数 screencapture-ap-northeast-1-console-aws-amazon-ecs-home-2022-09-17-09_02_58__1_
  • Auto Scalingの必要数151749608-145f4be9-a61d-4c47-84ac-53619c03a884