🥅

EC2にてIPアドレスを固定化してドメイン名を設定

2024/07/29に公開

前回EC2へLaravelプロジェクトをデプロイし、
とりあえずHTTP通信でUnityからAPI呼び出しできるようにした
https://zenn.dev/takodevlog/articles/112883dd379327

今回はパブリックIPを固定してDNS設定して、
ドメイン名でアクセスできるようにするのが目的

今回使用するのは以下の通り

  • Elastic IP
  • Route 53

Elastic IPで固定パブリックIPアドレスの割り当て

前回も注釈で記載した通り、パブリックIPはインスタンスの停止や再起動の度に変わってしまう
これだと名前解決を利用できなかったり、そもそもUnityにURIの指定しても変更が必要になってしまったりと非常に都合が悪い
そこで、Elastic IPアドレスを使用して固定されたグローバルIPアドレスを用意する

AWSのマネジメントコンソールからEC2のダッシュボードを開き、
画面左側のナビゲーションから「Elastic IP」を選択
(何故かたまにリージョンが東京じゃなくなってることがあるのでリージョンは一応確認しておく)

画面が開いたら右上の「Elastic IPアドレスを割り当てる」ボタンを押す

Elastic IPアドレスを割り当てる という画面が開くが
設定は特に変えようがないのでデフォルトの「AmazonのIPv4アドレスプール」を選択したまま割り当てボタンを押す

これだけで以下のように表示されIPアドレスが割り当てられる

Elastic IPアドレスの割り当て

割り当て完了の画面右上に「このElasticIPアドレスを関連付ける」というボタンがあるのでそれを押す
もしくは割り当てられたIPアドレスを選択し「アクション > Elastic IPアドレスの関連付け」を選択

画面が開いたらリソースタイプは「インスタンス」を選択
インスタンスには前回作成したインスタンスを指定
(i-から始まるインスタンスIDを選択する、インスタンスが複数ある場合は確認しておく)

OKなら関連付けるボタンを押す
Elastic IPの一覧画面で「関連付けられたインスタンスID」の部分にインスタンスIDが追加されどのインスタンスに関連付いているか確認できる

この時点でIPアドレスの固定化が完了しているので、インスタンスの再起動などを行い変化がないことを確かめる
また、固定されたIPアドレスでコンテンツへアクセスできることも確認できる

ドメイン名の取得

IPアドレスが固定できたので次はドメイン名を付与してアクセスができるようにしてみる
(ドメインの取得にはコストがかかる)
お名前ドットコムなどで別途ドメインを確保して設定することもできるが、
今回はRoute53を使って設定をしていく

AWSのマネジメントコンソールからRoute53のダッシュボードを開く
(左上のサービス一覧や検索フォームなどから見つける)

ダッシュボードの「ドメインの登録」ボタンを押す

ドメインの検索フォームが表示されるため、希望のドメイン名を検索する
ドメイン名には「.com」や「.net」等様々な最上位ドメイン(ドメイン名の最後に続く部分)を指定できるが値段が異なる
詳しくは以下公式の資料で
https://d32ze2gidvkk54.cloudfront.net/Amazon_Route_53_Domain_Registration_Pricing_20140731.pdf

検索してすでに使われているドメインだった場合、使用できない旨が表示された上で代わりのドメイン名がいくつか提案される

使用可能なドメイン名だった場合は下図のように「完全一致」と表示されそのドメインを選択することができる

ドメイン名と年間料金を確認して問題なければ選択をクリックすると、
画面右の「選択されたドメイン」という小窓に追加され、
ドメインの登録料小計が表示される

今回はドメインが1つあればいいのでこのままチェックアウトに進む

料金の確認画面へ進み、オプションの確認がある
今回は検証用のお試しなので期間は1年とし、自動更新もオフにした
ちなみに自動更新はいつでもオフにできるとのこと

連絡先情報の入力を求められるので自分の連絡先を入力する
(ここは日本語でも大丈夫そう?)
連絡先のタイプは個人を選択
電話番号の国コードは81
最後に「プライバシーの保護」という項目があるがここで入力した情報がwhoisで検索可能になるのを防ぐためプライバシー保護をオンにするをチェックする

最後に「確認して送信」という画面が表示されるので、内容に問題が無ければ利用規約同意のチェックをつけ送信する

送信したらRoute53の左側のナビゲーションからリクエストを選択
新規で申請したドメインが進行中になっているのを確認する

しばらくするとAmazon Route 53から登録しているメールアドレス宛に確認メールが届くので、
本文中のURLをクリックする
画面が開いたら「Thank you for validating the email address」的なこと言われて閉じるだけ
もう一度Route53のリクエスト画面を更新して確認する

ステータスが成功になっていればOK

左のナビゲーションからホストゾーンを選択してみると、
作成したドメインでホストゾーンが作成されている

ドメイン名の設定

先ほど確認したホストゾーンにインスタンスのIPアドレスを紐づけていく
ホストゾーンを選択し、レコードを作成ボタンを押下する

レコード名の部分にはサブドメインを指定したい場合入力する
(今回自分は前回作ったインスタンスと紐づいたことが分かりやすいようなサブドメインを指定した)
レコードタイプは「Aレコード」
値にはElastic IPアドレスを登録するため入力する
ルーティングポリシーはシンプルルーティングを選択

レコードを作成し、ホストゾーンにAレコードが追加されたことを確認する

1分ほどで設定が反映されると思うので、ドメイン名を使用してアクセスの確認を行う
無事ページが表示できればOK

また、コマンドプロンプトなどでnslookupコマンドを用いてDNSサーバ接続確認も可能

$ nslookup [ドメイン名]

おわりに

これでIPアドレスが変わることなく、またドメイン名でAPIなどの呼出しができるようになった
次回はSSL対応していきたい

参考記事

https://qiita.com/mksamba/items/e50a423b8ab12271eb73
ありがとうございました🙇

Discussion