Auto Scaling グループの予測スケーリングポリシーを作成する - Amazon EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Auto Scaling グループの予測スケーリングポリシーを作成する

次の手順は、 AWS Management Console または を使用して予測スケーリングポリシーを作成するのに役立ちます AWS CLI。

Auto Scaling グループが新しい場合は、Amazon EC2 Auto Scaling が予測を生成する前に、少なくとも 24 時間分のデータを提供する必要があります。

予測スケーリングポリシーを作成する (コンソール)

予測スケーリングポリシーを初めて作成する場合は、 コンソールを使用して、予測専用モードで複数の予測スケーリングポリシーを作成することをお勧めします。これにより、さまざまなメトリクスとターゲット値による潜在的な影響をテストできます。Auto Scaling グループごとに複数の予測スケーリングポリシーを作成できますが、アクティブなスケーリングに使用できるポリシーは 1 つだけです。

以下の手順を使用して、事前定義されたメトリクス (CPU、ネットワーク I/O、またはターゲットあたりの Application Load Balancer リクエスト数) を使用して予測スケーリングポリシーを作成します。予測スケーリングポリシーを作成する最も簡単な方法は、事前定義されたメトリクスを使用することです。その代わりにカスタムメトリクスを使用する場合は、「コンソールで予測スケーリングポリシーを作成する (カスタムメトリクス)」を参照してください。

予測スケーリングポリシーを作成する
  1. で Amazon EC2コンソールを開きhttps://console.aws.amazon.com/ec2/、ナビゲーションペインから Auto Scaling Groups を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

    ページの下部に分割されたペインが開きます。

  3. [Automatic scaling] (自動スケーリング) タブの [Scaling policies] (スケーリングポリシー) で、[Create predictive scaling policy] (予測スケーリングポリシーの作成) を選択します。

  4. ポリシーの名前を入力します。

  5. 予測に基づいて Scale をオンにして、Amazon EC2 Auto Scaling にスケーリングをすぐに開始するアクセス許可を付与します。

    ポリシーを予測のみモードにしておくには、[Scale based on forecast] (予測に基づくスケーリング) をオフのままにします。

  6. [Metrics] (メトリクス) で、オプションのリストからメトリクスを選択します。オプションにはCPU、、Network In Network Out Application Load Balancer リクエスト数カスタムメトリクスペア が含まれます。

    [Application Load Balancer request count per target] (ターゲットあたりの Application Load Balancer リクエスト数) を選択した場合、[Target group] (ターゲットグループ) のターゲットグループを選択します。[Application Load Balancer request count per target] (ターゲットあたりの Application Load Balancer リクエスト数) は、Application Load Balancer ターゲットグループを Auto Scaling グループにアタッチしている場合にのみサポートされます。

    [Custom metric pair] (カスタムメトリクスペア) を選択した場合、[Load metric] (負荷のメトリクス) と [Scaling metric] (スケーリングのメトリクス) のドロップダウンリストから個々のメトリクスを選択します。

  7. ターゲット使用率 には、Amazon EC2 Auto Scaling が維持する必要があるターゲット値を入力します。Amazon EC2 Auto Scaling は、平均使用率が目標使用率に達するか、指定したインスタンスの最大数に達するまで容量をスケールアウトします。

    スケーリングメトリクスが以下である場合..。 ターゲット使用率は以下の内容になります。
    CPU

    各インスタンスCPUが理想的に使用する の割合。

    ネットワーク入力

    各インスタンスが受信する理想的な 1 分あたりの平均バイト数。

    ネットワーク出力

    各インスタンスが送信する理想的な 1 分あたりの平均バイト数。

    ターゲットあたりの Application Load Balancer リクエスト数

    各インスタンスが受信する理想的な 1 分あたりの平均リクエスト数。

  8. (オプション) [Pre-launch instances] (インスタンスの事前起動) で、予測によって負荷の増加が必要とされる際、どれくらい前にインスタンスを起動しておくかを選択します。

  9. (オプション) 最大容量動作 で、予測容量が定義された最大容量を超えたときに Amazon EC2 Auto Scaling がグループの最大容量よりも大きくスケールアウトするかどうかを選択します。この設定をオンにすると、トラフィックが最高になると予測される期間中にスケールアウトが実行されます。

  10. (オプション) [Buffer maximum capacity above the forecasted capacity] (予測キャパシティーを超える最大キャパシティーのバッファ) で、予測キャパシティーが最大キャパシティーに近づいたか、それを超えたときに使用する追加キャパシティーを選択します。この値は予測キャパシティーに対する割合 (%) として指定されます。たとえば、バッファが 10 の場合、バッファは 10% です。従って、予測キャパシティーが 50 で最大キャパシティーが 40 の場合、有効な最大キャパシティーは 55 です。

    0 に設定すると、Amazon EC2 Auto Scaling は最大容量よりも大きい容量を予測容量と等しくなるが、超えないようにスケーリングする場合があります。

  11. [Create predictive scaling policy] (予測スケーリングポリシーを作成) を選択します。

