【ドメイン取得】お名前.comとawsでドメイン取得

#はじめに
現在開発しているアプリケーションでドメインの取得が必要になったので、備忘録としてここに記します。
個人アプリの開発や趣味でドメインを取得したい方は必見です。

##用意するもの
・クレジットカード
・AWSのアカウント
・AWSでデプロイ済みのEC２インスタンス

#ドメインの取得
①お名前.com (https://www.onamae.com/） で取得したいドメインの検索。
先に誰かが使用しているドメインは取得できないです。
また"_"や"!"といった特殊な記号は使用できないことがあります。
<img width="1439" alt="スクリーンショット 2019-09-23 23.41.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/f0f4d933-dbb9-6090-2cc6-8f55706d5ebb.png">



②希望のドメインを選択。
値段は時期によって変わるそうです。私は".com"を約800円/1年で購入しました。
<img width="1440" alt="スクリーンショット 2019-09-23 23.45.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/b40eae2b-9b1f-8fde-c621-8c6d74a945a6.png">



③ドメインを選択した後、右側の"お申し込みへ進む"をクリック。
<img width="1440" alt="スクリーンショット 2019-09-23 23.49.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/de2f7b30-d050-23d5-e22a-f5977720de11.png">


④その後、会員登録を済ませ、購入する。
会員登録した際に入力したメールアドレスに以下のメールが来たら、取得可能。
<img width="1440" alt="スクリーンショット 2019-09-24 20.12.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/51a269c5-9d22-a1fc-56ac-7373d5b2feb9.png">


#AWSの設定


①EC２インスタンスに記載されているElastic IP(静的IPアドレス)を確認。
メモ帳に保存しとくと便利かも？
![https___qiita-image-store.s3.amazonaws.com_0_186046_60f1f6a1-b06f-a91e-c2a8-5a92b75a626f.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/6d3d4ca0-35f1-fa32-94e7-baa652a755c1.jpeg)

②Route 53 を選択。
サービス一覧からRoute 53を選択する。

③一番左のDNS managementを選択。![https___qiita-image-store.s3.amazonaws.com_0_186046_4dd727cd-b317-16bd-c53f-7ce644e50072.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/93fd7c20-d6f2-5c11-08cc-bc9422e49164.jpeg)

④ホストゾーンの作成。
先ほど取得したドメインを入力。
TYPEはPublic Hostes Zoneを選択。
Createボタンを押して、ホストゾーンを作成。
![https___qiita-image-store.s3.amazonaws.com_0_186046_f20574b0-b03c-c479-f138-88b6d533b722.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/5ce81fcd-2c10-2fc9-1bcb-2b649d8caa64.jpeg)

⑤レコードセットの作成。
Value の所に先ほどの Elastic IP を入力。
Createボタンを押して、レコードセットを作成。
（nameの欄はサブドメインを設定する場合に使用する。）
![https___qiita-image-store.s3.amazonaws.com_0_186046_1936ebeb-60f2-da4e-87f7-179a74dd656a.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/20275073-c95a-32b8-fee3-722c1de9d032.jpeg)

⑥Aタイプのレコードが作成されたら無事完了！！！


#ネームサーバーの設定
再び、お名前.comに戻ってきます。

①ログインする。

②ドメインの設定からネームサーバーの変更へ。
<img width="1440" alt="スクリーンショット 2019-09-24 21.23.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/4df56b6d-98bd-7fcb-59c1-d7559b0b2d17.png">

③他のネームサーバーを利用を選択。
ネームサーバー情報を入力する欄に先ほどAWSで取得したNSタイプのレコード（４つ）を入力。
<img width="1438" alt="スクリーンショット 2019-09-24 21.30.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/9e9d43c1-55ce-b7f5-a7af-61320798babe.png">

④完了

#終わりに
ターミナルでdig xxxxx.xxx(←自分のドメイン名)と入力してみましょう。
AWSで取得したレコードが表示されていれば成功です！！

```ruby:ターミナル
$dig xxxxxxx.com

; <<>> DiG 9.10.6 <<>> xxxxxxx.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31076
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xxxxxx.com.			IN	A

;; ANSWER SECTION:
xxxxxxx.com.		278	IN	A	xx.xxx.xx.xxx
```


ドメインの浸透までに３０分くらいかかることもあるそうなので、一服したらhttp://xxxxx.xxx(←自分のドメイン名)　でWeb検索してみましょう！！
自分の作ったWebページが表示されているはずです！！！

記事を書くモチベーションになるので、もし参考になったらいいねお願いします:thumbsup_tone1::thumbsup_tone1:
参考：
https://aws.amazon.com/jp/getting-started/tutorials/get-a-domain/
https://hacknote.jp/archives/45099/
https://qiita.com/HitomiHoshisaki/items/7d7345eb67390f16fed4
https://dev.classmethod.jp/cloud/register-domains-route53/
https://avinton.com/academy/route53-dns-vhost/

#追記(2019/10/15)
IPアドレスでawsのec２インスタンスを使って、既にデプロイしているよ！！って方は必見です。
上記の手順取得したドメインにアクセスすると下記のようにnginxの初期画面に行くことがあります。
<img width="1437" alt="スクリーンショット 2019-10-15 19.23.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501638/04bb4b13-5ed9-08d4-addd-10549f699a6a.png">
この原因はnginx.confのサーバー指定がうまくいっていないためです。
人によってデプロイ時のサーバー指定のやり方が異なるので一例をあげておきます。

```ruby:/etc/nginx/conf.d/rails.conf
upstream app_server {
  # Unicornと連携させるための設定。
  server unix:/var/www/xxxxxx/shared/tmp/sockets/unicorn.sock;
}

# サーバの設定
server {
  # このプログラムが接続を受け付けるポート番号
  listen 80;
  # 接続を受け付けるリクエストURL ここに書いていないURLではアクセスできない
  server_name xxxx.com;

# 接続が来た際のrootディレクトリ
  root /var/www/xxxxxx/current/public;

# assetsファイル(CSSやJavaScriptのファイルなど)にアクセスが来た際に適用される設定
  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
    root   /var/www/xxxxxx/current/public;
  }

  try_files $uri/index.html $uri @unicorn;

  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
  }

  error_page 500 502 503 504 /500.html;

```

sever_nameのところをIPアドレスからドメインに変えてあげましょう。
そうしたらうまく行くはずです:frowning2::frowning2:
#おわりに
続き
AWSでSSL化する方法を伝授！！！
https://qiita.com/nakanishi03/items/3a514026acc7abe25977