1.はじめに
負荷テストを行うためにJMeterを使用し、Webアプリケーションに対して性能試験と耐久性試験を実施しました。テストの結果を分析するために、CloudWatchのメトリクスを利用しましたが、データ保持期間の制約により、1分間隔で収集されたメトリクスの分析ができなくなりました。
2.保持期間の制約について
AWS CloudWatchのメトリクスデータの保持期間には制約があります。AWSの公式サイトに、以下のような保持期間が設定されていると記載があります。
60秒未満のデータポイント: 3時間
1分間隔のデータポイント: 15日間
5分間隔のデータポイント: 63日間
1時間間隔のデータポイント: 15か月間
このため、1分間隔のデータポイントは15日間のみ保存され、その後はデータがロールアップされてしまいます。これにより、保持期間を超えたデータポイントは失われてしまいます。
実際に、CloudWatchのメトリクスを見てみると以下の通り、1分間隔のデータポイントのメトリクスグラフは15日間までしか表示できません。
3.保持期間の制約を考慮してやるべきだったこと
①CSV形式のファイルダウンロード
CloudWatchのコンソール画面から、データ保持期間内に定期的にダウンロードを行い、必要なデータが失われないようにします。特に長期間の負荷試験では、データ保持期間を超えないよう、エクスポートスケジュールを設定し定期的にダウンロードすれば、必要なデータは保持できます。
以下の通り、アクション→.CSV形式でダウンロードを押下します。
出力されたCSVファイルに時間ごとのデータポイント値が記載されています。
②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メトリクスを用いた分析を行う方の参考になれば幸いです。