カスタムメトリクスを使用して予測スケーリングポリシーを作成するには、以下の手順を実行します。カスタムメトリクスには、 が提供する他のメトリクス CloudWatch や、 に発行するメトリクスを含めることができます CloudWatch。CPU、ネットワーク I/O、またはターゲットあたりの Application Load Balancer リクエスト数を使用するには、「」を参照してくださいコンソールで予測スケーリングポリシーを作成する (事前定義されたメトリクス)

カスタムメトリクスを使用して予測スケーリングポリシーを作成するには、以下を実行する必要があります。

  • Amazon EC2 Auto Scaling が のメトリクスとやり取りできるようにする raw クエリを指定する必要があります CloudWatch。詳細については、「カスタムメトリクスを使用した高度な予測スケーリングポリシー」を参照してください。Amazon EC2 Auto Scaling が からメトリクスデータを抽出できるようにするには CloudWatch、各クエリがデータポイントを返すことを確認します。 CloudWatch コンソールまたは APIオペレーションを使用してこれを確認します CloudWatch GetMetricData

    注記

    Amazon EC2 Auto Scaling コンソールのJSONエディタにサンプルJSONペイロードが用意されています。これらの例では、 によって提供される他の CloudWatch メトリクス、 AWS または以前に に公開したメトリクスを追加するために必要なキーと値のペアのリファレンスを提供します CloudWatch。これらを開始点として使用してから、必要に応じてカスタマイズすることができます。

  • メトリクス数学を使用する場合は、独自のシナリオJSONに合わせて を手動で構築する必要があります。詳細については、「Metric Math 式を使用する」を参照してください。ポリシーでメトリクス計算を使用する前に、メトリクス数式に基づくメトリクスクエリが有効であり、単一の時系列を返すことを確認してください。 CloudWatch コンソールまたは APIオペレーションを使用してこれを確認します CloudWatch GetMetricData

誤ったデータ (間違った Auto Scaling グループ名など) を提供することによってクエリでエラーが発生した場合、予測にはデータがありません。カスタムメトリクス問題のトラブルシューティングについては、「予測スケーリングポリシーのカスタムメトリクスに関する考慮事項」を参照してください。

予測スケーリングポリシーを作成する
  1. で Amazon EC2コンソールを開きhttps://console.aws.amazon.com/ec2/、ナビゲーションペインから Auto Scaling Groups を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

    ページの下部に分割されたペインが開きます。

  3. [Automatic scaling] (自動スケーリング) タブの [Scaling policies] (スケーリングポリシー) で、[Create predictive scaling policy] (予測スケーリングポリシーの作成) を選択します。

  4. ポリシーの名前を入力します。

  5. 予測に基づいて Scale をオンにして、Amazon EC2 Auto Scaling にスケーリングをすぐに開始するアクセス許可を付与します。

    ポリシーを予測のみモードにしておくには、[Scale based on forecast] (予測に基づくスケーリング) をオフのままにします。

  6. [Metrics] (メトリクス) では、[Custom metric pair] (カスタムメトリクスのペア) を選択します。

    1. ロードメトリクス でカスタム CloudWatch メトリクスを使用するカスタムメトリクスを選択します。ポリシーのロードメトリクス定義を含むJSONペイロードを構築し、JSONエディタボックスに貼り付けて、すでにボックスに含まれているものを置き換えます。

    2. スケーリングメトリクス でカスタム CloudWatch メトリクスを使用するカスタムメトリクスを選択します。ポリシーのスケーリングメトリクス定義を含むJSONペイロードを構築し、JSONエディタボックスに貼り付けて、すでにボックスに含まれているものを置き換えます。

    3. (オプション) カスタム容量メトリクスを追加するには、[Add custom capacity metric] (カスタム容量メトリクスを追加する) のチェックボックスをオンにします。ポリシーの容量メトリクス定義を含むJSONペイロードを作成し、JSONエディタボックスに貼り付けて、すでにボックスに含まれているものを置き換えます。

      このオプションを有効にする必要があるのは、容量メトリクスデータが複数の Auto Scaling グループにまたがる場合に容量の新しい時系列を作成するためのみです。この場合は、メトリクス計算を使用してデータを単一の時系列に集計する必要があります。

  7. ターゲット使用率 には、Amazon EC2 Auto Scaling が維持する必要があるターゲット値を入力します。Amazon EC2 Auto Scaling は、平均使用率が目標使用率に達するか、指定したインスタンスの最大数に達するまで容量をスケールアウトします。

  8. (オプション) [Pre-launch instances] (インスタンスの事前起動) で、予測によって負荷の増加が必要とされる際、どれくらい前にインスタンスを起動しておくかを選択します。

  9. (オプション) 最大容量動作 で、予測容量が定義された最大容量を超えたときに Amazon EC2 Auto Scaling がグループの最大容量よりも大きくスケールアウトするかどうかを選択します。この設定をオンにすると、トラフィックが最高になると予測される期間中にスケールアウトが実行されます。

  10. (オプション) [Buffer maximum capacity above the forecasted capacity] (予測キャパシティーを超える最大キャパシティーのバッファ) で、予測キャパシティーが最大キャパシティーに近づいたか、それを超えたときに使用する追加キャパシティーを選択します。この値は予測キャパシティーに対する割合 (%) として指定されます。たとえば、バッファが 10 の場合、バッファは 10% です。従って、予測キャパシティーが 50 で最大キャパシティーが 40 の場合、有効な最大キャパシティーは 55 です。

    0 に設定すると、Amazon EC2 Auto Scaling は最大容量よりも大きい容量を予測容量と等しくなるが、超えないようにスケーリングする場合があります。

  11. Create predictive scaling policy[] (予測スケーリングポリシーの作成) を選択します。

