あるチームがX-Rayでトレースを設定したが、本番環境で1秒間に10,000リクエストが来ており、すべてをトレースするとコストとオーバーヘッドが大きくなる。本番環境での全体的なパフォーマンス状況は把握しつつ、コストを大幅に削減したい。最も適切な対応はどれか。
- A. X-Rayのサンプリングルールをカスタマイズして、例えば1秒あたり1リクエストの固定レートと1%の割合でサンプリングするように設定する
- B. X-Rayのトレースをすべて維持しながら、S3にエクスポートしてコスト削減する
- C. X-Rayデーモンのバッファサイズを増やしてバッファリング量を増やすことでAPIコール数を削減する
- D. X-Rayを本番環境では無効にして、ステージング環境でのみ有効にする
解答と解説を見る
正解: A
X-Rayはサンプリングを設定することで全トレースを記録せずにコストとオーバーヘッドを大幅削減できる(選択肢A)。デフォルトのサンプリングルールは「1秒あたり1リクエスト + 残りの5%」だが、コンソールまたはAPIでカスタムサンプリングルールを作成し、URLパス・HTTPメソッド・サービス名ごとに異なるレートを設定できる。高トラフィックな本番環境ではサンプリングにより統計的に十分なデータを保持しつつコストを99%以上削減できる。選択肢Dは可視性をゼロにしてしまい、本番環境のパフォーマンス状況を把握できなくなる。選択肢CのデーモンバッファはAPIコール頻度を若干減らすが、コストの主体はトレースデータの保存量であり根本解決にならない。選択肢BはX-Rayにはトレースを直接S3にエクスポートする機能はなく(取得したデータをS3に転送するカスタム実装が必要)、根本的なコスト削減策にもならない。
📚 関連サービスの解説: AWS X-Ray