外部起動タイプ用の Amazon ECS クラスター
Amazon ECS Anywhere は、オンプレミスサーバーや仮想マシン (VM) などの外部インスタンスを Amazon ECS クラスターに登録するためのサポートを提供します。外部インスタンスは、アウトバウンドトラフィックを生成したり、データを処理したりするアプリケーションを実行するために最適化されています。アプリケーションがインバウンドトラフィックを必要とする場合、Elastic Load Balancing のサポートがないため、これらのワークロードの実行効率が低下します。Amazon ECS は、新しいEXTERNAL
起動タイプで、サービスを作成したり、外部インスタンスでタスクを実行したりできます。
サポートされるオペレーティングシステムとシステムアーキテクチャ
以下は、サポートされるオペレーティングシステムとシステムアーキテクチャのリストです。
-
Amazon Linux 2
-
Amazon Linux 2023
-
CentOS 7
-
CentOS Stream 9
-
RHEL 7、RHEL 8 - DockerとRHELのオープンパッケージリポジトリはどっちも、RHELへのDockerのネイティブなインストールに対応していません。このドキュメントで説明されているインストールスクリプトを実行する前に、Docker がインストールされていることを確認する必要があります。
-
Fedora 32、Fedora 33、Fedora 40
-
openSUSE タンブルウィード
-
Ubuntu 18、Ubuntu 20、Ubuntu 22、Ubuntu 24
-
Debian 10
重要
Debian 9 の長期 Support (LTS) は 2022 年 6 月 30 日にサポート期間が終了となり、Amazon ECS Anywhere によるサポート対象外となります。
-
Debian 11
-
Debian 12
-
SUSE Enterprise Server 15
-
x86_64
およびARM64
CPU アーキテクチャがサポートされています。 -
次の Windows オペレーティングシステムのバージョンがサポートされています。
-
Windows Server 2022
-
Windows Server 2019
-
Windows Server 2016
-
Windows Server 20H2
-
考慮事項
外部インスタンスの使用を開始する前に、以下の考慮事項に注意してください。
-
外部インスタンスは、一度に 1 つずつクラスターに登録できます。外部インスタンスを別のクラスターに登録する方法については、「Amazon ECS 外部インスタンスの登録を解除する」を参照してください。
-
外部インスタンスには、AWS API との通信を許可する IAM ロールが必要です。詳細については、「Amazon ECS Anywhere IAM ロール」を参照してください。
-
外部インスタンスには、事前設定されたインスタンス認証情報チェーンをローカルに定義しないでください。これは、登録スクリプトに干渉するためです。
-
コンテナログを CloudWatch Logs に送信するには、タスク定義でタスク実行 IAM ロールを作成し、指定してください。
-
外部インスタンスがクラスターに登録されると、
ecs.capability.external
属性がインスタンスに関連付けられています。この属性は、インスタンスを外部インスタンスとして識別します。カスタム属性を外部インスタンスに追加して、タスクの配置制約として使用できます。詳細については、「カスタム属性」を参照してください。 -
外部インスタンスにリソースタグを追加できます。詳細については、「外部コンテナインスタンス」を参照してください。
-
ECS Exec は、外部インスタンスでサポートされています。詳細については、「ECS Exec を使用して Amazon ECS コンテナをモニタリングする」を参照してください。
-
外部インスタンスとのネットワーキングに固有の追加の考慮事項を次に示します。詳細については、「ネットワーク 」を参照してください。
-
サービスの負荷分散はサポートされていません。
-
サービス検出はサポートされていません。
-
外部インスタンスで実行されるタスクは、
bridge
,host
, またはnone
ネットワークモードを使用する必要があります。awsvpc
ネットワークモードはサポートされていません。 -
各 AWS リージョンに Amazon ECS サービスドメインがあります。これらのサービスドメインは、外部インスタンスへのトラフィックの送信を許可する必要があります。
-
外部インスタンスにインストールされた SSM Agent は、ハードウェアフィンガープリントを使用して 30 分ごとにローテーションされる IAM 認証情報を保持します。外部インスタンスがAWSに設定されている場合、SSM Agent は接続の再確立後にクレデンシャルを自動的に更新します。詳細については、AWS Systems Managerユーザーガイドの「ハードウェアフィンガープリントを使用したオンプレミスサーバーと仮想マシンの検証」を参照してください。
-
-
UpdateContainerAgent
API はサポートされません。外部インスタンスで SSM Agent または Amazon ECS エージェントを更新する方法については、「外部インスタンス上の AWS Systems Manager エージェントと Amazon ECS コンテナエージェントを更新する」を参照してください。 -
Amazon ECS キャパシティープロバイダーはサポートされていません。外部インスタンスでサービスを作成したり、スタンドアロンタスクを実行するには、
EXTERNAL
起動タイプを使用するタスクにのみ使用されます。 -
SELinux はサポートされません。
-
Amazon EFS ボリュームの使用、または
EFSVolumeConfiguration
はサポートされていません。 -
App Mesh との統合はサポートされていません。
-
コンソールを使用して外部インスタンスタスク定義を作成する場合は、コンソール JSON エディタでタスク定義を作成する必要があります。
-
Windows で ECS Anywhere を実行する場合は、オンプレミスのインフラストラクチャで独自の Windows ライセンスを使用する必要があります。
-
Amazon ECS に最適化されていない AMI を使用する場合は、外部コンテナインスタンスで次のコマンドを実行して、タスクに IAM ロールを使用するルールを設定します。詳細については、「外部インスタンスの追加設定」を参照してください。
$ sysctl -w net.ipv4.conf.all.route_localnet=1 $ iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679 $ iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679
ネットワーク
Amazon ECS 外部インスタンスは、アウトバウンドトラフィックを生成したり、データを処理したりするアプリケーションを実行するために最適化されています。アプリケーションがウェブサービスなどのインバウンドトラフィックを必要とする場合、Elastic Load Balancing のサポートがないため、これらのワークロードをロードバランサーの背後に配置するためのサポートがないため、これらのワークロードの実行効率が低下します。
外部インスタンスとのネットワークに固有の追加の考慮事項を次に示します。
-
サービスの負荷分散はサポートされていません。
-
サービス検出はサポートされていません。
-
外部インスタンスで実行される Linux タスクは、
bridge
、host
、またはnone
ネットワークモードを使用する必要があります。awsvpc
ネットワークモードはサポートされていません。各ネットワークモードの詳細については、のAmazon ECS ベストプラクティスガイドの「ネットワークモードの選択」を参照してください。
-
外部インスタンスで実行される Windows タスクは、
default
ネットワークモードを使用する必要があります。 -
各リージョンには Amazon ECS サービスドメインがあり、外部インスタンスへのトラフィックの送信を許可する必要があります。
-
外部インスタンスにインストールされた SSM Agent は、ハードウェアフィンガープリントを使用して 30 分ごとにローテーションされる IAM 認証情報を保持します。外部インスタンスがAWSに設定されている場合、SSM Agent は接続の再確立後にクレデンシャルを自動的に更新します。詳細については、AWS Systems Managerユーザーガイドの「ハードウェアフィンガープリントを使用したオンプレミスサーバーと仮想マシンの検証」を参照してください。
次のドメインは、Amazon ECS サービスと外部インスタンスにインストールされている Amazon ECS エージェント間の通信に使用されます。トラフィックが許可されていることと、DNS 解決が機能していることを確認します。各エンドポイントでは、リージョン
は、米国東部 (オハイオ) リージョンの us-east-2
のように、Amazon ECS でサポートされている AWS リージョンのリージョン識別子を表します。使用するすべてのリージョンのエンドポイントを許可する必要があります。ecs-a
およびecs-t
エンドポイントを使用する場合は、アスタリスク (例えば、ecs-a-*
) を含める必要があります。
-
ecs-a-*.
— このエンドポイントは、タスクを管理するときに使用されます。region
.amazonaws.com -
ecs-t-*.
— このエンドポイントは、タスクとコンテナのメトリクスを管理するために使用されます。region
.amazonaws.com -
ecs.
— これは、Amazon ECS のサービスエンドポイントです。region
.amazonaws.com -
ssm.
— これは、AWS Systems Manager のサービスエンドポイントです。region
.amazonaws.com -
ec2messages.
— これは、AWS Systems Manager がクラウド内の Systems Manager エージェントと Systems Manager サービスの間の通信に使用するサービスエンドポイントです。region
.amazonaws.com -
ssmmessages.
— これは、クラウド内の Session Manager サービスでセッションチャネルを作成および削除するために必要なサービスエンドポイントです。region
.amazonaws.com -
タスクが他のタスクとの通信を必要とする場合AWSサービスを使用する場合は、これらのサービスエンドポイントが許可されていることを確認します。アプリケーション例としては、Amazon ECR を使用してコンテナイメージを取得したり、CloudWatch Logs に CloudWatch を使用したりすることが挙げられます。詳細については、AWS 全般のリファレンスガイドの「サービスエンドポイント」を参照してください。
ECS Anywhere を使用した Amazon FSx for Windows File Server
Amazon ECS 外部インスタンスで Amazon FSx for Windows File Server を使用するには、オンプレミスのデータセンターと AWS クラウド の間に接続を確立する必要があります。ネットワークを VPC に接続するオプションについては、「Amazon Virtual Private Cloud 接続オプション」を参照してください。
ECS Anywhere を使用した gMSA
ECS Anywhere は、次のユースケースをサポートしています。
-
アクティブディレクトリは、AWS クラウド にあります。この構成では、AWS クラウド 接続を使用してオンプレミスネットワークと AWS Direct Connect の間の接続を確立します。接続を作成する方法については、「Amazon 仮想プライベートクラウド接続オプション」を参照してください。AWS クラウド にアクティブディレクトリを作成します。AWS Directory Service の使用開始方法の詳細については、「AWS Directory Service 管理ガイド」の「AWS Directory Service の設定」を参照してください。その後、AWS Direct Connect 接続を使用して、外部インスタンスをドメインに参加させることができます。Amazon ECS での gMSA の操作方法については、「Amazon ECS の EC2 Windows コンテナで gMSA を使用する方法について説明します。」を参照してください。
-
アクティブディレクトリは、オンプレミスデータセンターで管理されています。-この設定では、外部インスタンスをオンプレミスのアクティブディレクトリに参加させます。その後、Amazon ECS タスクを実行する際に、ローカルで使用可能な認証情報を使用します。