とは AWS App Mesh - AWS App Mesh

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

とは AWS App Mesh

重要

サポート終了通知: 2026 年 9 月 30 日、 は のサポートを中止 AWS します AWS App Mesh。2026 年 9 月 30 日以降、 AWS App Mesh コンソールまたは AWS App Mesh リソースにアクセスできなくなります。詳細については、このブログ記事の「 から Amazon ECS Service Connect AWS App Mesh への移行」を参照してください。

AWS App Mesh は、サービスのモニタリングと制御を容易にするサービスメッシュです。サービスメッシュは、通常、アプリケーションコードとともにデプロイされた一連の軽量ネットワークプロキシを介して、通信の処理 service-to-service専用のインフラストラクチャレイヤーです。App Mesh は、サービスの通信方法を標準化し、可視性を提供し end-to-end、アプリケーションの高可用性を確保します。App Mesh を使用すると、アプリケーション内のすべてのサービスについて一貫した可視性とネットワークトラフィックコントロールを実現できます。

App Mesh をサンプルアプリケーションに追加する

重要

サポート終了通知: 2026 年 9 月 30 日、 は のサポートを中止 AWS します AWS App Mesh。2026 年 9 月 30 日以降、 AWS App Mesh コンソールまたは AWS App Mesh リソースにアクセスできなくなります。詳細については、このブログ記事の「 から Amazon ECS Service Connect AWS App Mesh への移行」を参照してください。

App Mesh を使用しない、次の簡単なアプリケーション例を考えてみましょう。2 つのサービスは AWS Fargate、Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS)、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、または Docker を使用する Amazon EC2インスタンスで実行できます。

Diagram showing client service connecting to servicea.apps.local, which connects to serviceb.apps.local.

この図では、serviceAserviceB の両方が apps.local 名前空間を介して検出可能です。例えば servicebv2.apps.local という名前の serviceb.apps.local の新しいバージョンをデプロイすることにしたとします。次に、servicea.apps.local からのトラフィックの何パーセントかを serviceb.apps.local に、何パーセントかを servicebv2.apps.local に誘導したいとします。servicebv2 が順調に実行されていることが確認できたら、そこに 100 パーセントのトラフィックを送ります。

App Mesh は、アプリケーションコードや登録されたサービス名を変更することなく、これを行うのに役立ちます。このサンプルアプリケーションで App Mesh を使用すると、メッシュは、次の図のようになります。

Diagram showing App Mesh architecture with virtual services, nodes, and router in a mesh network.

この設定では、サービスは、相互に直接通信しなくなります。代わりに、プロキシを介して相互に通信します。servicea.apps.local サービスとともにデプロイされたプロキシは、App Mesh 設定を読み取り、設定に基づいて、トラフィックを serviceb.apps.local または servicebv2.apps.local に送信します。

App Mesh のコンポーネント

App Mesh は、前の例に示すように、次のコンポーネントで設定されています。

  • サービスメッシュ - サービスメッシュは、その中に存在するサービス間のネットワークトラフィックの論理的な境界です この例では、メッシュは apps という名前で、メッシュの他のすべてのリソースが含まれています。詳細については、「サービスメッシュ」を参照してください。

  • 仮想サービス - 仮想サービスは、実際のサービスを抽象化したもので、仮想ノードが直接または間接的に仮想ルーターによって提供するものです。図では、2 つの仮想サービスが 2 つの実際のサービスを表しています。仮想サービスの名前は、実際のサービスの検出可能な名前です。仮想サービスと実際のサービスの名前が同じ場合、複数のサービスは、AppMesh が実装される前に使用していたのと同じ名前を使用して相互に通信できます。詳細については、「仮想サービス」を参照してください。

  • 仮想ノード – 仮想ノードは、Amazon ECSや Kubernetes サービスなどの検出可能なサービスへの論理ポインタとして機能します。仮想サービスごとに、少なくとも 1 つの仮想ノードがあります。図では、servicea.apps.local 仮想サービスは、serviceA という名前の仮想ノードの設定情報を取得します。serviceA 仮想ノードは、サービス検出用の servicea.apps.local という名前で設定されます。serviceb.apps.local 仮想サービスは、serviceB という仮想ルーターを経由して serviceBserviceBv2 の仮想ノードにトラフィックをルーティングするように設定されています。詳細については、「仮想ノード」を参照してください。

  • 仮想ルーターとルート – 仮想ルーターは、メッシュ内の 1 つ以上の仮想サービスのトラフィックを処理します。ルートは仮想ルータに関連付けられます。仮想ルーターとルート - 仮想ルーターは、メッシュ内の1つまたは複数の仮想サービス用のトラフィックを処理します。先ほどの図では、serviceB 仮想ルーターは、トラフィックの何割かを serviceB 仮想ノードに、何割かを serviceBv2 仮想ノードに向ける経路を持っています。特定の仮想ノードにルーティングされるトラフィックの割合を設定し、時間経過とともに変化させることができます。HTTP ヘッダー、URLパス、gRPC サービス名やメソッド名などの基準に基づいてトラフィックをルーティングできます。応答にエラーがある場合に、接続を再試行するように再試行ポリシーを設定できます。例えば、図の例では、ルートの再試行ポリシーで、serviceb.apps.local が特定のタイプのエラーを返した場合に、serviceb.apps.local への接続を5回再試行し、再試行の間隔を10秒にするように指定できます。詳細については、「仮想ルーター」と「ルート」を参照してください。

  • プロキシ — メッシュとそのリソースを作成した後、プロキシを使用するようにサービスを設定します。プロキシは App Mesh 設定を読み取り、トラフィックを適切に転送します。図では、servicea.apps.local から serviceb.apps.local へのすべてのコミュニケーションは、各サービスとともにデプロイされたプロキシを経由します。サービスは、App Mesh を導入する前に使用したものと同じサービスディスカバリ名を使用して相互に通信します。プロキシは App Mesh 設定を読み取るため、2 つのサービスが相互に通信する方法を制御できます。App Mesh の設定を変更する場合は、サービス自体またはプロキシを変更または再デプロイする必要はありません。詳細については、「Envoy イメージ」を参照してください。

開始方法

App Mesh を使用するには、、Amazon AWS Fargate、Amazon EKS、ECSAmazon 上の KubernetesEC2、または Docker EC2を使用する Amazon で実行されている既存のサービスが必要です。

App Mesh の使用を開始するには、次のいずれかのガイドを参照してください。

App Mesh にアクセスする

次の方法で App Mesh を使用できます。

AWS Management Console

コンソールは、AppMeshリソースの管理に使用できるブラウザベースのインターフェイスです。App Mesh コンソールは で開くことができますhttps://console.aws.amazon.com/appmesh/

AWS CLI

幅広い AWS 製品セットのコマンドを提供し、Windows、Mac、Linux でサポートされています。開始するには、「AWS Command Line Interface ユーザーガイド」を参照してください。App Mesh の詳細については、「AWS CLI コマンドリファレンス」の appmesh を参照してください。

AWS Tools for Windows PowerShell

PowerShell 環境でスクリプトを作成するユーザー向けの幅広い AWS 製品セットのコマンドを提供します。使用を開始する方法については、『AWS Tools for Windows PowerShell ユーザーガイド』を参照してください。App Mesh のコマンドレットの詳細については、AWS 「 Tools for PowerShell Cmdlet リファレンス」の「App Mesh」を参照してください。

AWS CloudFormation

必要なすべての AWS リソースを記述するテンプレートを作成できます。テンプレートを使用して、 はリソースを AWS CloudFormation プロビジョニングおよび設定します。開始するには、「AWS CloudFormation ユーザーガイド」を参照してください。App Mesh リソースタイプの詳細については、「App Mesh リソースタイプ」の「AWS CloudFormation テンプレートリファレンス」を参照してください。

AWS SDKs

またSDKs、さまざまなプログラミング言語から App Mesh にアクセスできる も提供しています。は、次のようなタスクSDKsを自動的に処理します。

  • サービスリクエストに暗号署名する

  • リクエストを再試行する

  • エラーレスポンスの処理をする

利用可能な の詳細についてはSDKs、「Amazon Web Services のツール」を参照してください。

App Mesh の詳細についてはAPIs、「 AWS App Mesh APIリファレンス」を参照してください。