Amazon ECS クラスターの Auto Scaling - Amazon Elastic Container Service

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

Amazon ECS クラスターの Auto Scaling

Amazon ECS クラスターの Auto Scaling を使用すると、クラスター内の Amazon EC2 インスタンスをスケールする方法をより詳細に制御できます。Auto Scaling グループキャパシティープロバイダーを作成するときにマネージドスケーリングを有効にすると、Amazon ECS は、キャパシティープロバイダーの作成時に使用される Auto Scaling グループのスケールインおよびスケールアウトアクションを管理します。代わりに、Amazon ECS は指定したターゲットキャパシティーの値に基づいて、ターゲット追跡スケーリングポリシーを使用して AWS Auto Scaling スケーリングプランを作成します。次に、Amazon ECS は、このスケーリングプランを Auto Scaling グループに関連付けます。

マネージドスケーリングが有効になっている Auto Scaling グループキャパシティープロバイダーごとに、プレフィックス AWS/ECS/ManagedScaling が付いた Amazon ECS マネージド CloudWatch メトリクス が 2 つの CloudWatch アラームとともに作成されます。CloudWatch のメトリクスとアラームは、Auto Scaling グループ内の Amazon EC2 インスタンスのキャパシティーをモニタリングするために使用され、必要に応じて Auto Scaling グループのスケールインおよびスケールアウトをトリガーします。

各クラスターには、1 つ以上の Auto Scaling グループキャパシティープロバイダーがあり、さらにオプションとして、デフォルトのキャパシティープロバイダー戦略があります。キャパシティープロバイダーは、タスクに使用するインフラストラクチャを決定し、キャパシティープロバイダー戦略によってタスクがキャパシティープロバイダーに分散される方法を決定します。タスクを実行するか、サービスを作成するときは、クラスターのデフォルトのキャパシティープロバイダー戦略を使用するか、クラスターのデフォルト戦略をオーバーライドするキャパシティープロバイダー戦略を指定できます。キャパシティープロバイダーの詳細については、「Amazon ECS キャパシティープロバイダー」を参照してください。

クラスターの Auto Scaling に関する考慮事項

クラスターの Auto Scaling を使用する場合は、次の点を考慮する必要があります。

  • Amazon ECS は、ユーザーに代わって AWS Auto Scaling を呼び出すために必要なアクセス許可として AWSServiceRoleForECS サービスにリンクされた IAM ロールを使用します。Amazon ECS サービスにリンクされた IAM ロールの使用と作成の詳細については、「Amazon ECS 用のサービスにリンクされたロール」を参照してください。

  • クラスターの自動スケーリングは、アジアパシフィック (大阪: ローカル) リージョンでは使用できません。

  • Auto Scaling グループでキャパシティープロバイダーを使用する場合、キャパシティープロバイダーを作成する IAM ユーザーには autoscaling:CreateOrUpdateTags アクセス許可が必要です。これは、Auto Scaling グループが、キャパシティープロバイダーに関連付けるときに、Amazon ECS がグループにタグを追加するためです。

    重要

    ツールの使用により AmazonECSManaged タグが Auto Scaling グループから削除されないようにしてください。このタグが削除されると、Amazon ECS はクラスターをスケールするときにタグを管理できません。

  • マネージドスケーリングは、Auto Scaling グループが同じインスタンスタイプまたは類似のインスタンスタイプを使用している場合に最適です。詳細については、「マネージドスケールアウト動作」を参照してください。

  • オンデマンドインスタンスと複数のインスタンスタイプを持つ Auto Scaling グループを使用する場合は、大きいインスタンスタイプを優先順位リストで上位に配置し、ウェイトを指定しないでください。現時点では、ウェイトの指定はサポートされていません。詳細については、AWS Auto Scaling ユーザーガイド の「Auto Scaling複数のインスタンスタイプを持つグループ」を参照してください。

  • サービスを作成するときは、アベイラビリティーゾーンにまたがるタスク配置戦略、あるいは CPU またはメモリに基づくバイナリパック戦略を指定することが最も効果的になります。そのストラテジータイプではスケーリングが遅くなるため、インスタンススプレッド戦略を使用しないでください。

  • キャパシティープロバイダーに関連付けられている Auto Scaling グループが希望するキャパシティーは、Amazon ECS が管理しているもの以外のスケーリングポリシーを変更または管理しないでください。

マネージドスケールアウト動作

マネージドスケーリングが有効な Auto Scaling グループキャパシティープロバイダーを使用する場合、Amazon ECS はクラスターに追加する最適なインスタンス数の下限を見積もり、この値を使用してリクエストするインスタンス数を決定します。以下では、スケールアウト動作について詳しく説明します。

  1. すべてのプロビジョニングタスクをグループ化し、各グループが同じリソース要件を持つようにします。

  2. 複数のインスタンスタイプを使用する場合、Auto Scaling グループ内のインスタンスは vCPU、メモリ、Elastic Network Interface (ENI)、ポート、GPU などの属性によってソートされ、各属性の最大インスタンスタイプが選択されます。

  3. タスクグループごとに、未配置タスクの実行に必要なインスタンスの数が計算されます。この計算では、タスクの vCPU、メモリ、Elastic Network Interface (ENI)、ポートや GPU 要件、および Amazon EC2 インスタンスのリソース可用性を考慮した binpack 戦略を用います。この値は、計算された最大インスタンス数として扱われます。

    注記

    この計算には、定義されているタスク配置制約がすべて考慮されますが、distinctInstance タスク配置制約のみを使うことをお勧めします。

  4. Amazon ECS は、計算された最大インスタンス数が最小スケーリングステップサイズより小さい場合は minimumScalingStepSize を、あるいは maximumScalingStepSize または計算された最大インスタンスカウント値のいずれか小さい方を起動します。

このロジックの仕組みの詳細については、「Amazon ECS のクラスター自動スケーリングに関する詳細な説明」を参照してください。