ECS サービスで Fargate タスクを複数アベイラビリティーゾーンに分散する方法を教えてください

ECS サービスで Fargate タスクを複数アベイラビリティーゾーンに分散する方法を教えてください

2026.06.09

困っていた内容

Fargate と ECS サービスでシステムを構築する予定です。
高可用性のため、マルチアベイラビリティゾーン間でタスクが稼働するように設定したいです。
使用するアベイラビリティーゾーンを設定する方法を教えてください。

どう対応すればいいの?

ECS サービスのネットワーク設定で、異なるアベイラビリティーゾーンにある VPC サブネットを指定してください。

ECS Fargate Tasks Multi AZ Distribution

VPC のサブネットは、単一のアベイラビリティーゾーンに存在します。

ECS サービスでは、サブネットを通じてタスクが起動するアベイラビリティーゾーンが選択されます。選択されたアベイラビリティーゾーンの範囲内で、ECS サービスはタスクを分散するよう最善を尽くします。

そのため、ネットワーク設定で異なるアベイラビリティーゾーンのサブネットを指定すると、ECS サービスによって自動的にアベイラビリティーゾーン間でタスクが分散することが期待されます。

なお、ベストエフォートの挙動となり、状況に応じて偏りが発生する場合がありますが、「アベイラビリティーゾーンの再調整」機能を有効にしている場合、自動的に再配分が行われます。

また、アベイラビリティーゾーンでタスクの配置・実行ができないような障害が発生している場合、自動的に正常なアベイラビリティーゾーンでタスクが実行されることが期待されます。

参考資料

タスクの配置戦略および制約事項は、Fargate を使用しているタスクをサポートしていません。Fargate は、アクセス可能なアベイラビリティーゾーンにタスクを分散するよう最善を尽くします。キャパシティープロバイダーに Fargate と Fargate Spot の両方が含まれている場合、スプレッドの動作はキャパシティープロバイダーごとに異なります。

Amazon ECS と AWS Fargate を併用すると、タスクをアベイラビリティーゾーン全体に分散させることがさらに簡単になります。サービスを作成するとき、または RunTask リクエストにおいて、タスクのネットワーク設定で複数の Amazon VPC サブネットを指定する必要があります。Amazon VPC の各サブネットはそれぞれ単一のアベイラビリティーゾーンにあります。Amazon ECS は、タスクのプロビジョニング中に設定されたサブネットを使用してタスクを起動するアベイラビリティーゾーンを決定し、すべてのワークロードがこれらのサブネットに分散されるようにします。AWS Fargate は、常にサブネットを介してアベイラビリティーゾーン全体にタスクを分散します。この分散は、サービスをデプロイする場合はサービス名、RunTask を介して単一タスクを起動する場合はタスク定義のファミリー名に基づいています。

アベイラビリティーゾーンの再調整により、Amazon ECS は各サービスのアベイラビリティーゾーン間のタスクの分散を継続的にモニタリングします。Amazon ECS は、不均等なタスク分散を検出すると、アベイラビリティーゾーン間でワークロードを再調整するアクションを自動的に実行します。これには、タスクが最も少ないアベイラビリティーゾーンで新しいタスクを起動し、オーバーロードされたアベイラビリティーゾーンでタスクを終了することが含まれます。

この再分散により、単一のアベイラビリティーゾーンが障害点になることがなくなり、コンテナ化されたアプリケーションの全体的な可用性を維持できます。自動再調整プロセスにより、手動による介入が不要になり、イベント後の復旧までの時間が短縮されます。

When you configure your Amazon ECS services to span multiple AZs, Amazon ECS automatically routes your new task launch requests away from an impaired AZ, without any zonal shift configuration. This intelligent routing of task launches increases the likelihood of successful task launches and helps maintain your workload’s availability.

Amazon ECS service rebalancing for equal distribution
Imagine a scenario where your Amazon ECS service spans three AZs: use1-az1, use1-az2, and use1-az3, and the use1-az1 zone is experiencing an outage. In these situations, Amazon ECS prioritizes successfully deploying your application and helps your service get to the desired number of running tasks to maintain the best availability posture for your service. If there is an active impairment in use1-az1, then Amazon ECS automatically directs incoming task launch requests to the healthier AZs: use1-az2 and use1-az3 .


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事