ターゲットトラッキングスケーリング 方針 - Amazon Elastic Container Service

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

ターゲットトラッキングスケーリング 方針

ターゲット追跡スケーリングポリシーでは、メトリックを選択し、ターゲット値を設定します。 Amazon ECS サービスの Auto Scaling は、 CloudWatch スケーリングをトリガーするアラーム ポリシーに基づいて計算し、メトリックとターゲットに基づいてスケーリング調整を計算します。 値。スケーリングポリシーは、 指定したターゲット値、またはその近くにあるメトリック。また、 ターゲット追跡スケーリングポリシーも、ターゲット値に近いメトリックを 変動する負荷パターンによるメトリックの変動は、 サービスで実行中のタスク数の変動。

Considerations

以下の考慮事項に留意してください。

  • ターゲットトラッキングスケーリングポリシーは、スケーリングを実行する必要があることを前提としています。 指定したメトリックがターゲット値を超える場合は、out。を使用することはできません ターゲットトラッキングスケーリングポリシーは、指定したメトリックが が目標値を下回っています。

  • ターゲット トラッキング スケーリング ポリシーは、 指定したメトリックに不十分なデータがあります。スケールは実行されません 不十分なデータを低と解釈しないため 利用。

  • 目標値と実際のメトリック データの間にギャップがある場合があります。 点。なぜなら、 サービスの Auto Scaling 常に 容量をどの程度追加または 削除します。これにより、容量不足の追加や削除を防ぐことができます。 容量が多すぎます。

  • アプリケーションの可用性を確保するために、サービスは できるだけ速くメトリックに比例するが、スケールは増加 徐々に。

  • の複数のターゲット追跡スケーリングポリシーを Amazon ECS サービス。ただし、それぞれ異なるメトリックを使用するものとします。は の意図 サービスの Auto Scaling 常に可用性を優先し、 動作は、ターゲット追跡ポリシーが スケールアウトまたはスケールインの準備ができています。サービスの規模が拡大されるのは、 ターゲット追跡ポリシーはスケールアウトの準備ができていますが、 対象トラッキングポリシーのすべて(スケールイン部分を含む) 有効)のスケールインの準備ができています。

  • 編集や削除はしないでください CloudWatch アラーム サービスの Auto Scaling は、 ターゲットトラッキングスケーリングポリシー。 サービスの Auto Scaling アラームを削除します。 スケーリングポリシーを削除すると自動的に変更されます。

チュートリアル: によるサービス自動スケーリング ターゲット追跡

次の手順は、 Amazon ECS クラスタとサービス ターゲットトラッキングを使用して、需要に応じて自動的にスケールアウト(およびイン)します。

このチュートリアルでは、 Amazon ECS クラスタと サービスの背後に Elastic Load Balancing ロードバランサー。次にターゲットを構成します。 トラッキングスケーリングポリシーは、 サービスのCPU使用率( ECS、ClusterName、ServiceName カテゴリイン CloudWatch)。

サービスの平均CPU使用率が75%を超える(つまり、 サービス用に予約されている CPU の 75% 以上が使用されています)、 スケールアウトアラームトリガ サービスの Auto Scaling サービスに別のタスクを追加するには、 負荷の増加に協力します。逆に、平均CPU利用率が のサービスがターゲット使用率を下回っています。 スケールインアラームにより、サービスの目的のカウントが減少し、 クラスタ・リソースを他のタスクやサービス用に解放します。

Prerequisites

このチュートリアルでは、管理者の資格情報を使用しており、 皆さんは Amazon EC2 キー・ペアーを現在の領域内で指定します。これらの リソースを作成したり、不明な場合は、 Amazon ECS でのセットアップ.

ステップ1: クラスタと サービス

まず、 Amazon ECS 最初の実行ウィザード。は 最初の実行ウィザードでは、必要な IAM 役割 チュートリアル、 Auto Scaling コンテナインスタンスのグループ、および ロードバランサーの背後にあります。ウィザードを使用すると、クリーンアップ プロセスもはるかに容易になります。 というのも、 AWS CloudFormation 1ステップでスタックします。

このチュートリアルでは、 service-autoscaling および sample-webapp.

