
【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
関連サービス
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 Logs | Envoyアクセスログ |
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
| 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の稼働時間とリクエスト |