予測スケーリングポリシーの作成 (AWS CLI)

AWS CLI 次のように を使用して、Auto Scaling グループの予測スケーリングポリシーを設定します。各 を置き換える user input placeholder 自分の情報を入力します。

指定できる CloudWatch メトリクスの詳細については、「Amazon EC2 Auto Scaling APIリファレンスPredictiveScalingMetricSpecification」の「」を参照してください。

例 1: 予測を作成するが、スケーリングしない予測スケーリングポリシー

次のポリシー例は、ターゲットCPU使用率が の予測スケーリングに使用率メトリクスを使用する完全なポリシー設定を示しています40。使用するForecastOnlyモードを明示的に指定しない限り、 モードはデフォルトで使用されます。この設定を config.json という名前のファイルに保存してください。

{ "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ] }

コマンドラインからポリシーを作成するには、次の例に示すように、 設定ファイルを指定して put-scaling-policy コマンドを実行します。

aws autoscaling put-scaling-policy --policy-name cpu40-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

成功すると、このコマンドはポリシーの Amazon リソースネーム () を返しますARN。

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/cpu40-predictive-scaling-policy", "Alarms": [] }

例 2: 予測とスケーリングを行う予測スケーリングポリシー

Amazon EC2 Auto Scaling に予測とスケーリングを許可するポリシーの場合は、 プロパティを の値Modeで追加しますForecastAndScale。次の例は、Application Load Balancer リクエスト数メトリクスを使用するポリシー設定を示しています。ターゲット使用率は 1000 で、予測スケーリングは ForecastAndScale モードに設定されています。

{ "MetricSpecifications": [ { "TargetValue": 1000, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ALBRequestCount", "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff" } } ], "Mode": "ForecastAndScale" }

このポリシーを作成するには、次の例に示すように、 設定ファイルを指定して put-scaling-policy コマンドを実行します。

aws autoscaling put-scaling-policy --policy-name alb1000-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

成功すると、このコマンドはポリシーの Amazon リソースネーム () を返しますARN。

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:19556d63-7914-4997-8c81-d27ca5241386:autoScalingGroupName/my-asg:policyName/alb1000-predictive-scaling-policy", "Alarms": [] }

例 3: 最大キャパシティーを超えてスケーリングできる予測スケーリングポリシー

次の例は、通常よりも高い負荷を処理する必要がある場合に、グループの最大サイズ制限を超えてスケーリングできるポリシーを作成する方法を示しています。デフォルトでは、Amazon EC2 Auto Scaling は定義された最大EC2容量よりも容量をスケールしません。しかし、パフォーマンスや可用性の問題を回避するために、キャパシティーを少し増やしてスケーリングすると便利な場合があります。

キャパシティがグループの最大サイズまたはそれに近いことが予測されるときに、Amazon EC2 Auto Scaling が追加のキャパシティをプロビジョニングするスペースを提供するには、次の例に示すように、 MaxCapacityBreachBehaviorおよび MaxCapacityBufferプロパティを指定します。MaxCapacityBreachBehavior に値 IncreaseMaxCapacity を指定する必要があります。グループに含めることができるインスタンスの最大数は、MaxCapacityBuffer の値によって異なります。

{ "MetricSpecifications": [ { "TargetValue": 70, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ], "MaxCapacityBreachBehavior": "IncreaseMaxCapacity", "MaxCapacityBuffer": 10 }

この例では、10% のバッファ ("MaxCapacityBuffer": 10) を使用するようにポリシーが設定されています。したがって、予測キャパシティーが 50、最大キャパシティーが 40 の場合、有効な最大キャパシティーは 55 です。キャパシティーを最大キャパシティーを超えてスケーリングし、予測キャパシティーに等しくするが、予測キャパシティーを超えないようにするポリシーでは、バッファは 0 です ("MaxCapacityBuffer": 0)。

このポリシーを作成するには、次の例に示すように、 設定ファイルを指定して put-scaling-policy コマンドを実行します。

aws autoscaling put-scaling-policy --policy-name cpu70-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

成功すると、このコマンドはポリシーの Amazon リソースネーム () を返しますARN。

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:d02ef525-8651-4314-bf14-888331ebd04f:autoScalingGroupName/my-asg:policyName/cpu70-predictive-scaling-policy", "Alarms": [] }