DNS ALIAS 非対応の外部 DNS でも実現できる APEXドメイン転送 AWS サーバレスソリューション(後編)

こんにちは、SCSKでテクニカルエスコートサービスを担当している兒玉です。

前回は検証用リダイレクト先ドメインのサイトを作成するところまででしたが、今回は目的であるAPEXドメイン側の設定を行います。

前編はこちら

APEXドメインの作成

今回は、いよいよAPEXドメインの仕組みを作成していきます。
前回紹介したアーキテクチャ図の左側になります。

東京リージョンでの証明書の発行

前編で発行した証明書ですが、CloudFrontで使用するために 米国東部(バージニア北部)(us-east-1) で発行していました。

一方、今回デプロイしようとしているAPEXドメインのALBは東京リージョン(ap-northeast-1) に作成予定です。

AWS Certificate Manager(ACM) にある証明書は同じリージョン内でないと使用出来ないため、今度は東京リージョンで発行する必要があります。
前編で行ったのと同様に、APEXドメイン名+サブドメイン名(ワイルドカード指定)、エクスポート無効、DNS検証としてリクエストを行います。秘密鍵のエクスポートを無効にすると無料なので、こういうケースでは助かりますね。

前編と同様に、DNS認証を行うのですが、設定すべきCNAME名、CNAME値のセットはドメインが同じ場合には同じ値になるようで、リクエスト後数分で証明書が「発行済み」となりました。
次のデプロイで使用するので、証明書のARNをコピーしてメモしておきます。

ap-northeast-1の証明書のステータス発行済み

 

APEXドメイン転送システムをデプロイ

デプロイに必要なファイルを準備します。

必要なファイルを zip 化したファイルのリンクです。

apex-domain-redirect-main-20260121-1.zip 
sha256: 6fedb6a407248b58e402a7378af68196823584270b7d55643ea16cc4e80cebb3

ファイルをダウンロードし、AWS CloudShellにアップロードして

CloudShellの画面でアクションからファイルアップロード

zipファイルを展開して、フォルダを移動します。

~ $ unzip apex-domain-redirect-main-20260121.zip -d ./apex-domain-redirect-main
Archive: apex-domain-redirect-main-20260121.zip
inflating: ./apex-domain-redirect-main/apex-domain-redirect-main.yaml 
inflating: ./apex-domain-redirect-main/deploy.sh 
inflating: ./apex-domain-redirect-main/README-jp.md 
inflating: ./apex-domain-redirect-main/PARAMETERS-jp.md 
~ $ cd apex-domain-redirect-main
apex-domain-redirect-main $

PARAMETERS-jp.md 、README-jp.md などを参考に、パラメータと共に、 deploy.sh を実行します。

  • –stack-name :  作成するCloudFormationスタックのスタック名
  • –apex-domain : 作成するAPEXドメイン名
  • –target-fqdn  : リダイレクト先となるドメインのFQDN
  • –certificate-arn : 先程メモした 証明書のARN
  • –prefix  : 作成するリソースにつくprefix
  • –cost-tag : 属性名”Cost” のタグの値
./deploy.sh --stack-name my-apex-redirect \
--apex-domain example.com \
--target-fqdn www.example.com \
--certificate-arn arn:aws:acm:ap-northeast-1:123456789012:certificate/abcd1234-ab12-cd34-ef56-abcdef123456 \
--prefix my-apex  \
--cost-tag my-project

10-15分程度でデプロイが完了します。

成功すると、以下のようなメッセージが出力されるので、指示に従って他社DNSにAPEXドメイン用の Aレコードを 2 つ 設定します。

他社DNSにレコードを登録した後しばらく待ちます。

通常は数分から数時間ですが、最大48時間程度かかることもあるようですので、気長に待ちましょう。

dig コマンドなどで、APEXドメインに対してDNSクエリを行い、デプロイ結果で表示されたAPEXドメインのAレコード2つが表示されれば OK です。

APEXドメイン転送動作の確認

Webブラウザから、 APEX ドメイン名を入力してアクセスします。

Lambda関数が生成したAPEXドメインのHTMLが表示されます。ブラウザのアドレス欄の左端が錠マークになっているので、 APEXドメインのHTTPS 接続に転送されていることがわかります。
APEXドメイン転送の動作や、転送しようとしているFQDNがわかりやすいように、わざと転送まで10秒待ちをいれていますが、実際のWebサイトでは即時転送に変更してください。

10秒後に前編で構築した検証用リダイレクト先のWebページに無事転送されました!

おわりに

いかがだったでしょうか?

DNS ALIAS非対応の他社DNSでも、APEXドメインへのアクセスをリダイレクトする処理をサーバレスに構築できることがお分かりいただけたと思います。

従来であれば、APEXドメインのトラフィックをリダイレクトするためだけにEC2でWebサーバーを構築し、OSやミドルウェアのパッチ適用などのメンテナンスを継続的に行う必要がありました。

しかし、このソリューションではCloudFormationテンプレートをデプロイするだけで、メンテナンスを極小化(Lambda関数のランタイム管理とWAFルールの調整程度)したサーバレス構成を実現できます。運用負荷の削減という点で大きな価値があるのではないでしょうか。

それでは、皆様も良いAPEXドメイン転送生活を。

タイトルとURLをコピーしました