CloudFrontのオリジン名を変更してみた

2024.06.10

こんにちは、岩城です。

CloudFrontのオリジン名を変更する機会がありましたので共有します。

オリジン名とオリジンドメインが一致するように管理している環境でしたが、オリジンを設定した後にオリジン名とオリジンドメインが一致していないことに気付きました。

変更方法を調べて初めて知ったのですが、オリジン名をマネジメントコンソールから変更することはできません。

本エントリでは、CLIを使って変更してみます。

やってみた

CloudShellを使って変更していきます。

最終的には以下のコマンドを使用して、ディストリビューションコンフィグ上のオリジン名を変更して読み込ませます。

$ aws cloudfront update-distribution --id <ディストリビューションID> --distribution-config file://<JSONで定義されたディストリビューションコンフィグのファイルパス> --if-match <ETag>

ディストリビューションコンフィグが必要となるので、以下のコマンドで取得し、適当なファイル名で保存しておきます。

$ aws cloudfront  get-distribution-config --id E1PMXF0FVADVQS --query 'DistributionConfig' > distribution.conf

ディストリビューションコンフィグ内のIdTargetOriginIdiwaki-alb-951445672.ap-northeast-1.elb.amazonaws.comから、

$ grep "iwaki-alb-951445672.ap-northeast-1.elb.amazonaws.com" distribution.conf 
"Id": "iwaki-alb-951445672.ap-northeast-1.elb.amazonaws.com",
"TargetOriginId": "iwaki-alb-951445672.ap-northeast-1.elb.amazonaws.com",

オリジンドメインであるorigin-alb-951445672.ap-northeast-1.elb.amazonaws.comに変更します。

$ sed -i 's/iwaki-alb-951445672.ap-northeast-1.elb.amazonaws.com/origin-alb-951445672.ap-northeast-1.elb.amazonaws.com/g' distribution.conf

この場合、Id TargetOriginId DomainNameが一緒であれば良いです。

$ grep "origin-alb-951445672.ap-northeast-1.elb.amazonaws.com" distribution.conf 
"Id": "origin-alb-951445672.ap-northeast-1.elb.amazonaws.com",
"DomainName": "origin-alb-951445672.ap-northeast-1.elb.amazonaws.com",
"TargetOriginId": "origin-alb-951445672.ap-northeast-1.elb.amazonaws.com",

次に、以下コマンドで変更するディストリビューションのETagを確認しておきます。

$ aws cloudfront  get-distribution-config --id E1PMXF0FVADVQS --query 'ETag'
"E2B0J3MU5WMGRO"

以上で準備が整いましたので、以下コマンドでオリジン名を変更します。

$ aws cloudfront update-distribution --id E1PMXF0FVADVQS --distribution-config file://distribution.conf --if-match E12RT4B4EIIRE1

オリジン名が変更され、オリジン名がオリジンドメインと一致しました。

おわりに

本エントリが、どなたかのお役に立てれば幸いです。