クラスタとサービスを作成するには

  1. を開きます。 Amazon ECS コンソールの初回実行ウィザード https://console.aws.amazon.com/ecs/home#/firstRun.

  2. ナビゲーションバーから、 米国東部(N. バージニア) 地域。

  3. オン ステップ1: コンテナとタスク、用 コンテナ定義、選択 サンプル-アプリ.

  4. 対象: タスク定義、デフォルトはすべてのままにします オプションを選択し、 次へ.

  5. オン ステップ2: サービス、用 ロードバランサー 種類、選択 アプリケーションのロード バランサー次へ.

    重要

    Application Load Balancer コストが発生する場合があります。 AWS リソースです。詳細については、以下を参照してください。 Elastic Load Balancing 価格設定.

  6. オン ステップ3: クラスタ、用 クラスタ 名前、入力 service-autoscaling 選択して 次へ.

  7. 選択内容を確認し、 作成.

    _に移動します。 起動ステータス ページ は、開始のステータスとプロセスの各ステップを示します。 (クラスタ・リソースが 作成および入力されます)。

  8. クラスタとサービスが作成されたら、 表示 サービス.

ステップ2: 設定 サービスの Auto Scaling

クラスタを起動し、そのクラスタにサービスを作成したので、 ロードバランサーの背後にある サービスの Auto Scaling 創造し、 ターゲットトラッキングスケーリングポリシーです。

基本を構成するには サービスの Auto Scaling パラメータ

  1. サービス: sample-app-service ページ、 サービス構成は以下の図のようになりますが、 タスク定義の改訂とロードバランサー名は、 違います。選択 更新 更新するには サービス。

    
                                構成オプションの選択
  2. サービスの更新 ページ、選択 次へ ステップ 先に進むまで ステップ3: 自動スケーリングの設定 (オプション).

  3. 対象: サービスの Auto Scaling、選択 設定 サービス自動スケーリングで、ご希望のサービスを調整 カウント.

  4. 対象: 最小タスク数、入力 1 のタスク数の下限 サービスの Auto Scaling 使用する必要があります。あなたの サービスの希望数は、この値以下では自動調整されません。 金額。

  5. 対象: 希望するタスク数、このフィールドは 前に入力した値が自動入力されます。この値は こので指定されているタスクの最小数と最大数の間にある ページ。この値は 1.

  6. 対象: タスクの最大数、入力 2 のタスク数の上限 サービスの Auto Scaling 使用する必要があります。あなたの サービスの希望数は、この値以上では自動的に調整されません。 金額。

  7. 対象: サービス自動スケーリングのIAM役割ecsAutoscaleRole。 この役割が存在しない場合は、 新しい役割の作成 コンソールで作成して あなたのために。

サービスのターゲット トラッキング拡張ポリシーを構成するには

  1. 選択 スケーリングポリシーの追加 設定するには スケーリングポリシー。

  2. ポリシーの追加 ページで、以下を更新します。 フィールド:

    1. 対象: スケーリングポリシータイプ、選択 ターゲット追跡.

    2. 対象: ポリシー名、入力 TargetTrackingPolicy.

    3. 対象: ECSサービス指標、選択 ECSサービス平均CPU使用率.

    4. 対象: 目標値、入力 75.

    5. 対象: スケールアウト冷却期間、入力 60 秒。スケールアウト・アクティビティは、 サービスタスクの数。スケールアウトクールダウンは 期間が有効であり、 クールダウンを開始した以前のスケールアウト・アクティビティは、 次のスケールの望ましい容量の一部として計算される 出てこない。意図は継続的に(ただし、過度にはしない) スケールアウトします。

    6. 対象: スケールイン冷却期間、入力 60 秒。スケールイン活動は、 サービスタスクの数。スケールインクールダウン期間は 期限切れになるまで、以降のスケールイン要求をブロックするために使用されます。目的は、保守的にスケールインし、 アプリケーションの可用性。ただし、別のアラームが スケールイン後のクールダウン期間中のスケールアウト活動、 サービスの Auto Scaling すぐに拡張可能なターゲットを縮小できます。

    7. 選択 保存.

  3. 選択 次のステップ.

  4. 選択内容をすべて確認してから、 更新 サービス.

  5. サービスステータスの更新が完了したら、 表示 サービス.

