cwfreak.net のドメインだけを維持していて、年明けに有効期限が切れるので流してしまおうかと考えていましたが、Amazon CloudFrontを使ってURLリダイレクトの実験に使ってみるという名目でとりあえず延長することにしました。
CloudFront Functionsを使ってリダイレクトします。CloudFrontだけではリダイレクトできないようなので、ダミーでS3バケットを用意します。以下、自分用覚書。
1. Route 53 にホストゾーン作成
cwfreak.netドメインはお名前.com に登録されているので、お名前.com側のネームサーバーをRoute 53のネームサーバーに変更します。
Route53 – ホストゾーン – 「ホストゾーンの作成」
ドメイン名: cwfreak.net ← ドメイン名と一致必要
タイプ:パブリックホストゾーン
作成されたホストゾーンにNSレコードが4つ(.com, .net, .org, .uk)登録されてるので、これをお名前.com側のネームサーバーに設定します。
2. ACMでSSL/TLS証明書生成
Certificate Manager – 「リクエスト」
証明書のタイプ:パブリック証明書をリクエスト
完全修飾ドメイン名: cwfreak.net ← ドメイン名と一致必要
以下は、デフォルトでOK
3. ダミーのオリジンS3バケットを用意
S3を開き、以下のバケットを作って適当なファイルをアップロードします。
リージョン:バージニア北部 us-east-1
バケット名:cwfreak.net
アップロードファイル:index.html (中身は 「It Works! 」とプレーンテキストでOK)
4. CloudFrontのオリジンアクセスコントロール(OAC)作成
CloudFront – セキュリティ – オリジンアクセスを開き、「コントロール設定を作成」
名前:cloudfront-cwfreak-net-redirect-oac
署名動作:署名リクエスト(推奨)
オリジンタイプ:S3
5. CloudFrontのディストリビューション作成
CloudFront – ディストリビューション – 「ディストリビューションを作成」
Origin Domain: cwfreak.net.s3.us-east-1.amazonaws.com ← 3. S3で作成
Alternative domain name (CNAMEs) – optional: cwfreak.net ← ドメイン名と一致必要
名前:cwfreak.net.s3.us-east-1.amazonaws.com ← 3. S3で作成
オリジンアクセス: Origin access control settings (recommended)
Origin access control: cloudfront-cwfreak-net-redirect-oac ← 4. OACで作成
Custom SSL certificate – optional: cwfreak.net (xxxxxxxxx) ← 2. ACMで作成
….
ウェブアプリケーションファイアウォール (WAF):セキュリティ保護を有効にしないでください
…
設定 – 料金クラス:北米と欧州のみを使用
「ディストリビューションを作成」
6. CloudFront Functionsの関数作成(リダイレクト設定)
CloudFront – 関数 – 「関数を作成」
名前:cloudfront-s3-cwfreak-net-function
Runtime: cloudfront-js-2.0
関数コード:
function handler(event) { const uri = event.request.uri const newUri = getNewUri(uri) return { statusCode: 301, statusDescription: 'Moved Permanently', headers: { location: { value: newUri } }, } } function getNewUri(uri) { if (uri === '/') { return 'https://web.ji0vwl.net/cw_freak_net.html' } return 'https://ji0vwl.net' }
「変更を保存」→「発行(Unpublished)」
関連付けられているディストリビューション
「関連付けを追加」
ディストリビューション: XXXXXXXXXX cwfreak.net ← 5. CloudFrontディストリビューションで作成
イベントタイプ:Viewer Request
キャッシュビヘイビア:デフォルト
「関連付けを追加」→ 「関数を発行」
7. Route 53 にAレコード(エイリアス)追加
Route53 – ホストゾーン – cwfreak.net – 「レコードの作成」
レコード名:「空欄」.cwfreak.net
レコードタイプ:A – IPv4 アドレスと一部のAWSリソースにトラフィックをルーティングします。
エイリアス:ON
トラフィックのルーティング先:CloudFrontディストリビューションへのエイリアス
リージョン:米国東部(バージニア北部) ← 変更不可
ディストリビューション:cwfreak.net(xxxxxxx.cloudfront.net) ← CloudFrontディストリビューションのAlternative domain name (CNAMEs)
ZoneApex(xxxx.cwfrea.netのxxxxがないもの = cwfreak.net)はCNAMEを登録できないのですが、Route 53のエイリアスを使うことで対応ができます。
これで、https://cwfreak.net/ にアクセスするとCW Freakのページに、ルート以外(https://cwfreak.net/aaaa.html)だと当サイトにリダイレクトされるようになりました。