OPS04-BP05 分散トレースを実装する - オペレーショナルエクセレンスの柱

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

OPS04-BP05 分散トレースを実装する

分散トレースを使用すると、分散システムのさまざまなコンポーネントを通過するリクエストをモニタリングし、可視化できます。複数のソースからトレースデータを収集して統合されたビューで分析することで、チームはリクエストの流れ、ボトルネックが発生している場所、重点的に最適化に取り組むべき個所をより正確に把握できます。

期待される成果: 分散システムを通過するリクエストを包括的に把握できるため、正確なデバッグ、パフォーマンス最適化、ユーザーエクスペリエンスの向上が実現します。

一般的なアンチパターン:

  • 一貫性に欠けた計測: 分散システム内のすべてのサービスがトレースを目標に計測されているわけではない。

  • レイテンシーの考慮なし: エラーのみに注目し、レイテンシーや徐々にパフォーマンスが低下していることが考慮されていない。

このベストプラクティスを活用するメリット:

  • 包括的なシステムの全体像: リクエストの入力から終了まで、リクエストのパス全体にわたり可視化できます。

  • デバッグの強化: 障害やパフォーマンスの問題が発生した個所を迅速に特定できます。

  • ユーザーエクスペリエンスの向上: モニタリングを行い、実際のユーザーデータに基づいて最適化を行うことで、確実にシステムが実際の需要を満たせます。

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

計測が必要となるすべてのワークロードの要素を特定することから始めます。すべてのコンポーネントを考慮したら、 AWS X-Ray や などのツールを活用して、X-Ray や Amazon CloudWatch ServiceLens Map などのツールを使用して分析用の OpenTelemetry トレースデータを収集します。デベロッパーと定期的にレビューを行い、Amazon DevOpsGuru、X-Ray Analytics、X-Ray Insights などのツールでこれらのディスカッションを補足して、より深い検出結果を発見できるようにします。トレースデータからアラートを設定して、ワークロードのモニタリング計画で定義されている結果に対してリスクが検出された場合に通知します。

実装手順

分散トレースを効果的に実装する方法:

  1. AWS X-Ray の採用: をアプリケーションに組み込むと、アプリケーションの動作に関するインサイトを取得したり、パフォーマンスを把握して、ボトルネックを特定したりできます。X-Ray Insights を自動トレース分析に活用します。

  2. サービスを計測する: AWS Lambda関数からEC2インスタンス へのすべてのサービスがトレースデータを送信していることを確認します。計測するサービスが多いほど、ビューは end-to-end明確になります。

  3. Real CloudWatch User MonitoringSynthetic Monitoring の組み込み: Real User Monitoring (RUM) とSynthetic Monitoring を X-Ray と統合します。これにより、実際のユーザーエクスペリエンスをキャプチャしてユーザーの操作をシミュレートし、潜在的な問題を特定できます。

  4. CloudWatch エージェントの使用: エージェントは X-Ray または からトレースを送信でき OpenTelemetry、取得したインサイトの深さを強化します。

  5. Amazon DevOpsGuru DevOpsGuru は、X-Ray、 CloudWatch AWS Config、および からのデータ AWS CloudTrail を使用して、実用的な推奨事項を提供します。

  6. トレースを分析する: トレースデータを定期的に確認して、アプリケーションのパフォーマンスに影響を及ぼす可能性のあるパターン、異常、またはボトルネックを特定します。

  7. アラートの設定: 異常なパターンや拡張レイテンシーCloudWatchのアラームを で設定し、プロアクティブに問題に対処できるようにします。

  8. 継続的な改善: サービスが追加または変更されたら、関連するすべてのデータポイントが取得できるように、トレース戦略を再検討します。

実装計画に必要な工数レベル:

リソース

関連するベストプラクティス:

関連ドキュメント:

関連動画:

関連する例: