外部インスタンス(Amazon ECS Anywhere) - Amazon Elastic Container Service

外部インスタンス(Amazon ECS Anywhere)

Amazon ECS Anywhere は、オンプレミスサーバーや仮想マシン (VM) などの外部インスタンスを Amazon ECS クラスターに登録するためのサポートを提供します。外部インスタンスは、アウトバウンドトラフィックを生成したり、データを処理したりするアプリケーションを実行するために最適化されています。アプリケーションがインバウンドトラフィックを必要とする場合、Elastic Load Balancing のサポートがないため、これらのワークロードの実行効率が低下します。Amazon ECS は、新しいEXTERNAL起動タイプで、サービスを作成したり、外部インスタンスでタスクを実行したりできます。

以下に、Amazon ECS Anywhere の高レベルのシステムアーキテクチャの概要を示します。


            Amazon ECS Anywhere のアーキテクチャを示す図

サポートされるオペレーティングシステムとシステムアーキテクチャ

以下は、サポートされるオペレーティングシステムとシステムアーキテクチャのリストです。

  • Amazon Linux 2

  • CentOS 7

    重要

    CentOS 8 は 2021 年 12 月 31 日にサポート期間が終了 (EOL) となり、Amazon ECS Anywhere によるサポート対象外となります。

  • CentOS Stream 8

  • RHEL 7、RHEL 8 - DockerとRHELのオープンパッケージリポジトリはどっちも、RHELへのDockerのネイティブなインストールに対応していません。このドキュメントで説明されているインストールスクリプトを実行する前に、Docker がインストールされていることを確認する必要があります。

  • Fedora 32、Fedora 33 — デフォルトでcgroups.v2を使用する Fedora 32 および Fedora 33 はAmazon ECS ではサポートされていません。その結果、サーバーのデフォルトの grub 設定を変更し、サーバーを再起動する必要があります。手順については、Docker ドキュメントのcgroup バージョンの変更を参照してください。

  • openSUSE タンブルウィード

  • Ubuntu 18, Ubuntu 20

  • Debian 9、Debian 10

  • SUSE Enterprise Server 15

  • x86_64およびARM64CPU アーキテクチャがサポートされています。

  • 次の Windows オペレーティングシステムのバージョンがサポートされています。

    • Windows Server 2022

    • Windows Server 2019

    • Windows Server 2016

    • Windows Server 20H2

考慮事項

外部インスタンスの使用を開始する前に、以下の考慮事項に注意してください。

  • 外部インスタンスは、一度に 1 つずつクラスターに登録できます。外部インスタンスを別のクラスターに登録する方法については、「外部インスタンスの登録を解除する」を参照してください。

  • 外部インスタンスには、AWS API との通信を許可する IAM ロールが必要です。詳細については、「外部インスタンスに必要な IAM アクセス許可」を参照してください。

  • 外部インスタンスには、事前設定されたインスタンス認証情報チェーンをローカルに定義しないでください。これは、登録スクリプトに干渉するためです。

  • コンテナログを CloudWatch Logs に送信するには、タスク定義でタスク実行 IAM ロールを作成し、指定してください。詳細については、「条件付き IAM アクセス許可」を参照してください。

  • 外部インスタンスがクラスターに登録されると、ecs.capability.external属性がインスタンスに関連付けられています。この属性は、インスタンスを外部インスタンスとして識別します。カスタム属性を外部インスタンスに追加して、タスクの配置制約として使用できます。詳細については、「カスタム属性」を参照してください。

  • 外部インスタンスにリソースタグを追加できます。詳細については、「外部コンテナインスタンスへのタグの追加」を参照してください。

  • ECS Exec は、外部インスタンスでサポートされています。詳細については、「デバッグ用にAmazon ECS Exec を使用」を参照してください。

  • 外部インスタンスとのネットワーキングに固有の追加の考慮事項を次に示します。詳細については、「ECS Anywhereを使用したネットワーク」を参照してください。

    • サービスの負荷分散はサポートされていません。

    • サービス検出はサポートされていません。

    • 外部インスタンスで実行されるタスクは、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 との統合はサポートされていません。

  • Windows で ECS Anywhere を実行する場合は、オンプレミスのインフラストラクチャで独自の Windows ライセンスを使用する必要があります。

ECS Anywhereを使用したネットワーク

Amazon ECS 外部インスタンスは、アウトバウンドトラフィックを生成したり、データを処理したりするアプリケーションを実行するために最適化されています。アプリケーションがウェブサービスなどのインバウンドトラフィックを必要とする場合、Elastic Load Balancing のサポートがないため、これらのワークロードをロードバランサーの背後に配置するためのサポートがないため、これらのワークロードの実行効率が低下します。

外部インスタンスとのネットワークに固有の追加の考慮事項を次に示します。

  • サービスの負荷分散はサポートされていません。

  • サービス検出はサポートされていません。

  • 外部インスタンスで実行される Linux タスクは、bridgehost、またはnone ネットワークモードを使用する必要があります。awsvpc ネットワークモードはサポートされていません。

    各ネットワークモードの詳細については、のAmazon ECS ベストプラクティスガイドの「ネットワークモードの選択」を参照してください。

  • 外部インスタンスで実行される Windows タスクは、default ネットワークモードを使用する必要があります。

  • 各 AWS リージョンに 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.region.amazonaws.com— これは Amazon ECS のサービスエンドポイントです。

  • タスクが他のタスクとの通信を必要とする場合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 の操作方法については、「Windows コンテナでの gMSA の使用」を参照してください。

  • アクティブディレクトリは、オンプレミスデータセンターで管理されています。-この設定では、外部インスタンスをオンプレミスのアクティブディレクトリに参加させます。その後、Amazon ECS タスクを実行する際に、ローカルで使用可能な認証情報を使用します。