CloudFrontのキャッシュヒット率をCloudWatchアラームで通知させる方法

CloudFrontの特定のディストリビューションで、キャッシュヒット率がある一定以下になったときにCloudWatchアラームで通知する方法について回答しました。
2020.12.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

CloudFrontの特定のディストリビューションで、キャッシュヒット率がn%以下になるとアラート通知する。のような、監視を設定する方法はありますか?

キャッシュヒット率の値は、CloudFrontのWebコンソール上にあるReports&analytics>Cache statisticsで確認できますが、CloudWatchにはメトリクスは存在しない為、もし可能であればやり方を教えて頂きたいです。

どう対応すればいいの?

CloudFrontのデフォルトではメトリクスは存在しませんが、追加のメトリクスを有効にすることでキャッシュヒット率(CacheHitRate)をメトリクスで取得できるようになります

追加のメトリクスを有効にするには

  1. AWS マネジメントコンソールにサインインし、CloudFront コンソールで [モニタリング] ページを開きます。

  2. 追加のメトリクスを有効にするディストリビューションを選択し、[View distribution metrics (ディストリビューションメトリクスの表示)] を選択します。

  3. [Enable additional metrics (追加のメトリクスの有効化)] を選択します。

  4. [Enable additional metrics (追加のメトリクスの有効化)] ウィンドウで、[Enable (有効化)] を選択し、[Save (保存)] を選択します。

上記の手順で追加のメトリクスを有効化すると、CloudWatchメトリクスにCacheHitRateのメトリクスが出力されるようになるので、CloudWatchアラームが利用できます。

これでキャッシュヒット率(CacheHitRate)を監視したい値でアラームを設定することが可能になりました。

追加のメトリクスを有効化するとわずかではありますが、CloudWatchの料金が追加で必要となりますので、料金ページを確認しておきましょう。