App Mesh

【VPC外リージョンサービス】

App Mesh は、アプリケーションレベルで動作する Service Mesh(マイクロサービス間の通信を制御・可視化するためのインフラ層) です。

Envoyプロキシ をベースとしたデータプレーンにより、ECS / EKS / EC2対応 の環境をまたいで動作し、マイクロサービス間の通信を統合的に制御します。

App Mesh は、マイクロサービス通信の一元管理 を実現し、トラフィック管理 / ルーティング制御 / リトライ / タイムアウト / フェイルオーバー などの通信制御を統一的に設定できます。構成要素としては、Virtual Service / Virtual Node / Virtual Router / Virtual Gateway を用いて通信経路やポリシーを柔軟に定義します。

mTLS(相互TLS) / IAM統合 / アクセス制御ポリシー に対応しており、安全な認証・通信を確保します。

トラフィック分割 / カナリアデプロイ / ブルーグリーンデプロイ などの段階的リリースも容易に行うことができます。

可観測性の面では、Cloud Map / CloudWatch / X-Ray / App Runner / Fargate などと連携し、メトリクス / トレース / ログ の取得を通じて通信を可視化します。

フェイルオーバー / レート制御 / リトライ設定 を活用することで、分散システム全体の信頼性と耐障害性を高めることができます。

重要用語

Envoyプロキシ
マイクロサービス通信の一元管理
構成要素
mTLS
関連サービス
EC2
Cloud Map
X-Ray
App Runner

ユースケース

マイクロサービス間通信の可視化ECS/EKS上のサービス間通信をプロキシ経由に統一し、どのサービスがどのサービスとどのくらい通信しているかをメトリクスやトレースで把握する。
トラフィック制御による段階的リリース新バージョンのサービスに一定割合だけトラフィックを流すカナリアリリースを行い、問題があればすぐ元に戻せるようにする。
サービス間通信のセキュア化(mTLS)サービス間の通信をメッシュ内で自動的に暗号化(mTLS)し、アプリケーションコードを変えずにセキュリティレベルを引き上げる。

ベストプラクティス

サイドカー方式の採用Envoyサイドカーでトラフィック制御を行い、アプリからネットワーク制御を分離する。
トラフィックルーティングルールカナリアリリースやA/Bテストをルーティング設定で行う。
メトリクスとトレース収集X-RayやCloudWatchと連携して可観測性を高める。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
【デフォルト】AWS内部で冗長化
 ・コントロールプレーン
 ・メッシュ設定データ(グローバルレプリケーション)
 ・APIエンドポイント
 ・Envoy設定配信システム
【自動リトライ】デフォルトはオフ
 マイクロサービス間のHTTP/gRPC通信の失敗時に自動再送信

セキュリティ

関連サービス設定内容
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)【Configが有効な場合】
メッシュ/バーチャルノード等の設定変更履歴(対象リーソースに限る)
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
VPCネットワーク経由の異常通信検知

ログ・監視

ログ出力先ログの種類
CloudWatch LogsEnvoyアクセスログ
CloudWatch Logs優先の原則
標準メトリクス
メトリクス名説明
TargetProcessedBytesターゲット処理バイト数
HTTPCode_Target_2XX_Countターゲット2xxレスポンス数
HTTPCode_Target_4XX_Countターゲット4xxレスポンス数
HTTPCode_Target_5XX_Countターゲット5xxレスポンス数

制限値(固定値/ハードリミット/ソフトリミット)

ソフトリミット制限値
メッシュ数/リージョン10
仮想ノード数/メッシュ200
仮想ルーター数/メッシュ200
仮想サービス数/メッシュ200
ルート数/仮想ルーター50
バックエンド数/仮想ノード50

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
EnvoyプロキシApp Mesh Envoyの稼働時間とリクエスト
料金計算ツール

公式ページ

AWSドキュメント App Mesh