REL 6: ワークロードリソースをモニタリングするにはどうすればよいですか?
ログとメトリクスは、ワークロードの状態についての洞察を得るための強力なツールです。ワークロードは、しきい値を超えたり重大なイベントが発生したりしたときに、ログとメトリクスがモニタリングされて通知が送信されるように構成できます。モニタリングにより、ワークロードは、低パフォーマンスのしきい値を超えたときや障害が発生したときにそれを認識できるため、それに応じて自動的に復旧できます。
リソース
Using Amazon CloudWatch Metrics
Publishing Custom Metrics
Using Amazon CloudWatch Dashboards
Using Canaries (Amazon CloudWatch Synthetics)
Amazon CloudWatch Logs Insights Sample Queries
AWS Systems Manager Automation
What is AWS X-Ray?
Debugging with Amazon CloudWatch Synthetics and AWS X-Ray
The Amazon Builders' Library: Instrumenting distributed systems for operational visibility
ベストプラクティス:
-
ワークロードのすべてのコンポーネントをモニタリングする (生成): ワークロードのコンポーネントは、Amazon CloudWatch またはサードパーティーのツールを使ってモニタリングします。Personal Health Dashboard を使って AWS のサービスをモニタリングする
-
メトリクスを定義および計算する (集計): 特定のログイベントのカウントや、ログイベントのタイムスタンプから計算されたレイテンシーなどのメトリクスを計算するため、ログデータを保存し、必要に応じてフィルターを適用する
-
通知を送信する (リアルタイム処理とアラーム): 重要なイベントが発生すると、把握しておく必要のある組織が通知を受信します
-
レスポンスを自動化する (リアルタイム処理とアラーム): 自動化を使用して、イベントが検出されたときにアクションを実行します (たとえば、障害が発生したコンポーネントを交換します)
-
ストレージと分析: ログファイルとメトリクスの履歴を収集し、これらを分析して、より幅広いトレンドとワークロードの洞察を得ます
-
定期的にレビューを実施する: ワークロードモニタリングがどのように実装されているかを頻繁に確認し、重要なイベントや変更に基づいて更新する
-
システムを通じたリクエストのエンドツーエンドのトレースをモニタリングする: AWS X-Ray またはサードパーティー製のツールを使用することで、開発者は分散システムの分析とデバッグをより簡単に行い、アプリケーションとその基盤となるサービスのパフォーマンスを把握できます
改善計画
ワークロードのすべてのコンポーネントをモニタリングする (生成)
- 使用中のすべての AWS のサービスを確認する
- すべてのサービスのログを有効にする: AWS では多くのサービスでログが作成されます。サービスに目的のレベルのログ機能がない場合は、ワークロードからログ機能を追加できます
- Amazon S3 のログ記録を有効にする
Amazon S3 Server Access Logging - Elastic Load Balancing のログ記録を有効にする
Access logs for your application load balancer
Access Logs for Your Network Load Balancer
Enable Access Logs for Your Classic Load Balancer - VPC フローログを有効にする
VPC Flow Logs - CloudTrail ログを有効にする
Creating a trail - Amazon CloudWatch エージェントを使用してインスタンスから CloudWatch Logs にログデータをストリーム配信する
Install the CloudWatch agent on an Amazon EC2 instance - Amazon ECS で awslogs ログドライバーを使用して CloudWatch Logs にログデータをストリーム配信する
Using CloudWatch Logs with container instances - AWS Lambda は、CloudWatch Logs に自動的にログデータをストリーム配信します
Accessing Amazon CloudWatch Logs for AWS Lambda
- Amazon S3 のログ記録を有効にする
AWS Services That Publish CloudWatch Metrics
- メトリクスは、個別に評価することも、全体として評価することもできます
- CloudWatch コンソールに移動して、収集されたメトリクスを調べる
- メトリクスとディメンションが収集されるドキュメントを参照する
Amazon CloudWatch Logs Insights Sample Queries
Publish custom metrics
- メモリ使用量またはディスク消費が必要な場合は、CloudWatch エージェントまたは PutMetricData API を使用します
Monitoring memory and disk metrics for Amazon EC2 linux instances
- 一般的なログファイルに CloudWatch Logs を使用する
- 最も一般的なログ集計のユースケースには CloudWatch Logs を使用できます
What are Amazon CloudWatch Logs?
- 最も一般的なログ集計のユースケースには CloudWatch Logs を使用できます
- すべてのログを Amazon S3 に保存し、長期間保存する場合は Amazon S3 Glacier に保存する
- CloudWatch Logs を Amazon S3 にエクスポートできます。CloudTrail と Elastic Load Balancing のログは Amazon
S3 に送信されます
Exporting log data to Amazon S3
- CloudWatch Logs を Amazon S3 にエクスポートできます。CloudTrail と Elastic Load Balancing のログは Amazon
S3 に送信されます
メトリクスを定義および計算する (集計)
- メトリクスフィルターは、CloudWatch Logs に送信されるログデータ内で検索するために、用語とパターンを定義します。CloudWatch Logs はこれらのメトリクスフィルターを使用して、ログデータを、グラフ化またはアラームを設定できる
CloudWatch の数値メトリクスに変換します。
Searching and Filtering Log Data - 信頼できるサードパーティーを使用してログを集計する
- サードパーティーの指示に従います。ほとんどのサードパーティー製品は CloudWatch および Amazon S3 と統合されています
- 一部の AWS のサービスでは、ログを直接 Amazon S3 に発行できます。この方法により、ログの主な要件が Amazon S3 のストレージである場合、追加のインフラストラクチャをセットアップすることなく、簡単に、サービスにログを生成させて、直接
Amazon S3 に送信させることができます。
Sending Logs Directly to Amazon S3
通知を送信する (リアルタイム処理とアラーム)
- Amazon CloudWatch ダッシュボードは、CloudWatch コンソール内のカスタマイズ可能なホームページであり、これを使用すると、異なるリージョンにまたがっているリソースであっても、単一のビューでリソースをモニタリングできます
Using Amazon CloudWatch Dashboards - メトリクスが制限を超える場合にアラームを作成する
Using Amazon CloudWatch Alarms
レスポンスを自動化する (リアルタイム処理とアラーム)
AWS Systems Manager Automation
- Systems Manager Automation ドキュメントを作成して使用します。これらは、自動化の実行時に Systems Manager がマネージドインスタンスおよび他の
AWS リソースで実行するアクションを定義します。
Working with Automation Documents (Playbooks)
Creating an EventBridge Rule That Triggers on an Event from an AWS Resource
- すべてのアラート応答手順を棚卸しする: タスクをランク付けする前に、アラートレスポンスを計画する必要があります
- 実行する必要がある特定のアクションを含むすべてのタスクを棚卸しします。: これらのアクションのほとんどは、ランブックに記載されています。また、予期しないイベントのアラートに対するプレイブックも必要です
- すべての自動化可能なアクションについて、ランブックとプレイブックを調べる: 一般的に、アクションを定義できる場合は、ほとんどの場合、自動化できます
- エラーが発生しやすいアクティビティや時間のかかるアクティビティを上位にランク付けする: エラーの原因を取り除き、解決までの時間を短縮することが最も有益です
- オートメーションを完了する計画を立てる: 自動化と、および自動化を更新するためのアクティブな計画を維持する
- オートメーションの機会に関する手動要件を調べる: 手動プロセスの自動化にに挑戦する
ストレージと分析
Analyzing Log Data with CloudWatch Logs Insights
Amazon CloudWatch Logs Insights Sample Queries
How do I analyze my Amazon S3 server access logs using Athena?
- サーバーアクセスログバケットの S3 ライフサイクルポリシーを作成します。ログファイルを定期的に削除するようにライフサイクルポリシーを設定します。そうすることで、Athena
が各クエリについて分析するデータ量が削減されます
How Do I Create a Lifecycle Policy for an S3 Bucket?
定期的にレビューを実施する
Using Amazon CloudWatch Dashboards
- メトリクスの傾向を調べる: メトリクス値と履歴値を比較して、調査が必要なものを示唆している可能性がある傾向があるかどうかを確認します。これには、レイテンシーの増加、プライマリビジネス関数の減少、失敗レスポンスの増加などがあります
- メトリクスの異常値/異常を検査する: 平均値または中央値は異常値を覆い隠すことがあります。期間中の最大値と最低値を調べ、極端なスコアの原因を調査します。これらの原因の排除を続行しながら、極端を徐々に低く定義していくことで、ワークロードパフォーマンスの一貫性を継続して向上させることができます
- 行動の急激な変化を探す: メトリクスの数量または方向性の突然の変更は、アプリケーションに変更があったこと、または追跡するためにさらなるメトリクスを追加する必要がある外部要因があることを示唆している可能性があります。
システムを通じたリクエストのエンドツーエンドのトレースをモニタリングする
What is AWS X-Ray?
Debugging with Amazon CloudWatch Synthetics and AWS X-Ray