[無料] AWS EC2 + RDS + Flask でWebアプリを作り HTTPS 化する [その7: ドメイン取得]

## トップレベルドメイン

[その6](https://qiita.com/nozomiyamada/items/4a0686485835bb0ff7ed) で一応Webアプリとして動作させることは可能になったのですが、IPアドレス剥き出しの http://xx.xxx.xxx.xx じゃ見た目があまりにもカッコ悪いので、独自ドメインを取得してそれを使うことにします。

日本語のサイトだと [お名前.com](https://www.onamae.com/) なんかが有名で新ドメインで安いものもあるのですが、[freenom](https://www.freenom.com/) を使えば完全無料で取得可能なので、今回をこちらを使います。

ちなみになぜ無料になるかというと、ドメインの末端部分であるトップレベルドメインには

- 「分野別トップレベルドメイン (generic top-level domain, gTLD)」  `.com` や `.net` 
- 「国別コードトップレベルドメイン (country code top-level domain, ccTLD)」 `.jp` や `.uk`

などがあり、この各国に割り当てられた国別コードトップレベルドメインは、普通は国内の個人や事業者しかその国のドメインを使えません。しかし一部の貧しい国はこのドメインの管理権を売ったり （ツバルの `.tv` が有名）、国外にも無料開放して広告収入で稼いだりしています。現在無料で使える国別ドメインは5つあり、4つがアフリカの国です。

|ドメイン|国名||
|:-:|:-:|:-:|
|.tk| トケラウ諸島 | 太平洋上にあるニュージランドの自治領 |
|.ml| マリ共和国 | 西アフリカ、サハラ砂漠上の国 |
|.ga| ガボン共和国 | 中央アジア、大西洋に面する赤道上の国 |
|.gq| 赤道ギニア | ガボンの北に位置する国 |
|.cf| 中央アフリカ共和国 | アフリカのほぼ真ん中に位置する内陸国 |


`.tk` は登録者数が圧倒的で（2位の中国 `.cn` の2倍以上とも）あり、世界で最も危険なドメインとも悪名高いですが、それはこのドメインを取得すること自体が危険なのではなく、無料で取得できるから悪用されやすいというだけの話です。法人でこのドメインを使っていたら何か怪しいですが、個人でウェブサイトを運営する分には（見た目はさておき）あまり問題は無いのではないかと思っています。

これらの無料ドメインは WHOIS情報 (そのドメインを誰が使っているか、要するに登記簿みたいなもの) に自分を登録できません (代わりに freenom のEメールが登録されている)。ウェブサイトをHTTPS化する時にはSSL証明書を発行しなければなりませんが、この申請は普通は有料かつ WHOIS情報が必要です。審査を行う外部機関もいくつかあるのですが、有名どころではこれらの無料ドメインはおそらく通らないと思います。ではどうするかというと、WHOISなしでもできちゃうんです。そう、AWSならね。なんと無料のSSL証明書発行サービスがあるので、それを後々活用したいと思います。

また、最初に無料でやると謳っておきながら何なんですが、**EC2に独自ドメインを割り当てると料金がかかります**。毎月0.5+税金0.05=0.55$です。2020年12月現在円高が進行しているので、57円/月ほどで済みますが、どうしてもびた一文出したくない無課金勢の方はここで諦めて、生のIPアドレスをそのまま使うことを容認下さい。ちなみにこの料金は「そのドメインとIPアドレスを対応づけるDNSサービスの利用料」であり、「ドメイン取得料」とは別物です（ドメイン取得料は上記の通りタダ）。

## freenom でドメイン取得

[freenom](https://www.freenom.com/) に行きます。おかしなことに、このサイトのトップページには **Sign in** があるのに **Sign up** がなく、まず欲しいドメインを探し、それを登録する際にアカウントもついでに新規作成するという流れになっています。ですので早速適当な文字列を検索します。
![Screen Shot 2020-12-14 at 12.28.02 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/e5cee39c-0100-d13f-de28-605bfcb91e58.png)
こんな感じで結果が出てきます。最初の5つが無料ドメインですが、検索する文字列によっては既に使われていたり、無料にはなりません。
![Screen Shot 2020-12-14 at 12.31.38 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/f2603147-4a1d-74b3-8ff9-22ff7fbb989f.png)
このように FREE となっていればOKです。ということでこの `hogehoge.ga` を取得することにします。**Get it now!** -> **Checkout** と進みます。
![Screen Shot 2020-12-14 at 12.30.20 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/3e6b2743-64c7-f3c1-3143-6205c7f966bb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/709c0867-2585-fa48-b114-4678000cd615.png)
ここで右の **Period** を **12 Months @ free** にします。真ん中は後で設定します。
![Screen Shot 2020-12-14 at 12.35.44 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/e7e83d40-dfd6-a7d3-89c4-7fa2ba767588.png)
左下にEメールを入力し、メールがきたら認証をします。
![Screen Shot 2020-12-14 at 12.37.49 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/b72d38fe-627c-a974-19cd-687f26eecb95.png)
必要事項を入力して登録します。
![Screen Shot 2020-12-14 at 12.41.43 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/e1fbe741-5331-6657-60d7-86297bd7ffe2.png)
登録された後は、トップ画面から Services > My Domains で確認できます。
![Screen Shot 2020-12-14 at 12.47.25 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/b4066eb8-389d-2b84-4789-365296548428.png)
この **Manage Domain** > **Management Tools** > **URL Forwarding** と進みます。
![Screen Shot 2020-12-14 at 12.51.03 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/dd4f68ae-85a1-1eec-ed8c-856baa60b37a.png)
ここで Flaskアプリを起動してある EC2インスタンスのIPアドレスを入れて、**Redirect** を選択し **Set URL** します。
![Screen Shot 2020-12-14 at 1.17.51 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/b6d7a3f4-1232-e65e-4595-a8976264d863.png)
ここで `http://hogehoge.ga` と入力してみると...
![Screen Shot 2020-12-14 at 1.38.43 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/d7b74648-480c-cf7c-220c-29cd2cd2f508.png)
![Screen Shot 2020-12-14 at 1.46.27 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/727634/ebb74435-a96a-3ba3-f9e2-fe167b95af98.png)
はい、EC2のWebアプリのページにたどり着きました。ただし、これは単にリダイレクトしているだけで、**剥き出しのIPアドレス**は結局変わってません。

ということで、[その8](https://qiita.com/nozomiyamada/items/007935e616f7d39577aa) でネームサーバーの設定をします。