翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS App Mesh とは?
AWS App Meshは、サービスのモニタリングとコントロールを容易にするサービスメッシュです。サービスメッシュは、通常、アプリケーションコードと一緒に展開された軽量のネットワークプロキシの配列を介して、サービス間通信の処理専用のインフラストラクチャ層です。App Mesh は、サービスの通信方法を標準化し、エンドツーエンドの可視性を提供して、アプリケーションの高可用性を確保するのに役立ちます。App Mesh を使用すると、アプリケーション内のすべてのサービスについて一貫した可視性とネットワークトラフィックコントロールを実現できます。
サンプルアプリケーションへの App Mesh の追加
App Mesh を使用しない次の簡単なアプリケーション例を考えてみましょう。2 つのサービスは、で実行できます。AWS Fargate、Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS)、Amazon Elastic Kubernetes Service (Amazon EKS)、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、または Docker の Amazon EC2 インスタンスで、

この図では、両方ともserviceA
そしてserviceB
で発見できるのかapps.local
名前空間。たとえば、新しいバージョンをデプロイするとします。serviceb.apps.local
名前付きservicebv2.apps.local
。次に、からのトラフィックの割合を指示します。servicea.apps.local
にserviceb.apps.local
そして、パーセンテージをservicebv2.apps.local
。それが確信しているときservicebv2
はうまく動作しています。トラフィックの 100% をそれに送信します。
App Mesh は、アプリケーションコードや登録されたサービス名を変更することなく、これを行うのに役立ちます。このサンプルアプリケーションで App Mesh を使用すると、メッシュが次の図のようになります。

この構成では、サービスは相互に直接通信しなくなります。代わりに、プロキシを介して相互に通信します。でデプロイされたプロキシservicea.apps.local
サービスが App Mesh 構成を読み取り、トラフィックをserviceb.apps.local
またはservicebv2.apps.local
設定に基づきます。
App Mesh のコンポーネント
App Mesh は、前の例に示すように、次のコンポーネントで構成されています。
-
サービスメッシュ— サービスメッシュは、サービス間のネットワークトラフィックの論理的な境界であり、サービスはその中に存在します。この例では、メッシュの名前が付けられています。
apps
、メッシュの他のすべてのリソースが含まれます。詳細については、「サービスメッシュ」を参照してください。 -
仮想サービス— 仮想サービスは、仮想ノードが仮想ルーターを使用して直接または間接的に提供する実際のサービスを抽象化したものです。この図では、2 つの仮想サービスが 2 つの実際のサービスを表しています。仮想サービスの名前は、実際のサービスの検出可能な名前です。仮想サービスと実際のサービスの名前が同じ場合、App Mesh が実装される前と同じ名前を使用して、複数のサービスが相互に通信できます。詳細については、「仮想サービス」を参照してください。
-
仮想ノード— 仮想ノードは、Amazon ECS や Kubernetes サービスなどの検出可能なサービスへの論理ポインタとして機能します。仮想サービスごとに、少なくとも 1 つの仮想ノードがあります。イラストでは、
servicea.apps.local
仮想サービスは、という名前の仮想ノードの設定情報を取得します。serviceA
。-serviceA
仮想ノードはservicea.apps.local
サービスの検出の名前です。-serviceb.apps.local
仮想サービスは、トラフィックをにルーティングするように設定されています。serviceB
そしてserviceBv2
という名前の仮想ルーターを介した仮想ノードserviceB
。詳細については、「仮想ノード」を参照してください。 -
仮想ルーターとルート— 仮想ルーターは、メッシュ内の 1 つ以上の仮想サービスのトラフィックを処理します。ルートは仮想ルータに関連付けられます。ルートは、仮想ルーターに対するリクエストを照合し、関連付けられた仮想ノードにトラフィックを分散させる目的で使用されます。前の図では、
serviceB
仮想ルータには、トラフィックの割合をserviceB
仮想ノード、およびへのトラフィックの割合serviceBv2
仮想ノード。特定の仮想ノードにルーティングされるトラフィックの割合を設定し、時間をかけて変更することができます。HTTP ヘッダー、URL パス、または gRPC サービスおよびメソッド名などの基準に基づいてトラフィックをルーティングできます。応答にエラーがある場合に、接続を再試行するように再試行ポリシーを設定できます。たとえば、この図では、ルートの再試行ポリシーでは、次の接続を指定することができます。serviceb.apps.local
は 5 回再試行され、再試行間隔は 10 秒になります。serviceb.apps.local
は、特定のタイプのエラーを返します。詳細については、「仮想ルーター」および「ルート」を参照してください。 -
プロキシ— メッシュとそのリソースを作成した後、プロキシを使用するようにサービスを設定します。プロキシは App Mesh 構成を読み取り、トラフィックを適切に指示します。イラストでは、すべてのコミュニケーションから
servicea.apps.local
にserviceb.apps.local
は、各サービスとともにデプロイされたプロキシを経由します。サービスは、App Mesh を導入する前に使用したものと同じサービスディスカバリ名を使用して相互に通信します。プロキシは App Mesh 構成を読み取るため、2 つのサービスが相互に通信する方法を制御できます。App Mesh の設定を変更する場合は、サービス自体またはプロキシを変更または再デプロイする必要はありません。詳細については、「Envoy イメージ」を参照してください。
開始方法
App Mesh を使用するには、で既存のサービスが実行されている必要があります。AWS Fargate、Amazon ECS、Amazon EKS、Kubernetes on Amazon EC2、またはAmazon EC2 with Docker。
App Mesh の使用を開始するには、以下のガイドの 1 つを参照してください。
App Mesh にアクセスする
App Mesh は、次の方法で利用できます。
- AWS Management Console
-
コンソールは、App Mesh リソースを管理するために使用できるブラウザベースのインターフェイスです。App Mesh コンソールは、https://console.aws.amazon.com/appmesh/
。 - AWS CLI
-
一連のさまざまな AWS 製品用のコマンドを提供し、Windows、Mac、および Linux でサポートされています。開始するには、「AWS Command Line Interface ユーザーガイド」を参照してください。App Mesh のコマンドの詳細については、「」を参照してください。appmeshのAWS CLIコマンドリファレンス。
- AWS Tools for Windows PowerShell
-
PowerShell 環境でスクリプトを記述するユーザー向けに、さまざまな AWS 製品用のコマンドが用意されています。開始するには、「AWS Tools for Windows PowerShell ユーザーガイド」を参照してください。App Mesh のコマンドレットの詳細については、「」を参照してください。App MeshのAWSWindows PowerShell 用 Tools のコマンドレットリファレンス。
- AWS CloudFormation
-
すべてのを記述するテンプレートを作成できます。AWS必要なリソース。テンプレートを使用して、AWS CloudFormationリソースをプロビジョニングして、設定します。開始するには、「AWS CloudFormation ユーザーガイド」を参照してください。App Mesh リソースタイプの詳細については、「」を参照してください。App Mesh リソースタイプリファレンスのAWS CloudFormationテンプレートリファレンス。
- AWS SDK
-
さまざまなプログラミング言語から App Mesh にアクセスできる SDK も用意されています。SDK は、自動的に次のようなタスクを処理します。
サービスリクエストの暗号化された署名
リクエストの再試行
エラーレスポンスの処理
使用できる SDK については、「Amazon Web Services のツール
」を参照してください。 App Mesh API の詳細については、「」を参照してください。AWS App MeshAPI リファレンス。