最終形
これからやってみること
S3 + CloudFront + Route53 の組み合わせで静的 Webページ を配信するのは、aws のベストプラクティスの中でも「横綱」と言われています。私個人の Webページ をこのスタイルで配信してみましたので、その手順をご紹介します。
何がうれしいのか
- S3 と CloudFront はともに極めて高い可用性を持つサービスであるため、安心してWebページの配信を任せられる
- すべてマネージドサービスなので運用、保守はすべて aws で対応してもらえる
- Certificate Manager により面倒な SSL/TLS証明書 の取得と更新を自動で対応してもらえる
- 個人の Webページ であれば月額数十円で運用できる
前提条件
- S3、CloudFront の操作が可能な aws アカウントを所持している
- 独自ドメインを所持し Route53 などの「権威DNS」でホストしている
話は少しズレますが、私は以前 (2017年)、レンタルサーバからWebページを配信しておりまして、DNS もレンタルサーバの機能を使っていました。当時はこの DNS を用いて S3 + CloudFront によるWeb配信にチャレンジしたのですが、レンタルサーバの機能では必要な設定ができませんでした (S3 をエンドポイントにするところまでは対応可能だったが Certificate Manager の設定で必要な DNS 検証ができなかった)。
そこでレンタルサーバ運営会社で取得したドメインを aws へ移管し、Route53 によるDNS管理をはじめるようになりました。
Route53 はいわゆる「権威DNS」なのでドメイン管理で必要な設定はすべて実施できます。SLA は100%と言われており、繰り返し起こるドメイン乗っ取りの恐怖から解放され、しかも月額 0.5USD ほどで運用できてしまうので、aws らしい、とても高価値なサービスだと思っています。
公式手順
この公式手順の中にある「OAIによってアクセスが制限されているオリジンとして REST API エンドポイントを使用する」方式で実装を進めました。つまり、S3 のパブリックアクセスを行うことなく CloudFront に対してのみアクセスを可能とする、とてもセキュアなデータアクセス方式を採用しています。
動作確認
代替ドメイン名 (tms.demoru.net) で Webページが表示できれば OK
https://tms.demoru.net だけでなく、http://tms.demoru.net でアクセスすると https://tms.demoru.net にリダイレクトされるので確認しておきましょう。
成果物
組織
おまけ ドメインが expired したらどうなるのか
今回 tmstmp.com で配信していたページを tms.demoru.net に移したのは tmstmp.com が 2022年2月15日でドメインの有効期限を迎えるので、このドメインを打ち切りにしようとしたためでした。
さて、com ドメインが expired したらどうなるのか?
aws からはメールで以下の「重要な日付」が通知されています。
2022年2月15日:ドメインは一時停止され、インターネットで利用できなくなります
2022年2月15日-2022年3月30日:標準料金で登録を更新できます。
2022年3月31日:ドメインがシステムから削除されます。
2022年3月31日-2022年4月30日:ドメインの登録を復元できます。ドメイン登録を復元するための価格は、トップレベルドメイン(TLD)によって異なります。詳細については、AWSRoute53の料金をご覧ください。
2022年5月5日:レジストリによっては、この日付以降、誰でもこのドメインを登録できる場合があります。
なかなか経験できないイベントなので、どのタイミングで利用できなくなるのか確認してみました。事前の予想は、国際標準時の 2/16 0:00 または太平洋時の 2/16 0:00 以降に expires すると考えていました。日本時間で言うと 2/16 9:00 または 2/16 17:00 以降ということになります。
結果は、2/16 の 23時過ぎにブラウザからの閲覧ができなくなりました。aws より 23:04 に「Registration for tmstmp.com has expired」というメールが来ていましたので、このタイミングで expires したものと思われます。このメールにはドメインの利用を継続するためのリンクと、カスタマーサポートへ問い合わせるためのリンクが添付されていました。
あらためて、ありがとう、さようなら tmstmp.com
さくらインターネットのレンタルサーバでホームページ配信やメールサービスを行ったり、aws へ移管後は S3 からのホームページ配信や、SES を用いたメール配信、EC2 を用いたサービスの ELBエンドポイントをポイントしたり、Google Workspace の独自ドメイン利用、各種証明書の取得や更新のための DNS 検証など様々なシーンで役に立ってくれました。
Route53 のホストゾーンと、CloudFront のディストリビューション、静的ページを配置していたバケットは削除しておきます。