【小ネタ】CloudFrontのビヘイビアの自動圧縮の設定値を一発で確認する
はじめに
皆様こんにちは、あかいけです。
最近コストアセスメントをする中で、
CloudFrontのビヘイビアの自動圧縮の設定値をまとめて確認したいことがありました。
その中で一気に確認するために作成したシェルスクリプトを共有します。
モチベーション
自動圧縮に限りませんが、ビヘイビアの細かい設定をマネジメントコンソールから見たい場合、
以下流れで編集画面から設定値を確認する必要があります。
1.ディストリビューションを選択
2.ビヘイビアを選択
3.ビヘイビアの設定値を確認
確認対象が一つだけであればいいですが、
もしディストリビューションが50個あって、その中にビヘイビアがそれぞれ5個あったら…?
ということで、ビヘイビアの設定値をまとめて確認したくなったわけです。
確認方法
確認方法は簡単で、以下のシェルスクリプトを実行するだけです。
内容はディストリビューションIDを全て取得して、それぞれの詳細情報から自動圧縮の設定項目を抽出しているだけです。
なお文字列の加工に jq を利用しているので、それだけ事前にインストールが必要です。
#!/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を触っていたとしても使うタイミングはまずないと思いますが、
この記事がいつか誰かのお役に立てれば幸いです。