本記事は、開発環境のCloud9からAWSサービスを連携してデプロイすることをゴールにした連載記事です。
Railsアプリをデプロイしよう!!の全体目次はこちらをご覧ください。
本編でようやくサービスとして形になります!あと少し、頑張りましょう!
また、お名前.comでドメイン保有していない場合は、取得しておきましょう。
![](https://www13.a8.net/0.gif?a8mat=3HIQB1+7IATF6+50+2HQGAP)
目次
ドメイン設定
Route 53
Route 53 でホストゾーンを作成します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-1024x463.png)
お名前.comで取得したドメイン名を入力して作成します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-1-1024x705.png)
作成後に表示される下記図の赤枠箇所をメモしておきます。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-3-1024x534.png)
お名前.com
続いてお名前.comで処理をすすめます。
ドメイン一覧をクリックします。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-4-1024x559.png)
該当のドメインの初期設定をクリックします。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-5-1024x664.png)
赤枠箇所へRoute 53 でメモしたネームサーバー名を入力します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-6-886x1024.png)
確認画面を確認後、問題なければOKをクリックして完了です。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-7-1024x592.png)
ネームサーバーの設定は以上で完了です。
画像に記載されている通り、反映完了まで24時間から72時間かかる場合があります。
■ネームサーバーの反映確認方法
ターミナルから下記コマンドを実行して確認することができます。
ターミナル
$ dig ドメイン名 NS +short
=> 4つのネームサーバーが表示されれば完了です。
Route 53へドメイン適用
続いて、Route53へドメインを適用させます。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-154-1024x536.png)
赤枠箇所へElasticIPを入力して作成します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-155-1024x529.png)
HTTPS化
サービスの検索窓でacmと打ち、赤枠を選択します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-156-1024x521.png)
赤枠を選択します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-157-1024x556.png)
証明書をリクエストします。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-158-1024x488.png)
ドメイン名の項目を2つ入力します。
1つめ「sample.jp」
2つめ「*.sample.jp」
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-159-1024x544.png)
赤枠を選択して次へ進みます。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-160-1024x480.png)
タグを追加します。
タグ名:name(任意)
値:アプリ名_alb(任意)
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-161-1024x502.png)
確認して進めます。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-162-1024x671.png)
ドメイン名の横の▼をクリックして、Route 53でのレコード作成をクリックします。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-163-1024x396.png)
作成をクリックします。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-164-1024x349.png)
「sample.jp」「*.sample.jp」2つとも同じ作業を繰り返したら、次に進みます。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-165-1024x538.png)
「発行済み」になればOKです。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-166-1024x508.png)
ALB用のセキュリティグループを再度編集
ALB用で作成したセキュリティグループのインバウンドルールを変更します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-168-1024x540.png)
インバウンドルールでタイプHTTPSを2つ追加して保存します。(画像参照)
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-169-1024x504.png)
アウトバウンドは、従来のルールを削除し、ルールを追加して保存します。
送信先は、EC2用のセキュリティグループを指定ます。(画像参照)
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-170-1024x514.png)
ロードバランサーでリスナー追加
ロードバランサーのリスナーのタブからリスナーを追加します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-171-1024x533.png)
HTTPSを追加し、転送先としてターゲットグループを選択し、SSL証明も今回作成した証明書を選択してリスナー追加します。(画像参照)
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-174-1024x525.png)
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-173-1024x131.png)
ロードバランサーのリスナーのタブでは、下記赤枠のようになればOKです。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-175-1024x526.png)
続いて、HTTPでのアクセスをHTTPSにリダイレクトするように設定します。
HTTPのほうを選択して編集します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-181-1024x531.png)
作成済のデフォルトアクションを削除して、下記の赤枠に差し替えて保存します。(画像参照)
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-182-1024x532.png)
Route 53の設定を修正
Route 53 のホストゾーンを選択し、ドメイン名をクリックします。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-178-1024x541.png)
タイプAのレコードにチェックをして、レコードを編集します。
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-177-1024x536.png)
トラフィックのルーティング先の横のエイリアスをONに切り替えて、下記にて保存します。
1つめ「Application Load Balancer~ 」を選択
2つめ「リージョン」を選択
3つめ 作成したロードバランサーを選択
![](https://senrenseyo.com/wp-content/uploads/2021/08/image-179-1024x500.png)
これで完了です。
Nginx の設定ファイルを修正
ドメイン名からのアクセスを許可するため、本番環境に設置しているNginxの設定ファイルを編集します。
※設定後は、ElasticIPアドレスへの接続ができなくなります。
$ sudo vi /etc/nginx/conf.d/DC_product.conf
# server_name 43.****.****; #ElasticIPアドレスをコメントアウトする
server_name ****.jp;
server_nameをElasticIPからドメイン名に切り替えます。
ターミナル(ssh)
# 設定を反映させる
$ sudo nginx -s reload
これでHTTPS接続でドメインへアクセスして問題なく動けばOKです。
最後に
最後までお疲れ様でした。うまくできましたかね?
もしエラーが現時点でも発生している場合は、一つずつ解決していきましょう。
筆者は、デプロイのエラー対応だけでも、git add ~ git push を50回ほど繰り返しました笑
多過ぎですよね笑
記事用にスクショを取りつつ、一つのエラー解消に4時間かかったものもあったりで、結局この記事含めてで50時間程費やしました。
記事は面倒ですが、改めて第三者に見てもらうことを考えて作成すると、頭の中がとても整理されて良かったです。
また、今回のデプロイを通じてより多くの学び・発見があり、とても楽しめました。
みなさまが作っているサービス、うまくいくと良いですね!
頑張りましょー!
最後に宣伝です。
BOOK TECHも運営しております。
縦スクロールで読めるプログラミング書籍専門の電子書店です。
是非ご利用ください😄