プログラミング

【AWS】独自ドメインでウェブアプリを公開する

eyecatch-aws

ドメインはサービスの住所のようなものであり、実際にサービスを運用していくにあたって必須となります。

AWSでは様々なサービスが提供されており、もちろんドメインの取得や取得したドメインでのサービス公開も一貫して行うことが可能です。

今回は、AWSで取得したドメインをAWSで公開しているアプリケーションに紐付けるサンプルを記載します。

前提は以下の通りです。

  • 独自ドメインをAWSで取得している
  • Ruby on RailsアプリをElastic Beanstalkで公開している

Route53の設定

ホストゾーンの作成

ドメインをRoute53で取得した後、「ホストゾーン」を作成します。

aws-route53

「ドメイン名」には、取得したドメインを入力します。(末尾の.com等も忘れずに)

「タイプ」は「パブリックホストゾーン」が選択されていることを確認し、「ホストゾーンの作成」をクリックします。

レコードの作成

aws-route53

作成したホストゾーンを選択し、「レコードの作成」をクリックします。

aws-route53

「シンプルルーティング」が選択されていることを確認し、「次へ」をクリックします。

aws-route53

「シンプルなレコードを定義」をクリックします。

aws-route53

「レコード名」は、サブドメインのレコードを登録したい場合は入力しますが、取得したドメインをそのまま使用する場合は、空欄のままにしておきます

「値/トラフィックのルーティング先」は、今回はElastic Beanstalkで公開しているアプリケーションと紐付けるので、「Elastic Beanstalk 環境へのエイリアス」を選択します。続いて、リージョンを選択し、公開しているElastic BeanstalkのURLを選択します。

「レコードタイプ」はデフォルトでは「A – IPv4アドレスと〜」が選択されているので、そのままでOKです。

最後に「シンプルなレコードを定義」をクリックして完了です。

ロードバランサーの設定

HTTPSの許可

HTTPSの接続も許可する場合は、ロードバランサーの設定も必要になりますので、Route53の設定が完了したら、次はEC2のロードバランサーの設定に移ります。

EC2のダッシュボードを開き、左側のメニューから「ロードバランサー」を選択します。

Elastic Beanstalkによって、ロードバランサーが一つ作成されているので、それを選択し、下側に表示される詳細画面で、「リスナー」を選択します。

aws-ec2-listener

「リスナー」には「HTTP: 80」のみが表示されているので、ここに「HTTPS」を追加していきます。

「リスナーの追加」をクリックします。

aws-ec2-listener

表示される画面で、詳細を設定していきます。

プロトコル:ポート

ここは、「HTTPS」を選択し、ポートに「443」と入力します。

デフォルトアクション

「転送先」のデフォルトアクションを追加します。そして、ターゲットグループには、Elastic Beanstalkによって作成されたものが一つ存在するので、それを選択します。

「セキュリティポリシー」はデフォルトのままでOKです。「デフォルトのSSL証明書」は取得したSSL証明書を選択します。

※まだ取得していない場合は以下の記事を参考に、SSL証明書を取得してみてください。

eyecatch-aws
AWSでドメインを取得しSSL証明書を発行するサービスを開発するときに欠かせないのがドメインですが、AWSでサーバーを構築する場合は、ドメインもAWSで取得したほうが楽です。 ...

以上の設定が完了したら画面右上の「保存」をクリックします。

これでリスナー一覧に「HTTPS」が追加されます。

HTTPのリダイレクト

次に、httpでアクセスされたらhttpsにリダイレクトするように設定もしておきます。(必須ではありません。)

リスナー一覧の「HTTP:80」のルールカラムに「ルールの表示/編集」のボタンがありますので、クリックします。

aws-ec2-listener

少し分かりづらいのですが、画面上部の「鉛筆マーク」を選択し、リスト内に表示される「鉛筆マーク」を選択します。

aws-ec2-listener

「THEN」の部分に設定されているルールをゴミ箱アイコンで削除し、アクションの追加で、「リダイレクト先、HTTPS、443」を選択し、右上の「更新」をクリックします。

以上でロードバランサーの設定は完了です。