ステップ3: スケーリングアクティビティのトリガー

サービスの構成後 サービスの Auto Scalingスケーリングをトリガーできます。 サービスのCPU使用率を ALARM 状態。このチュートリアルの例は、実行中のWebアプリケーションであるため ロードバランサーの背後にあり、サービスに数千のHTTPリクエストを送信できます。 (ApacheBench ユーティリティを使用) を使用して、サービス CPU 使用率を しきい値。このスパイクはアラームをトリガし、次にアラームがトリガされます。 アクティビティをスケーリングして、1つのタスクをサービスに追加します。

ApacheBench ユーティリティが要求を終了した後、サービス CPU 使用率が閾値の75%未満に低下し、スケール・イン・アクティビティがトリガーされる サービスの目的のカウントを1に戻す。

サービスのスケーリングアクティビティをトリガーするには

  1. コンソールのサービスの[メインビュー]ページで、ロードを選択します。 バランサー名をクリックして、 Amazon EC2 コンソール。必要なのは ロード・バランサーのDNS名です。 EC2Contai-EcsElast-SMAKV74U23PH-96652279.us-east-1.elb.amazonaws.com.

  2. ApacheBench(ab) 数千もの電力を ロードバランサーへのHTTP要求の短い時間。

    注記

    このコマンドは macOS にデフォルトでインストールされ、 多くの Linux ディストリビューションでも利用できます。たとえば、 ab に Amazon Linux 次のコマンドを使用します。

    $ sudo yum install -y httpd24-tools

    ロードバランサーのDNSを置き換えて、次のコマンドを実行します。 名前。

    $ ab -n 100000 -c 1000 http://EC2Contai-EcsElast-SMAKV74U23PH-96652279.us-east-1.elb.amazonaws.com/
  3. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

  4. 左側のナビゲーションペインで、 アラーム.

  5. ab をトリガーするHTTPリクエスト のスケールアウトアラーム CloudWatch コンソール。皆さんの Amazon ECS サービス 1つのタスクをサービスの目的の数に追加します。

  6. すぐ後に ab HTTPリクエストが完了しました (1~2分)、アラームのスケールがトリガーされ、 スケールイン・ポリシーにより、サービスに必要なカウントが1に減少します。

ステップ4: 次のステップ

インフラストラクチャの基本を削除する場合は、次の手順に進みます。 このチュートリアル用に作成したばかりです。そうでない場合は、このインフラストラクチャを使用できます。 以下のうち1つ以上を試してみてください。

  • これらのスケーリングアクティビティを表示するには、 Amazon ECS コンソールで、 イベント タブに表示されます。いつ スケーリングイベントが発生すると、ここに情報メッセージが表示されます。対象: 例:

    Message: Successfully set desired count to 1. Change successfully fulfilled by ecs. Cause: monitor alarm TargetTracking-service/service-autoscaling/sample-webapp-AlarmLow-fcd80aef-5161-4890-aeb4-35dde11ff42c in state ALARM triggered policy TargetTrackingPolicy
  • もし、 CloudWatch Container Insightsが設定され、 Amazon ECS メトリックを使用して、メトリック データを CloudWatch 自動ダッシュボード。対象: 詳細情報については、 紹介 Amazon CloudWatch のコンテナインサイト Amazon ECSAWS Computeブログ.

  • 設定方法を学ぶ CloudWatch コンテナに関する洞察。追加料金が適用されます。詳細については、以下を参照してください。 Amazon ECS CloudWatch Container Insights および クラスター設定の更新.

ステップ5: クリーンアップ

このチュートリアルを完了したら、クラスタを保持し、 Auto Scaling グループ、ロードバランサー、ターゲットトラッキングスケーリングポリシー、および CloudWatch アラーム。ただし、これらのリソースを積極的に利用していない場合は、 不要な料金が発生しないように、アカウントを整理してください。

クラスタを削除するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs) を開きます。

  2. 左側のナビゲーションペインで、 クラスタ.

  3. クラスタ ページを選択し、 サービス - オートスケーリング クラスタ。

  4. 選択 クラスタの削除, 削除. には数分かかることがあります。 クラスタ AWS CloudFormation スタックして清掃を終了します。