無限ノック › SAP 練習問題一覧 › 問題
SAP既存のソリューションの継続的改善

グローバル金融機関が、Amazon ECS Fargate上に構築した決済処理プラットフォームを運用しています。システムは開発・ステージング・本番の3つのAWSアカウントにわたる42のマイクロサービスで構成され、ピーク時に毎分5万件のトランザクションを処理します。開発言語はJava・Python・Goが混在しています。最近、全トランザクションの0.1%で間欠的な決済失敗が発生していますが、各チームが独立してサービスを監視しているためログフォーマットが不統一でサービス間・アカウント間のリクエスト追跡が存在せず、根本原因の特定が困難です。SREチームの要件は次のとおりです。 ①障害を引き起こしているサービスとコードパスを特定すること ②単一トランザクションについて42サービス全体のログを相関付けること ③顧客が影響を受ける前に性能低下を検知する異常ベースの自動アラートを設定すること ④多言語サービスへのコード変更を最小限に抑えること これらすべての要件を最もよく満たすアーキテクチャはどれですか?

A
AWS Distro for OpenTelemetry (ADOT) コレクターをサイドカーコンテナとして各ECS Fargateタスク定義に追加してAWS X-Rayトレースを収集し、CloudWatch ServiceLensでサービスマップを有効化する。CloudWatch Cross-Account Observabilityのリンクを設定して3アカウントのトレース・メトリクス・ログを一元的なモニタリングアカウントに集約し、X-Rayエラー率メトリクスに対してCloudWatch Anomaly Detectionとアラームを設定する。
✓ 正解
ADOTのサイドカーパターンはコード変更なしでJava・Python・Go等の多言語環境に対応し、X-Ray分散トレーシングが42サービス間のリクエストをトレースIDで相関付ける。CloudWatch Cross-Account ObservabilityとServiceLensの組み合わせが3アカウント横断の可視性・異常検知のすべての要件を満たす。
B
各ECSクラスターでAmazon CloudWatch Application Insightsを有効化してリソースを自動検出し、全サービスを構造化JSONログでCloudWatch Logsへ出力するよう設定する。CloudWatch Logs Insightsのクロスアカウント保存クエリで障害パターンを分析し、サービスごとのカスタムメトリクスにCloudWatch Anomaly Detectionを適用してアラームを構成する。
CloudWatch Application InsightsはEC2・RDS等のリソース自動検出と障害分析には有効だが、マイクロサービス間のリクエストトレースを生成する機能がなく、42サービス全体のトランザクション相関付けというコア要件を達成できない。
C
本番アカウントにAmazon OpenSearch Serviceクラスターをデプロイし、42サービスのすべてのログをAmazon Data Firehose経由でOpenSearchに取り込むよう設定する。OpenSearch DashboardsでサービスをまたぐJSONログの相関ダッシュボードを構築し、OpenSearch異常検知プラグインを使用したアラートを設定して性能劣化を自動検知する。
OpenSearch Serviceはログ集約・全文検索に優れているが、各サービスにKinesis連携コードを追加する必要があり「コード変更最小化」の要件に反する。ネイティブの分散トレーシング機能もなく、エンドツーエンドAPMの実現には追加の開発実装が必要になる。
D
全3アカウントのVPC Flow LogsをS3クロスアカウントレプリケーションで集約バケットに集め、AWS Glueデータカタログを介したAmazon AthenaのクエリでネットワークトラフィックパターンをSQLで解析する。Amazon QuickSightでダッシュボードを構築し、LambdaがAthenaクエリ結果を定期評価してCloudWatch Alarmに連携する自動アラートを設定する。
VPC Flow LogsはIPフロー情報(送受信IPアドレス・ポート・バイト数)を記録するネットワーク監視ツールであり、HTTPリクエストのトレースIDや業務トランザクションの論理フローは記録しない。42マイクロサービス間の呼び出し経路を特定することは不可能で、コードパスレベルの根本原因分析には対応できない。

解説

選択肢AのAWS Distro for OpenTelemetry (ADOT) はOpenTelemetry標準に準拠した自動インストルメンテーションライブラリを提供し、Java・Python・Go等の多言語ランタイムに対してアプリケーションコードを変更することなくトレースコンテキストを付与できます。サイドカーコンテナとしてECS Fargateタスク定義に追加するだけで既存コンテナへの影響なしにデプロイ可能です。 AWS X-RayはADOTコレクターが送信したスパンデータを受け取り、マイクロサービス間をまたぐ完全なトレースとサービスマップを生成します。単一決済トランザクションに対して42サービスすべてのトレースをトレースIDで相関付けられるため、遅延・エラーが発生したサービスとコードパスを即座に特定できます。CloudWatch ServiceLensはX-Rayトレース・メトリクス・ログを統合した単一ビューを提供し、サービスマップ上でエラー率とレイテンシーを可視化します。CloudWatch Cross-Account Observabilityを設定することで3アカウントのデータを一元的なモニタリングアカウントから横断参照でき、アカウントごとの個別監視という根本課題を解消します。 選択肢BのCloudWatch Application Insightsは主に.NETやJavaアプリケーションのリソース自動検出・障害分析に特化しており、マイクロサービス間のエンドツーエンドリクエストトレースを生成する機能を持たない。 選択肢CのAmazon OpenSearch Serviceはログ分析基盤として有効だが、各サービスへのKinesis連携追加はコード変更最小化の要件に反し、ネイティブ分散トレーシングもないためAPM(アプリケーションパフォーマンス管理)構築に追加開発が必要になる。 選択肢DのVPC Flow LogsはIPアドレス・ポート・バイト数などネットワークレイヤーのフロー情報を記録するものであり、HTTPトランザクションIDや業務ロジックの呼び出し経路を追跡することは原理的に不可能である。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SAP の問題一覧に戻る