Service Connect - Amazon Elastic Container Service

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

Service Connect

Amazon ECS Service Connect は、Amazon ECS 設定としての service-to-service 通信の管理を提供します。これは、Amazon ECS でサービス検出とサービスメッシュの両方を構築することで行われます。これにより、サービスデプロイごとに管理する各 Amazon ECS サービス内の完全な設定、Amazon VPC DNS 設定に依存しない名前空間内のサービスを参照する統一された方法、Amazon ECS 上のすべてのアプリケーションを監視するための標準化されたメトリクスとログが提供されます。Amazon ECS Service Connect は、Amazon ECS サービスのみを相互接続します。

次の図は、VPC に 2 つのサブネットと 2 つのサービスを含む Service Connect ネットワークの例を示しています。各サブネットで 1 つのタスク WordPress で実行されるクライアントサービス。各サブネットに 1 つのタスクで MySQL を実行するサーバーサービス。どちらのサービスも、2 つのサブネットに分散された複数のタスクを実行するため、可用性が高く、タスクやアベイラビリティーゾーンの問題に対する耐性があります。実線の矢印は、 から MySQL WordPress への接続を示しています。例えば、IP アドレス mysql --host=mysql を持つタスクの WordPress コンテナ内から実行される CLI コマンドなどです172.31.16.1。このコマンドは、MySQL のデフォルトポートの短縮名 mysql を使用します。この名前とポートは、同じタスク内で Service Connect プロキシに接続します。 WordPress タスクのプロキシは、ラウンドロビン負荷分散と異常値検出の以前の障害情報を使用して、接続する MySQL タスクを選択します。図の実線の矢印で示されているように、プロキシは IP アドレス 172.31.16.2 を使用して MySQL タスクの 2 番目のプロキシに接続します。2 番目のプロキシは、同じタスクでローカル MySQL サーバーに接続します。どちらのプロキシも Amazon ECS と Amazon CloudWatch コンソールのグラフに表示される接続パフォーマンスをレポートするため、あらゆる種類のアプリケーションのパフォーマンスメトリクスを同じ方法で取得できます。


            最小限の HA サービスを示す Service Connect ネットワークの例
Service Connect の設定手順の概要

関連サービスのグループの Service Connect を設定するには、次の手順に従います。

重要
  • Amazon ECS Service Connect は、アカウントに AWS Cloud Map サービスを作成します。インスタンスを手動で登録/登録解除したり、インスタンス属性を変更したり、サービスを削除したりしてこれらの AWS Cloud Map リソースを変更すると、アプリケーショントラフィックやその後のデプロイで予期しない動作が発生する可能性があります。

  • Amazon ECS Service Connect は、タスク定義のリンクをサポートしていません。

  1. タスク定義のポートマッピングにポート名を追加します。さらに、アプリケーションのレイヤー 7 プロトコルを識別して、追加のメトリクスを取得できます。

  2. AWS Cloud Map 名前空間を使用して ECS クラスターを作成するか、名前空間を個別に作成します。単純に構成できるように、名前空間に必要な名前で Amazon ECS クラスターを作成し、名前空間に同名を指定します。この場合、Amazon ECS は必要な設定で新しい HTTP 名前空間を作成します。Amazon ECS Service Connect は Amazon Route 53 では DNS ホストゾーンを使用または作成しません。

  3. サービスを設定して、名前空間内に Service Connect エンドポイントを作成します。

  4. サービスをデプロイしてエンドポイントを作成します。Amazon ECS は各タスクに Service Connect プロキシコンテナを追加し、 AWS Cloud Mapに Service Connect エンドポイントを作成します。このコンテナはタスク定義では設定されていないため、タスク定義を変更せずに再利用して、同じ名前空間または複数の名前空間に複数のサービスを作成できます。

  5. クライアントアプリをサービスとしてデプロイしてエンドポイントに接続します。Amazon ECS は Service Connect エンドポイントへの接続を各タスクの Service Connect プロキシ経由で行います。

    アプリケーションは Service Connect エンドポイントへの接続にのみプロキシを使用します。プロキシを使用するための追加の構成はありません。プロキシは、ラウンドロビン負荷分散、外れ値検出、再試行を実行します。プロキシの詳細については、「Service Connect プロキシ」を参照してください。

  6. Amazon の Service Connect プロキシを介してトラフィックをモニタリングします CloudWatch。

Service Connect を利用するリージョン

Amazon ECS Service Connect は以下の AWS リージョンで利用できます。

