翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Metric Math を使用して、Application Auto Scaling のターゲット追跡スケーリングポリシーを作成する
Metric Math を使用すると、複数の CloudWatch メトリクスをクエリし、数式を使用して、これらのメトリクスに基づいて新しい時系列を作成できます。作成された時系列を CloudWatch コンソールで視覚化し、ダッシュボードに追加できます。Metric Math の詳細については、「Amazon ユーザーガイド」の「Metric Math の使用」を参照してください。 CloudWatch
Metric Math の数式には、次の考慮事項が適用されます。
-
使用可能なメトリクスをクエリできます CloudWatch 。各メトリクスは、メトリクス名、名前空間、0 以上のディメンションの一意の組み合わせです。
-
算術演算子 (+ - * / ^)、統計関数 (AVG や SUM など)、または が CloudWatch サポートするその他の関数を使用できます。
-
数式の関係式では、メトリクスと他の数式の結果の両方を使用できます。
-
メトリクスの指定で使用される数式はすべて、最終的に単一の時系列を返す必要があります。
-
CloudWatch コンソールまたは CloudWatch GetMetricData API を使用して、メトリクスの数式が有効であることを確認できます。
例: タスクごとの Amazon SQS キューバックログ
タスクごとの Amazon SQS キューバックログを計算するには、キューからの取得に使用できるメッセージの概数を取得し、その数を、サービスで実行されている Amazon ECS タスクの数で割ります。詳細については、 AWS コンピューティングブログの「カスタムメトリクスを使用した Amazon Elastic Container Service (ECS) Auto Scaling
この数式のロジックは次のとおりです。
sum of (number of messages in the queue)/(number of tasks that are currently in the
RUNNING
state)
次に、 CloudWatch メトリクス情報は次のとおりです。
ID | CloudWatch メトリクス | 統計 | 間隔 |
---|---|---|---|
m1 | ApproximateNumberOfMessagesVisible | 合計 | 1 分 |
m2 | RunningTaskCount | [Average] (平均) | 1 分 |
メトリクス数学 ID と表現は次のとおりです。
ID | 表現 |
---|---|
e1 | (m1)/(m2) |
次の図は、このメトリクスのアーキテクチャを示しています。
この Metric Math を使用してターゲット追跡スケーリングポリシーを作成するには (AWS CLI)
-
Metric Math の数式を、カスタマイズされたメトリクス仕様の一部として、
config.json
という名前の JSON ファイルに保存します。次の例を参考にして開始してください。各
ユーザー入力プレースホルダー
を独自の情報に置き換えます。{ "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Get the queue size (the number of messages waiting to be processed)", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "ApproximateNumberOfMessagesVisible", "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": "
my-queue
" } ] }, "Stat": "Sum" }, "ReturnData": false }, { "Label": "Get the ECS running task count (the number of currently running tasks)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "RunningTaskCount", "Namespace": "ECS/ContainerInsights", "Dimensions": [ { "Name": "ClusterName", "Value": "my-cluster
" }, { "Name": "ServiceName", "Value": "my-service
" } ] }, "Stat": "Average" }, "ReturnData": false }, { "Label": "Calculate the backlog per instance", "Id": "e1", "Expression": "m1 / m2", "ReturnData": true } ] }, "TargetValue":100
}詳細については、Application Auto Scaling API リファレンスTargetTrackingScalingPolicyConfigurationの「」を参照してください。
注記
以下は、メトリクスの名前、名前空間、ディメンション、統計情報の検索に役立つ追加のリソースです CloudWatch 。
-
AWS サービスの利用可能なメトリクスの詳細については、「Amazon ユーザーガイド」のAWS CloudWatch 「メトリクスを発行する のサービス」を参照してください。 CloudWatch
-
を使用してメトリクスの正確な CloudWatch メトリクス名、名前空間、ディメンション (該当する場合) を取得するには AWS CLI、「list-metrics」を参照してください。
-
-
このポリシーを作成するには、次の例に示すように、JSON ファイルを入力として使用して put-scaling-policy コマンドを実行します。
aws application-autoscaling put-scaling-policy --policy-name
sqs-backlog-target-tracking-scaling-policy
\ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-idservice/my-cluster/my-service
\ --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configurationfile://config.json
成功すると、このコマンドはポリシーの Amazon リソースネーム (ARN) と、ユーザーに代わって作成された 2 ARNs を返します。 CloudWatch
{ "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy: 8784a896-b2ba-47a1-b08c-27301cc499a1:resource/ecs/service/my-cluster/my-service:policyName/sqs-backlog-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0", "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4", "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4" } ] }
注記
このコマンドがエラーをスローする場合は、 を AWS CLI ローカルで最新バージョンに更新していることを確認してください。
制限事項
-
最大リクエストサイズは 50 KB です。これは、ポリシー定義で Metric Math を使用する場合の PutScalingPolicy API リクエストの合計ペイロードサイズです。この制限を超えると、Application Auto Scaling はリクエストを拒否します。
-
ターゲット追跡スケーリングポリシーでメトリクス計算を使用する場合、次のサービスはサポートされません。
-
Amazon Keyspaces (Apache Cassandra 向け)
-
DynamoDB
-
Amazon EMR
-
Amazon MSK
-
Amazon Neptune
-