ドメインはサービスの住所のようなものであり、実際にサービスを運用していくにあたって必須となります。
AWSでは様々なサービスが提供されており、もちろんドメインの取得や取得したドメインでのサービス公開も一貫して行うことが可能です。
今回は、AWSで取得したドメインをAWSで公開しているアプリケーションに紐付けるサンプルを記載します。
前提は以下の通りです。
- 独自ドメインをAWSで取得している
- Ruby on RailsアプリをElastic Beanstalkで公開している
Route53の設定
ホストゾーンの作成
ドメインをRoute53で取得した後、「ホストゾーン」を作成します。
「ドメイン名」には、取得したドメインを入力します。(末尾の.com等も忘れずに)
「タイプ」は「パブリックホストゾーン」が選択されていることを確認し、「ホストゾーンの作成」をクリックします。
レコードの作成
作成したホストゾーンを選択し、「レコードの作成」をクリックします。
「シンプルルーティング」が選択されていることを確認し、「次へ」をクリックします。
「シンプルなレコードを定義」をクリックします。
「レコード名」は、サブドメインのレコードを登録したい場合は入力しますが、取得したドメインをそのまま使用する場合は、空欄のままにしておきます
「値/トラフィックのルーティング先」は、今回はElastic Beanstalkで公開しているアプリケーションと紐付けるので、「Elastic Beanstalk 環境へのエイリアス」を選択します。続いて、リージョンを選択し、公開しているElastic BeanstalkのURLを選択します。
「レコードタイプ」はデフォルトでは「A - IPv4アドレスと〜」が選択されているので、そのままでOKです。
最後に「シンプルなレコードを定義」をクリックして完了です。
ロードバランサーの設定
HTTPSの許可
HTTPSの接続も許可する場合は、ロードバランサーの設定も必要になりますので、Route53の設定が完了したら、次はEC2のロードバランサーの設定に移ります。
EC2のダッシュボードを開き、左側のメニューから「ロードバランサー」を選択します。
Elastic Beanstalkによって、ロードバランサーが一つ作成されているので、それを選択し、下側に表示される詳細画面で、「リスナー」を選択します。
「リスナー」には「HTTP: 80」のみが表示されているので、ここに「HTTPS」を追加していきます。
「リスナーの追加」をクリックします。
表示される画面で、詳細を設定していきます。
プロトコル:ポート
ここは、「HTTPS」を選択し、ポートに「443」と入力します。
デフォルトアクション
「転送先」のデフォルトアクションを追加します。そして、ターゲットグループには、Elastic Beanstalkによって作成されたものが一つ存在するので、それを選択します。
「セキュリティポリシー」はデフォルトのままでOKです。「デフォルトのSSL証明書」は取得したSSL証明書を選択します。
※まだ取得していない場合は以下の記事を参考に、SSL証明書を取得してみてください。
🎹
以上の設定が完了したら画面右上の「保存」をクリックします。
これでリスナー一覧に「HTTPS」が追加されます。
HTTPのリダイレクト
次に、httpでアクセスされたらhttpsにリダイレクトするように設定もしておきます。(必須ではありません。)
リスナー一覧の「HTTP:80」のルールカラムに「ルールの表示/編集」のボタンがありますので、クリックします。
少し分かりづらいのですが、画面上部の「鉛筆マーク」を選択し、リスト内に表示される「鉛筆マーク」を選択します。
「THEN」の部分に設定されているルールをゴミ箱アイコンで削除し、アクションの追加で、「リダイレクト先、HTTPS、443」を選択し、右上の「更新」をクリックします。
以上でロードバランサーの設定は完了です。