【小ネタ】CloudFrontのビヘイビアの自動圧縮の設定値を一発で確認する

【小ネタ】CloudFrontのビヘイビアの自動圧縮の設定値を一発で確認する

Clock Icon2025.06.03

はじめに

皆様こんにちは、あかいけです。

最近コストアセスメントをする中で、
CloudFrontのビヘイビアの自動圧縮の設定値をまとめて確認したいことがありました。
その中で一気に確認するために作成したシェルスクリプトを共有します。

モチベーション

自動圧縮に限りませんが、ビヘイビアの細かい設定をマネジメントコンソールから見たい場合、
以下流れで編集画面から設定値を確認する必要があります。

1.ディストリビューションを選択
スクリーンショット 2025-06-03 17.34.27

2.ビヘイビアを選択
スクリーンショット 2025-06-03 16.53.39

3.ビヘイビアの設定値を確認
スクリーンショット 2025-06-03 16.53.56

確認対象が一つだけであればいいですが、
もしディストリビューションが50個あって、その中にビヘイビアがそれぞれ5個あったら…?

ということで、ビヘイビアの設定値をまとめて確認したくなったわけです。

確認方法

確認方法は簡単で、以下のシェルスクリプトを実行するだけです。
内容はディストリビューションIDを全て取得して、それぞれの詳細情報から自動圧縮の設定項目を抽出しているだけです。
なお文字列の加工に jq を利用しているので、それだけ事前にインストールが必要です。

auto-compress-check.sh
#!/bin/bash
# 全てのCloudFrontディストリビューションIDを取得
distribution_ids=$(aws cloudfront list-distributions --query "DistributionList.Items[*].Id" --output text)

# 各ディストリビューションに対して処理
for dist_id in $distribution_ids; do
  echo "ディストリビューション ID: $dist_id"

  # ディストリビューションの設定を取得
  config=$(aws cloudfront get-distribution-config --id $dist_id)

  # デフォルトキャッシュビヘイビアの自動圧縮設定を確認
  default_compress=$(echo "$config" | jq -r '.DistributionConfig.DefaultCacheBehavior.Compress')
  echo "  デフォルトビヘイビア - 自動圧縮: $default_compress"

  # 追加のキャッシュビヘイビアがある場合、それらの自動圧縮設定も確認
  cache_behaviors=$(echo "$config" | jq -r '.DistributionConfig.CacheBehaviors.Items[]? | .PathPattern + ": " + (.Compress | tostring)')

  if [ -n "$cache_behaviors" ]; then
    echo "  追加のキャッシュビヘイビア:"
    echo "$cache_behaviors" | while read line; do
      echo "    $line"
    done
  else
    echo "  追加のキャッシュビヘイビア: なし"
  fi

  echo ""
done

出力イメージは以下の通りで、
ディストリビューションのビヘイビアごとに自動圧縮が有効なのか無効なのかを表示します。
「: false」となっているビヘイビアは、自動圧縮が無効です。

出力イメージ
ディストリビューション ID: E206FJW4K80LTB
  デフォルトビヘイビア - 自動圧縮: false
  追加のキャッシュビヘイビア: なし

ディストリビューション ID: E2TVA5AQ6KHX78
  デフォルトビヘイビア - 自動圧縮: false
  追加のキャッシュビヘイビア:
    /images/*: true
    /api/*: false

ディストリビューション ID: E34ZIB0R16TCYW
  デフォルトビヘイビア - 自動圧縮: false
  追加のキャッシュビヘイビア:
    /html/*: true
    /downloads/*: false
    /assets/*: true
    /videos/*: false

ディストリビューション ID: E1WBOF4NA4N3YC
  デフォルトビヘイビア - 自動圧縮: true
  追加のキャッシュビヘイビア:
    /css/*: true
    /js/*: true
    /fonts/*: true

ディストリビューション ID: ENGJNSFTQZAPB
  デフォルトビヘイビア - 自動圧縮: true
  追加のキャッシュビヘイビア: なし

さいごに

以上、CloudFront の ビヘイビア の自動圧縮の設定値をまとめて確認する方法でした。
年がら年中AWSを触っていたとしても使うタイミングはまずないと思いますが、
この記事がいつか誰かのお役に立てれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.