Amazon ECS クラスターの自動スケーリング - Amazon Elastic Container Service

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

Amazon ECS クラスターの自動スケーリング

Amazon ECS では、クラスターに登録された Amazon EC2 インスタンスのスケーリングを管理できます。これは、Amazon ECS クラスターの自動スケーリングと呼ばれます。また、これはマネージドスケーリングが有効になっている Amazon ECS Auto Scaling グループのキャパシティープロバイダーを使用して行われます。マネージドスケーリングが有効な状態で Auto Scaling グループのキャパシティープロバイダーを使用すると、Auto Scaling グループのインスタンスの使用率のターゲットのパーセンテージ (targetCapacity) を設定します。Amazon ECS は、Auto Scaling グループにアタッチする 2 つのカスタム CloudWatch メトリクスとターゲット追跡スケーリングポリシーを作成します。Amazon ECS は、このキャパシティープロバイダーからタスクが使用するリソースの利用に基づいて、Auto Scaling グループのスケールインアクションとスケールアウトアクションを管理します。Auto Scaling グループのキャパシティープロバイダーについての詳細は、「Amazon EC2 Auto Scaling グループキャパシティープロバイダー」を参照してください。

注記

Amazon ECS クラスターの自動スケーリングは、Auto Scaling グループのキャパシティプロバイダーを使用する場合にのみサポートされます。でホストされている Amazon ECS ワークロードについては AWS Fargate、「」を参照してくださいAWS Fargate キャパシティープロバイダー

Amazon ECS クラスターの自動スケーリングのために使用されるワークフローを次に示します。詳細については、「クラスターの自動スケーリングをオンにする」を参照してください。

  1. Auto Scaling グループを作成します。

  2. 作成した Auto Scaling グループを使用するキャパシティプロバイダーを作成します。

  3. キャパシティプロバイダーのマネージドスケーリングを有効にします。

  4. キャパシティプロバイダーをクラスターに関連付けます。

  5. キャパシティプロバイダーを使用するキャパシティプロバイダー戦略でタスクを実行するか、またはサービスを作成します。

    キャパシティープロバイダー戦略は、クラスターの複数のキャパシティープロバイダー間にタスクを分散する方法を決定します。スタンドアロンタスクを実行するか、サービスを作成するときは、クラスターのデフォルトのキャパシティプロバイダー戦略か、クラスターのデフォルト戦略をオーバーライドするキャパシティプロバイダー戦略のいずれかを使用します。

  6. (オプション) クラスターのデフォルトのキャパシティプロバイダー戦略を作成します。

2022 年 5 月 27 日以降、Amazon ECS は新しく作成されたキャパシティープロバイダーの AWS Auto Scaling スケーリングプランを作成しなくなりました。代わりに、Amazon ECS が Auto Scaling グループにアタッチされたターゲットの追跡スケーリングポリシーを使用して、ターゲット容量の仕様に基づき動的スケーリングが実行されます。詳細については、「Amazon EC2 Auto Scaling グループキャパシティープロバイダー」を参照してください。

この新しいリリースでは、新しいキャパシティプロバイダーを作成する際に使用するスケーリングポリシーを持つ既存の Auto Scaling グループを使用できます。ECS マネージドスケーリングポリシーまたはプランのリソースを変更することはお勧めしません。ただし、新しいキャパシティープロバイダーリソースを作成するときに、 AWS Auto Scaling スケーリングプランに変更を加えたカスタマイズされたツールがある場合は、次のいずれかの操作を行います。

  • (推奨) キャパシティープロバイダーを更新して、Amazon ECS マネージドスケーリング設定を変更する。詳細については、「」を参照してくださいUpdateCapacityProvider

  • Auto Scaling グループに関連付けられているスケーリングポリシーを更新して、使用するターゲットの追跡設定を変更する。詳細については、「」を参照してくださいPutScalingPolicy

考慮事項

クラスターの自動スケーリングを使用するときは、次の点を考慮してください。

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

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

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

    重要

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

  • クラスターの自動スケーリングでは、グループの MinimumCapacityまたは MaximumCapacity は変更されません。グループをスケールアウトするには、 の値が 0 より大きくMaximumCapacityなければなりません。

  • 自動スケーリング(マネージドスケーリング) がオンになっている場合、キャパシティプロバイダーは、同時に 1 つのクラスターにしか接続できません。キャパシティープロバイダーがマネージドスケーリングをオフにしている場合は、複数のクラスターに関連付けることができます。

  • マネージドスケーリングがオフの場合、キャパシティプロバイダーはスケールインまたはスケールアウトを実行しません。キャパシティプロバイダー戦略を使用して、キャパシティプロバイダー間でタスクのバランスを取ることができます。

  • このbinpack戦略は、容量に関して最も効率的な戦略です。

  • ターゲット容量が 100% 未満の場合、配置戦略はbinpack、戦略よりも順序の高いspread戦略を使用しないで、 binpack 戦略を使用する必要があります。これにより、各タスクに専用インスタンスがあるか、制限に達するまで、キャパシティープロバイダーはスケールアウトできなくなります。

コンソールを使用する際には、以下の点を考慮してください。

  • Amazon ECS マネージドスケーリング機能はデフォルトでオンになっています。詳細については、「マネージドスケールアウト動作」を参照してください。

  • マネージドターミネーション保護はデフォルトでオフになっています。詳細については、次のセクション「マネージド終了保護」をご覧ください。

  • 自動スケーリングインスタンスのスケールイン保護はデフォルトでオフになっています。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「インスタンスのスケールイン保護の使用」を参照してください。

  • キャパシティプロバイダーで使用する Auto Scaling グループは、インスタンスの重み付け設定を使用することはできません。Amazon ECS キャパシティプロバイダーと同時に使用すると、インスタンスの重み付けはサポートされません。