LINEで送る
Pocket

旧ドメインからアクセスがあった場合に新ドメインにリダイレクトさせる場合は、
必ずWebサーバが必要でした。😤

が!しかし!

S3のstatic website hostingを使い、CloudFront,Route53の設定をすれば、
超低コストで実現可能となります!🤩ちなみに簡単な静的ページでは結構向いているので複雑なリダイレクトであれば
NginxやらH2Oで処理しましょう!のでちゃちゃっとブログしますっ!


■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やらでリダイレクト設定を書かなくて済む!
しかし複数設定がある場合は毎回空ファイル作って、
upして….コピペするのが結構ダルいと気づいた🤗
あと、S3にコンテンツは残り続けるので、間違えて消してしまうと死亡!!

※追記

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

 

参考:https://engineer.blog.lancers.jp/2017/07/aws_s3_redirect/

LINEで送る
Pocket

カテゴリー: AWS

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのMENTAなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなし中。

コメントを残す

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