リージョン名 リージョン

米国東部 (オハイオ)

us-east-2

米国東部 (バージニア北部)

us-east-1

米国西部 (北カリフォルニア)

us-west-1

米国西部 (オレゴン)

us-west-2

アフリカ (ケープタウン)

af-south-1

アジアパシフィック (香港)

ap-east-1

アジアパシフィック (ジャカルタ)

ap-southeast-3

アジアパシフィック(ムンバイ)

ap-south-1

アジアパシフィック (ハイデラバード)

ap-south-2

アジアパシフィック (大阪)

ap-northeast-3

アジアパシフィック (ソウル)

ap-northeast-2

アジアパシフィック (シンガポール)

ap-southeast-1

アジアパシフィック (シドニー)

ap-southeast-2

アジアパシフィック (メルボルン)

ap-southeast-4

アジアパシフィック(東京)

ap-northeast-1

カナダ (中部)

ca-central-1

カナダ西部 (カルガリー)

ca-west-1

中国 (北京)

cn-north-1 (注: Service Connect の TLS は、このリージョンでは利用できません)。

中国 (寧夏)

cn-northwest-1 (注: Service Connect の TLS は、このリージョンでは利用できません。)

欧州 (フランクフルト)

eu-central-1

欧州 (アイルランド)

eu-west-1

欧州 (ロンドン)

eu-west-2

欧州 (パリ)

eu-west-3

欧州 (ミラノ)

eu-south-1

欧州 (スペイン)

eu-south-2

欧州 (ストックホルム)

eu-north-1

欧州 (チューリッヒ)

eu-central-2

イスラエル (テルアビブ)

il-central-1

中東 (バーレーン)

me-south-1

中東 (アラブ首長国連邦)

me-central-1

南米 (サンパウロ)

sa-east-1

Service Connect に関する考慮事項

  • Windows コンテナは Service Connect ではサポートされていません。

  • Fargate で実行されるタスクが Service Connect を使用するには、Fargate Linux プラットフォームバージョン 1.4.0 以上を使用する必要があります。

  • コンテナインスタンスの ECS エージェントバージョンには 1.67.2 以降が必要です。

  • コンテナインスタンスが Service Connect を使用するには、Amazon ECS 最適化 Amazon Linux 2023 AMI バージョン 20230428 以降、または Amazon ECS 最適化 Amazon Linux 2 AMI バージョン 2.0.20221115 を実行する必要があります。これらのバージョンには、Amazon ECS コンテナエージェントに加えて Service Connect エージェントがあります。Service Connect エージェントの詳細については、「」の「Amazon ECS Service Connect エージェント」を参照してください GitHub。

  • コンテナインスタンスには、リソース arn:aws:ecs:region:0123456789012:task-set/cluster/* に対する ecs:Poll のアクセス許可が必要です。ecsInstanceRole を使用している場合は、アクセス許可を追加する必要はありません。AmazonEC2ContainerServiceforEC2Role 管理ポリシーには、必要なアクセス許可があります。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。

  • Amazon ECS Anywhere の External コンテナインスタンスは、Service Connect ではサポートされていません。

  • Service Connect でサポートされるのは、ローリングデプロイを使用するサービスのみです。ブルー/グリーンおよび外部デプロイタイプを使用するサービスはサポートされていません。

  • Service Connect を使用するには、タスク定義でタスクメモリ制限を設定する必要があります。詳細については、「Service Connect プロキシ」を参照してください。

  • タスク定義で、タスクメモリ制限を設定する代わりにすべてのコンテナにコンテナメモリ制限を設定することはサポートされていません。

    コンテナにはコンテナメモリ制限を設定できますが、タスクメモリ制限はコンテナメモリ制限の合計よりも大きい数値に設定する必要があります。タスク制限内の追加の CPU とメモリで、コンテナ制限に割り当てられていないものは、Service Connect プロキシコンテナや、コンテナ制限を設定していない他のコンテナによって使用されます。詳細については、「Service Connect プロキシ」を参照してください。

  • サービスで Service Connect を設定して、同じ AWS リージョン 内の同じ 内の任意の AWS Cloud Map 名前空間を使用できます AWS アカウント。

  • 各 Amazon ECS サービスは 1 つの名前空間のみに属することができます。

  • Amazon ECS サービスが作成したタスクのみがサポートされます。Service Connect では、スタンドアロンタスクは設定できません。

  • すべてのエンドポイントは、名前空間内で一意である必要があります。

  • すべての検出名は、名前空間内で一意である必要があります。

  • 既存のサービス内のアプリケーションが新しいエンドポイントを解決する前に、既存のサービスを再デプロイする必要があります。最新のデプロイ後に名前空間に追加された新しいエンドポイントは、タスク構成には追加されません。詳細については、「デプロイの順序」を参照してください。

  • 新しいクラスターの作成時に名前空間を作成できます。Amazon ECS Service Connect は、クラスターが削除されても名前空間を削除しません。名前空間を使用し終わ AWS Cloud Map ったら、 で直接名前空間を削除する必要があります。

  • Service Connect は HTTP 1.0 をサポートしていません。

  • Application Load Balancer トラフィックは、デフォルトでawsvpcネットワークモードで Service Connect エージェント経由でルーティングされます。サービス以外のトラフィックが Service Connect エージェントをバイパスする場合は、Service Connect サービス設定で ingressPortOverrideパラメータを使用します。

Service Connect コンソールエクスペリエンス

新しい名前空間を作成するには、Amazon ECS コンソールを使用して新しい Amazon ECS クラスターを作成し、作成する名前空間名を指定するか、 AWS Cloud Map コンソールを使用します。Amazon ECS Service Connect は、任意のインスタンス検出タイプの AWS Cloud Map 名前空間を使用できます。追加リソースを最小限に抑えるため、API 呼び出しタイプをお勧めします。Amazon ECS コンソールで新しい Amazon ECS クラスターと名前空間を作成するには、「コンソールを使用した Fargate および外部起動タイプ用のクラスター作成」を参照してください。

選択した にあるこの のすべての AWS Cloud Map 名前空間 AWS リージョン は AWS アカウント 、Amazon ECS コンソールの名前空間に表示されます。

名前空間を削除するには、 AWS Cloud Map コンソールを使用します。削除する前には、名前空間を空にしておく必要があります。

新しい Amazon ECS タスク定義を作成するか、既存のタスク定義に新しいリビジョンを登録して Service Connect を使用するには、「コンソールを使用したタスク定義の作成」を参照してください。

Service Connect を使用する新しい Amazon ECS サービスを作成するには、「コンソールを使用したサービスの作成」を参照してください。

Service Connect の料金

Amazon ECS Service Connect の料金は、コンテナ化されたワークロードをホストするために AWS Fargate または Amazon EC2 インフラストラクチャを使用するかどうかによって異なります。で Amazon ECS を使用する場合 AWS Outposts、料金は Amazon EC2 を直接使用する場合と同じモデルに従います。詳細については、Amazon ECS 料金表を参照してください。

AWS Cloud Map Amazon ECS Service Connect を通じて消費されると、 の使用が完全に無料になります。

Service Connect パラメータ

Service Connect を使用する際は、次のパラメータに追加のフィールドがあります。

パラメータの場所 アプリケーションタイプ 説明 必須?
タスク定義 クライアント クライアントタスク定義には、Service Connect が利用できる変更はありません。 該当なし
タスク定義 クライアント/サーバー サーバーは、コンテナの portMappings のポートに name フィールドを追加する必要があります。詳細については、「portMappings」を参照してください。 はい
タスク定義 クライアント/サーバー サーバーは、オプションでアプリケーションプロトコル (HTTP など) を提供して、サーバーアプリケーションのプロトコル固有のメトリクス (HTTP 5xx など) を受け取ることができます。 いいえ
サービスの定義 クライアント クライアントサービスは、名前空間の結合を設定するには serviceConnectConfiguration を追加する必要があります。この名前空間には、このサービスが検出する必要のあるすべてのサーバーサービスが含まれていなければなりません。詳細については、「serviceConnectConfiguration」を参照してください。 はい
サービスの定義 クライアント/サーバー サーバーサービスは、サービスが利用できる DNS 名、ポート番号、名前空間を設定するために serviceConnectConfiguration を追加する必要があります。詳細については、「serviceConnectConfiguration」を参照してください。 はい
クラスター クライアント クラスターはデフォルトの Service Connect 名前空間を追加できます。クラスター内の新しいサービスは、サービスで Service Connect が設定されている場合は名前空間を継承します。詳細については、「Amazon ECS クラスター」を参照してください。 いいえ
クラスター クライアント/サーバー サーバーサービスに適用されるクラスターには、Service Connect が利用できる変更はありません。サーバーのタスク定義とサービスは、それぞれの設定を行う必要があります。 該当なし