旧ドメインからアクセスがあった場合に新ドメインにリダイレクトさせる場合は、必ずWebサーバが必要でした。S3のstatic website hostingを使い、CloudFront,Route53の設定をすれば、
超低コストで実現可能となります。ちなみに簡単な静的ページでは結構向いているので複雑なリダイレクトであればNginxやALBのリスナールールで処理するのがベストですね。


■Goal

(例)

https://adachin.me/download.html

https://blog.adachin.me/download.html


■S3

1.S3にadachin.meバケットを作成する

2.プロパティ > Static website hostingを選択 > インデックスドキュメントをindex.htmlに指定して保存

3.アクセス制限 > バケットポリシーを以下のJSONを使用して保存

参考:https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/static-website-hosting.html

4.概要からローカルで空ファイルdownload.htmlをtouchコマンドで作成してアップロード

5.download.html > プロパティ > メタデータの追加 > Website-Redirect-Locationで、
https://blog.adachin.me/download.html (上記の新URLを指定する)

6.S3のエンドポイントでdownload.htmlにアクセスするとリダイレクトされていることを確認する


■CloudFront

1.該当ドメインの証明書をACMで事前に取得する

2.Create Distribution > Web から新規作成画面に入り、Create Distributionをクリックしたら数分待つ
・Origin Domain Name : 上記で確認したS3のWebエンドポイント
・Alternate Domain Names (CNAMEs) : ドメイン名(今回は adachin.me)
・SSL Certificate : Custom SSL Certificate からACMの証明書を選択

3.CloudFrontで発行されたDomain Nameでアクセスして問題ないことを確認する


■Route53

1.Aliasレコードを作成し、CloudFrontのDomain Nameを指定する

2.反映されたか確認


■まとめ

Nginxやらでリダイレクト設定を書かなくて済みますね。S3にコンテンツは残り続けるので、間違えて消してしまうと危険なのでGitHubでコード管理してCDデプロイするのが良さそうです。

※追記

S3でIP制限をするには以下のようにポリシーを変更すればOK

カテゴリー: AWS

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください