■概要
業務の中で、次のような作業が発生しました。
・CloudFront Aに設定している代替ドメインを、CloudFront Bに付け替えたい。
・ただし、付け替え中に発生するサイトのダウンは避けたい。
この要件を満たすために、AssociateAlias APIを使用して付け替えを実施しました。
AssociateAlias APIは、ダウンタイム無しでCloudFrontの代替ドメインを、他のCloudFrontに付け替えることができるAPIです。
本記事では、その手順を紹介します
以下、公式ドキュメントに沿って作業しています。
事前作業
API実行に必要な権限があるか確認
APIを実行するIAMユーザに、以降元と移行先のCloudFrontの操作の権限が付与されているか確認します。
具体的には以下権限
cloudfront:GetDistribution
cloudfront:ListConflictingAliases
cloudfront:AssociateAlias
cloudfront:UpdateDistribution
移行するドメインのSSL証明書を発行する
ドメインのSSL証明書がAWS内に無いと、そもそもCloudFrontに代替ドメインを設定できないため
事前にAWS ACMで証明書を発行しておく必要があります。
CNAMEの登録
APIを実行するユーザがドメインの変更権限を持っているかを確認するためのレコードを、当該ドメインを管理しているDNSに追加します。
レコード名には「_. + ドメイン名」を
値には付け替え先となるcloudfrontのドメインを設定する
例えばsample.comというドメインだった場合は以下のようなレコードを追加する
_.sample.com 900 IN TXT d2wrpwcohquu42.cloudfront.net
# サブドメインの場合は_sub.sample.comになる
_sub.sample.com 900 IN TXT d2wrpwcohquu42.cloudfront.net
AWS CLIのインストール
AssociateAlias APIを使うにはAWS CLIをインストールします。
インストール方法は下記参照
切り替え実行
準備ができたらAPIを実行します。
例えば
・移行先のCloudFrontのIDが「A123BCDEFG」
・移行したいドメイン名が「sample.com」
だった場合は以下コマンドになります。
aws cloudfront associate-alias --target-distribution-id A123BCDEFG --alias sample.com
APIのドキュメントは以下です。