1. はじめに
私は2023年10月より、内定直結型エンジニア学習プログラム「アプレンティス」に2期生として参加しています。
AWS について学んだので、Laravel API を AWS でデプロイする方法についてまとめました。
AWS に初めて触れる方の参考になれば幸いです。
シリーズ一覧
長編になっているので、複数の記事に分けて公開しています。
本記事はその第 3 弾です。
- サーバー設置編
- サーバー接続編
- IP アドレス編 ★本記事!!
- データベース編
- アプリケーション起動編
- Webレイヤ冗長化編
- SSL 化編
目次
2. IPアドレスの固定
先述したように、現状では、EC2 は、起動・停止すると別の IP アドレスが動的に割り当てられる仕様になっています。
いつも同じアドレスでアクセスできるようにするためには、Elastic IP アドレスを利用します。
Elastic IP アドレスとは
Elastic IP アドレスは、インターネット経由でアクセス可能な固定グローバル IP アドレスを取得でき、EC2 インスタンスに付与できるサービスです。
※注意※
料金の発生要件が分かりづらいです。
Elastic IP アドレスは、EC2 インスタンスに関連付けられていて、そのインスタンスが起動中であれば無料のようです。逆に、インスタンスが停止していたり、インスタンスに関連付けられていない場合には、料金が発生するということになります。
発生する料金に関して責任が持てないため、詳しくはご自身でご確認をお願いします。
Elastic IP アドレスの確保
Elastic IP アドレスを確保することを、「Elastic IP アドレスを割り当てる」と表現します。
割り当てを行うために、EC2 ダッシュボードに移動します。
左メニューから「Elastic IP」をクリックし、「Elastic IP アドレスを割り当てる」から手続きします。
ネットワークボーダーグループが、東京リージョンである「ap-northeast-1」になっていることを確認し、後はデフォルトの設定のままで「割り当て」をクリックします。
Elastic IP の関連付け
割り当てられた Elastic IP アドレスを、EC2 インスタンスのパブリック IP アドレスとして利用するには、EC2 インスタンスに紐付ける必要があります。
割り当てられた Elastic IP アドレスにチェックを入れて、「アクション」プルダウンから「Elastic IP アドレスの関連付け」を選択します。
EC2 インスタンスに紐付けたいので、リソースタイプは「インスタンス」を選択し、作成した EC2 インスタンスを選択します。
「プライベート IP アドレス」のところは、EC2 インスタンスのプライベート IP アドレスが表示されるので、それを選択します。
「関連付ける」をクリックします。
EC2 インスタンスのパブリック IP アドレスを改めて確認すると、関連付けた Elastic IP アドレスになっていることが分かります。
Elastic IP アドレス(EC2 インスタンスのパブリック IP アドレス)をブラウザに入力して、先程の Apatch の画面にアクセスできることを確認してください。
3. ドメインの登録
今まで IP アドレスを直接入力してブラウザからアクセスしていましたが、IP アドレスとドメインを紐付けて、ドメインでアクセスできるようにします。
独自ドメインの契約の仕方についてはここでは触れません。
ドメイン契約済みという前提で進めます。
Route 53 とは
AWS では、IP アドレスとドメインを紐付ける DNS の役割を Route 53 が担っています。
Route 53 では、ホストゾーンというものを作成し、その中にレコードセットを登録することで、ドメイン名と IP アドレスの紐づけることができます。
ホストゾーンの作成
サービス検索窓に「Route53」と入力し、Route 53 のダッシュボードに移動します。
「ホストゾーンの作成」をクリックします。
独自ドメインを入力します。
インターネットに接続するので、パブリックホストゾーンを選択します。
「ホストゾーンの作成」をクリックします。
作成したホストゾーンをクリックして詳細画面を確認します。
最初からレコードが2つ登録されています。
「タイプ」が「NS」となっている方のレコードを選択します。
「レコードの詳細」画面の「値」欄に、4つのネームサーバーが登録されています。
このネームサーバーを、ドメインの管理サイト側で DNS レコードに登録することで、ドメインが IP アドレスに解決されるようになります。
私は Xserver のドメインを利用しているので、ここでは Xserver の管理画面から、DNS レコードを登録する方法を解説します。
Xserver サーバーパネルから DNS レコード設定
Xserver サーバーパネルにアクセスし、「ドメイン」欄の「DNS レコード」をクリックします。
ドメイン選択画面で、対象のドメインを選択して進みます。
「ホスト名」の空欄は、今回対象とするドメインがサブドメインの場合に入力します。
ちなみに私はサブドメインを利用しているので、ここにサブドメイン名を入力しました。
「種別」は「NS」(ネームサーバー)を選択します。
「内容」の部分に、先程確認した NS レコードの値を一つ入力します。
「TTL」はデフォルトで大丈夫なようです。
「確認画面へ進む」から登録します。
これを、NS レコード 4 つ分繰り返します。
4 つ登録できたら完了です。
DNS レコードの反映には少し時間がかかるので、その間に AWS 側に戻って A レコードを登録します。
(ドメインの会社によっては、数日かかる場合もあるそうです。)
A レコードの登録
ドメインに IP アドレスを紐付けるため、EC2 インスタンスのパブリック IP アドレス(Elastic IP)をコピーしておきます。
AWS の Route 53 ダッシュボードに戻り、ホストゾーンにレコードを追加します。
作成したホストゾーンを選択し、「レコードを作成」をクリック。
「レコードタイプ」は「A」を選択します。
「値」には、EC2 インスタンスの Elastic IP を入力します。
「レコードの作成」をクリックします。
ドメイン会社側の DNS 設定が反映されていれば、ドメイン名で Apache のページにアクセスできるようになっているはずです。
本記事はここまでです。
次の記事はこちら↓
初めての AWS で Laravel API をデプロイしてみた! - 第 4 弾:データベース編