2019年5月1日より新元号になる、との正式報道がありました。
http://news.tbs.co.jp/newseye/tbs_newseye3234010.html
平成元年生まれの私としては、非常にインパクトのあるニュースです。そこで、名残惜しい平成との別れを見守るため、新元号までのカウントダウンページを作ってみました。
平成カウントダウン
https://heisei.today/
ただただカウントダウンするだけですが、最近では静的ページでもSSL化することが一般化しつつあるので、勉強がてらSSL対応のページをAWSをフル活用して作成してみました。
今回は S3 + CloudFront + Route53 + ACM(AWS Cetificate Manager) を利用しています。
手順としては
- S3に静的サイトを用意する
- 独自ドメインで公開する
- SSL対応させる
- リダイレクト設定しておく
となります。
S3に静的サイトを用意する
静的ページは、ここに書かれている手順で進めればセットアップできます。
docs.aws.amazon.com
手順は5ステップです。
- ステップ 1: ドメインを作成する
- ステップ 2: バケットを作成および設定し、データをアップロードする
- ステップ 3: Amazon Route 53 ホストゾーンを作成、設定する
- ステップ 4: DNS プロバイダを Amazon Route 53 に切り替える
- ステップ 5: テストする
ステップ 1: ドメインを作成する
今回はお名前.comで作成しました。
Route53から作成もできるので好きなところで用意しましょう。
ステップ 2: バケットを作成および設定し、データをアップロードする
バケット名はアクセスする際のドメイン名と同じ設定にする必要があります。
- バケット名:heisei.today
- リージョン:Tokyo
としました。
次に、静的ファイルをバケット直下にアップロードします。
アップロードが完了すると、このバケットのオブジェクトに誰でもアクセスできるよう、アクセス許可を設定します。
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::heisei.today/*"]
}
]
}
ウェブサイトのホスティングを有効にし、インデックスページを設定します。
ステップ 3: Amazon Route 53 ホストゾーンを作成、設定する
ホストゾーンを作成し、ネームサーバ情報をメモしておきます。
作成したS3バケットに対応するエイリアスレコードを作成します。
Create Record Set からエイリアス(Aレコード)を作成します。
この時、Alias Target に、作成したS3のエンドポイントが表示されるのでそれを選択します。
ステップ 4: DNS プロバイダを Amazon Route 53 に切り替える
私はお名前.comでドメインを取得したので、管理画面にログインし、ネームサーバを変更します。
さきほどメモしておいたネームサーバ情報を入力します。
作成したドメインにアクセスし、アップロードしたファイルが表示できれば準備完了です。
SSL対応する
続いて、上記で公開したサイトをSSL化していきます。
ACM(AWS Cetificate Manager)でSSL証明書を発行し、それをCloudFrontを利用して紐付けます。
その後、Route53でS3のバケットを参照していたものを、CloudFrontを参照するよう変更します。
この手順に関しては、こちらの記事に詳細が書かれているので、この通りに進めます。
これにて準備完了。
それではSSL化したページ( https://heisei.today )にアクセスしてみます。
むむ、Access Denied になってしまっています。
CloudFrontの設定を変更する
S3バケットに対して、CloudFrontからのアクセスのみ受け付けるように設定していきます。
参考:[CloudFront + S3]特定バケットに特定ディストリビューションのみからアクセスできるよう設定する | DevelopersIO
作成したCloudFrontのディストリビューションの設定を変更します。
Restric Bucket Access が No になっていたので、こちらを Yes に変更します。
設定の反映には最大15分ほど時間がかかるようです。
反映されているかどうか、S3のバケットポリシーを確認します。
CloudFrontのオリジンアクセスアイデンティティ設定が付与されていれば設定完了です。
ついでに、リダイレクト設定もしておきます。
HTTPでアクセスされた時に、HTTPSにリダイレクトするよう設定変更します。
CloudFrontのディストリビューションを開き、Behaviosrのタブを選択します。
そして、Viewer Protocol PolicyをRedirect HTTP to HTTPSにして保存すれば完了です。
これで http://heisei.today にアクセスした時に、 https://heisei.today にリダイレクトされていればOKです。
ちなみに、今回の S3 + CloudFront + Route53 という構成は、「AWSにおける静的コンテンツ配信パターンカタログ(アンチパターン含む)」で最高の構成であると紹介されています。
アクセスが急増しても、cloudFrontを挟んでいるため、高いパフォーマンスが発揮でき、オリジンに負荷をかけることが無いから、だそうです。
おわりに
記事中に紹介したページ以外にも下記サイトも参考にさせていただきました。
- Amazon S3でSSL対応の静的ウェブサイトを公開する | マジメナラボ - majimena Inc.
- CloudFrontでS3のウェブサイトをSSL化する - Qiita
- S3+CloudFront+ACM(AWS Certificate Manager)でHTTPS静的サイトを作ってみた - Qiita
カウントダウンと言えば、ジャニーズのライブが有名だったりしますが、
平成にちなんで名付けられた「Hey! Say! JUMP」はどうなってしまうのでしょうね。
平成カウントダウン
https://heisei.today/
Amazon Web Services完全ソリューションガイド
- 作者: 大澤文孝,川上明久,大嶋和幸
- 出版社/メーカー: 日経BP
- 発売日: 2016/12/22
- メディア: 単行本
- この商品を含むブログを見る
Amazon Web Services実践入門 (WEB+DB PRESS plus)
- 作者: 舘岡守,今井智明,永淵恭子,間瀬哲也,三浦悟,柳瀬任章
- 出版社/メーカー: 技術評論社
- 発売日: 2015/11/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
Amazon Web Services パターン別構築・運用ガイド 一番大切な知識と技術が身につく
- 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/03/25
- メディア: 単行本
- この商品を含むブログ (2件) を見る