App Mesh のトラブルシューティングのベストプラクティス - AWS App Mesh

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

App Mesh のトラブルシューティングのベストプラクティス

このトピックのベストプラクティスに従って、App Mesh を使用する際の問題をトラブルシューティングするようお勧めします。

Envoy プロキシ管理インターフェイスを有効にする

Envoy プロキシには、設定と統計の検出、および Connection Draining などのその他の管理機能を実行するために使用できる管理インターフェイスが付属しています。詳細については、Envoy ドキュメント「管理インターフェイス」を参照してください。

マネージド Envoy イメージ を使用する場合、管理エンドポイントは、デフォルトでポート 9901 が有効化されています。App Mesh 設定のトラブルシューティング の例では、管理エンドポイント URL は、http://my-app.default.svc.cluster.local:9901/ のように表示されます。

注記

管理エンドポイントは、パブリックインターネットに公開されることはありません。さらに、ENVOY_ADMIN_ACCESS_LOG_FILE 環境変数によって、デフォルトで /tmp/envoy_admin_access.log に設定されている管理エンドポイントログをモニタリングするようお勧めします

メトリクスオフロードの Envoy DogStatsD 統合を有効にする

Envoy プロキシは、OSI レイヤー 4 およびレイヤー 7 のトラフィックおよび内部プロセスのヘルスの統計情報をオフロードするように設定できます。このトピックでは、メトリクスや Prometheus などのシンクに CloudWatch メトリクスをオフロードせずにこれらの統計を使用する方法について説明します。これらの統計をすべてのアプリケーションの一元管理された場所に配置すると、問題の診断や動作の迅速な確認に役立ちます。詳細については、「Amazon CloudWatch メトリクスの使用」および Prometheus ドキュメント「」を参照してください。

DogStatsD メトリクスを設定するには、 で定義されているパラメータを設定しますDogStatsD 変数。 DogStatsD の詳細については、DogStatsD のドキュメントを参照してください。AWS CloudWatch メトリクスへのメトリクスオフロードのデモンストレーションは、「」の「Amazon ECS の基本」チュートリアルで確認できます GitHub。

アクセスログの有効化

仮想ノード仮想ゲートウェイ でアクセスログを有効にして、アプリケーション間のトラフィックの推移の詳細を確認するようお勧めします。詳細については、Envoy ドキュメントに記載の「アクセスログ」を参照してください。ログには、OSI レイヤー 4 およびレイヤー 7 のトラフィック動作に関する詳細情報が表示されます。Envoy のデフォルト形式を使用すると、次の解析ステートメントを使用して CloudWatch Logs Insights でアクセスログを分析できます。

parse @message "[*] \"* * *\" * * * * * * * * * * *" as StartTime, Method, Path, Protocol, ResponseCode, ResponseFlags, BytesReceived, BytesSent, DurationMillis, UpstreamServiceTimeMillis, ForwardedFor, UserAgent, RequestId, Authority, UpstreamHost

本番稼働前の環境で、Envoy デバッグログを有効にする

本番稼働前の環境では、Envoy プロキシのログレベルを debug に設定するようお勧めします。デバッグログは、関連する App Mesh 設定を本番稼働環境に移行する前に、問題を特定する役に立ちます。

Envoy イメージ使用している場合、ログレベルを ENVOY_LOG_LEVEL 環境変数で debug に設定できます。

注記

本番稼働環境での debug レベルの使用はお勧めしていません。レベルを に設定すると、ログdebugが増加し、CloudWatch ログ などのソリューションにオフロードされるログのパフォーマンスと全体のコストに影響する可能性があります。

Envoy のデフォルト形式を使用すると、次の解析ステートメントを使用して CloudWatch Logs Insights でプロセスログを分析できます。

parse @message "[*][*][*][*] [*] *" as Time, Thread, Level, Name, Source, Message

App Mesh コントロールプレーンで Envoy プロキシ接続を監視する

Envoy メトリクス control_plane.connected_state を監視し、Envoy プロキシが App Mesh コントロールプレーンと通信して動的設定リソースを取得しているかを確認することをお勧めします。詳細については、「Management Server」を参照してください。