1
2

CloudWatch Metrics の保存期間の制約で困った件

Last updated at Posted at 2024-09-13

1.はじめに

負荷テストを行うためにJMeterを使用し、Webアプリケーションに対して性能試験と耐久性試験を実施しました。テストの結果を分析するために、CloudWatchのメトリクスを利用しましたが、データ保持期間の制約により、1分間隔で収集されたメトリクスの分析ができなくなりました。

2.保持期間の制約について

AWS CloudWatchのメトリクスデータの保持期間には制約があります。AWSの公式サイトに、以下のような保持期間が設定されていると記載があります。

60秒未満のデータポイント: 3時間
1分間隔のデータポイント: 15日間
5分間隔のデータポイント: 63日間
1時間間隔のデータポイント: 15か月間

このため、1分間隔のデータポイントは15日間のみ保存され、その後はデータがロールアップされてしまいます。これにより、保持期間を超えたデータポイントは失われてしまいます。

実際に、CloudWatchのメトリクスを見てみると以下の通り、1分間隔のデータポイントのメトリクスグラフは15日間までしか表示できません。
CloudWatch.png

3.保持期間の制約を考慮してやるべきだったこと

①CSV形式のファイルダウンロード

CloudWatchのコンソール画面から、データ保持期間内に定期的にダウンロードを行い、必要なデータが失われないようにします。特に長期間の負荷試験では、データ保持期間を超えないよう、エクスポートスケジュールを設定し定期的にダウンロードすれば、必要なデータは保持できます。

以下の通り、アクション→.CSV形式でダウンロードを押下します。

CloudWatch.png

出力されたCSVファイルに時間ごとのデータポイント値が記載されています。
CloudWatch②.png

②CloudWatch Metric Streamsを利用する。

CloudWatch Metric Streamsを利用すると、CloudWatchのメトリクスデータをKinesis Data Firehoseを使って、様々な宛先に送信することが可能です。
以下のようなことができます:

・Amazon S3 にデータをストリーミングし、長期的な保存やアーカイブを行う。
・Amazon Elasticsearch Service (ES) や Redshift にデータを流し込み、独自の分析やダッシュボードの作成を実施する。
・AWS Lambda を利用して、データの集計や加工を自動で行う。
・外部のSaaSサービス や HTTPエンドポイント にデータを送信し、AWS以外のシステムとの統合管理を実現する。

CloudWatch Metric Streamsを利用すると保存期間の制約から解放され、より柔軟で効率的なデータ管理が可能になります。
実装までは行っていないのですが、要件でメトリクスを監査目的で長期間保存するなどがあった場合、CloudWatch Metric Streamsを利用すれば解決できそうです。

4.まとめ

CloudWatchのメトリクスデータの保持制限により、短期間で確認したい出力間隔のデータが失われましたが、事前にCSVダウンロードを行うことやCloudWatch Metric Streamsを活用することで、長期間のデータ保存や柔軟な管理が実現できます。
CloudWatchメトリクスを用いた分析を行う方の参考になれば幸いです。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2