はじめての無料ドメイン取得＆Route53でフェールオーバールーティングしてみた。超ざっくりまとめてみた。

今回、人生初のドメイン取得(無料ドメイン)をしてみました！
そして、取得したドメインは、Route53でAWS上のサーバにルーティングを行っています。
※Route53はAWSのDNS(Domain Name System)サービスです

また、ルーティング先のサーバに障害があった時に、Sorryページを表示させるようにセカンダリサーバにルーティングをする(フェールオーバールーティング)ということをしてみました。

構成図(完成形)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/f4f8bd8c-8af2-d8e7-4097-5f90cedd76b1.png)



細かい作業過程は割愛しますが環境構築で理解した基本構成の概要を自分の理解を深めるために、超ざっくりと基本要素をまとめます。

これを見れば、何の目的のために何を作るのか、一目で思い出せるはず！
初めてって、やっぱり楽しいですねー。みなさん頑張りましょう！
<img width="400" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/060c461f-b38f-f8cd-a485-b5ef73c8e7ca.png">

---

- 作図には [AWS 公式アイコンセット](https://aws.amazon.com/jp/architecture/icons/)を利用してます
- 全般的に概念的な説明のみとしています。
- 詳細な設定/オペレーションを知りたい方は、他サイトをご覧ください。
    - [この記事](https://zenn.dev/kuma2/articles/52717b1453329f)や、[この記事](https://qiita.com/Hiroaki_jr/items/e37e45280446c997b892)、あとは[クラスメソッドさんの記事](https://dev.classmethod.jp/articles/mesoko-r53-cdn/)に画面キャプチャ付きで細かく説明されてました！
 

超ざっくりまとめ
---

超ざっくりと説明すと、以下を行うだけです。
 1. ドメインを取得する
 2. Route53にホストゾーンを登録し、フェイルオーバールーティングを設定する
※ドメイン(example.tk) やそのサブドメイン (XXX.example.tk) のルーティングを登録

これだけで、さくっと作れてしまいます。

<img width="200" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/f64a3d3e-08bf-b0dc-7581-49a4f2de7bf9.png"><img width="200" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/5767d37d-a259-85da-39af-5f6a53175a16.png">

 0. 事前準備
---
記事の内容をRoute53にフォーカスするため、以下構成は既に作成されているものとします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/81e1752d-99bc-a0f3-c4b6-d3d42421d3bb.png)

S3には、障害発生時に表示する Sorryページ(html)を配置しておきます。
なお、S3に関する注意点としては

 - バケット名は取得するドメインのサブドメイン(e.g. XXX.example.tk)を設定すること
 - パブリックアクセスを許可しておくこと(『パブリックアクセスをすべてブロック』のチェックを外す)
 - 静的webサイトホスティングを有効にする
 - 公開用のhtmlファイル(Sorryページ)をS3にUploadする
 - バケットポリシーの設定を実施(Web公開用のS3に設置されたファイルに誰でも参照出来る状態とするため)

上記で、S3 の URLにアクセスするとSorryページが表示できるようになります。
※詳細な手順は、[ここ](https://zenn.dev/kuma2/articles/52717b1453329f#4\)%E9%9D%99%E7%9A%84%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92s3%E3%81%8B%E3%82%89%E8%A6%8B%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B(%E3%83%95%E3%82%A7%E3%82%A4%E3%83%AB%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC))に分かりやすく書かれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/3bea4aef-52e9-1f5b-b84c-b9544dbe7656.png)





 1. ドメインを取得する
---
今回は、freenomというサービスで無料で作成しました。
【URL】https://www.freenom.com
<img width="400" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/ff568f04-cb66-7584-e4ee-4a2dadd69784.png">

freenomでのドメイン取得は、[この記事](https://chinpui.net/?p=582)が参考になります。
 ※ドメイン取得は、記事を読まなくてもわかるくらいシンプルです

 2. Route53にホストゾーンを登録し、フェイルオーバールーティングを設定する
---
ホストゾーンは、example.com やそのサブドメイン(acme.example.com や zenith.example.com)へのルーティング情報(レコード)を登録する場所です。
以下のような情報を登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/1fc0e29a-8585-b291-f48b-9280aa5b896e.png)

上記登録レコードに関する補足

| タイプ | 説明 |
|:---:|:---|
| NS | ネームサーバーが書かれているレコード |
| SOA | このサーバを管理する情報が書かれているレコード<BR>詳細は[ここ](https://www.atmarkit.co.jp/fnetwork/dnstips/014.html)を参照 |
| A | Aレコードとして、今回はフェールオーバールーティングを設定<BR>xxx.example.tkのデフォルトのルーティング先であるプライマリ(今回はELBのホスト名)と、プライマリのヘルスチェックが失敗した時にルーティングするセカンダリ(今回はS3)を記載 |
※NS、SOAレコードはホストゾーン作成時に自動的に作成されます


なお、ネームサーバの情報は freenom にも反映を行い、同じネームサーバを使用するようにしておく必要があります。
<img width="600" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/1ca83611-685d-37bd-1e79-ec28da7584ee.png">

**freenomで上記設定が反映されるのに時間がかかることがあるようです。(私の場合は1時間程度かかりました)**

これで、外部(freenom)で登録したドメイン名を使用しての Route53による名前解決＆ヘルスチェック失敗時のSorryページ表示ができるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/f4f8bd8c-8af2-d8e7-4097-5f90cedd76b1.png)



さいごに
---
この記事はAWS初学者を導く体系的な動画学習サービス[「AWS CloudTech」](https://aws-cloud-tech.com/)の課題カリキュラムで作成しました。

このサービスは、テンポの良い/わかりやすい動画説明をもとに、気軽に実践を積み、自分の血肉とできるオンラインスクールです。
コミュニティも存在し、Slackで会員通しの情報交換/質問も気楽にできます。
<img width="100" alt="qiita-square" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/8889d9eb-2c72-293d-fda8-73dbd95eb1ab.png">

書籍を購入するような値段で学習ができ、とてもお得です。(個人的な感想です)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038334/1b330d17-6e3f-50ab-d6f1-2a96300cd626.png)

では、また次回お会いしましょう！