Route 53にALBを登録して、独自ドメインでアクセスする

Route 53にALBを登録して、独自ドメインでアクセスする。

Route 53にALBを登録する構成

以下のページで、ALBにプライベートサブネット内のEC2インスタンスをアタッチする方法をご紹介しました。

あわせて読みたい
プライベートサブネット内のインスタンスをALBにアタッチする 【プライベートサブネット内のインスタンスをALBにアタッチする構成】 プライベートサブネット内に設置されたインスタンスを、ALBにアタッチする方法を確認します。 AWS...

ただし上記の構成では、ALB生成時に自動的に作成されたドメイン名(XXXXX.[region-name].elb.amazonaws.com)でしかアクセスすることができません。今回はRoute 53を使用して、独自ドメインでALBにアクセスできるように設定します。

構築する環境

Diagram of registering ALB to Route 53 for using your own domain.

基本的な構成は、先述ご紹介したページと同一です。今回はRoute 53を使用して、ドメインを取得し、同ドメインにALBを関連付けます。Route 53を使用したドメイン取得方法については、AWS公式サイトをご確認ください。

今回は「awstut.net」というドメインを取得し、このドメイン名でALBにアクセスすることを目標とします。

CloudFormationテンプレートファイル

上記の構成をCloudFormationで構築します。以下のURLにCloudFormationテンプレートを配置してます。

https://github.com/awstut-an-r/awstut-fa/tree/main/022

テンプレートファイルのポイント解説

本ページでは、Route 53周りの解説のみを行います。プライベートサブネット内のEC2をALBにアタッチする方法や、プライベーサブネット内のEC2インスタンスでyumを実行する方法については、以下のページをご確認ください。

あわせて読みたい
プライベートサブネット内のインスタンスをALBにアタッチする 【プライベートサブネット内のインスタンスをALBにアタッチする構成】 プライベートサブネット内に設置されたインスタンスを、ALBにアタッチする方法を確認します。 AWS...
あわせて読みたい
プライベートサブネットのインスタンスでyum/dnfを実行する 【プライベートサブネット内のインスタンスでyum/dnfを実行する構成】 プライベートサブネット内のインスタンスで、yum/dnfを実行する方法を確認します。 今回は以下の2...

エイリアスレコードタイプでALBを登録する

fa-022-route53.yamlでRoute 53リソースを定義しています。

Resources:
  DnsRecord:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId: !Ref HostedZoneId
      Name: !Ref DomainName
      Type: A
      AliasTarget:
        DNSName: !Ref ALBDnsName
        HostedZoneId: !Ref ALBHostedZoneId
Code language: YAML (yaml)

Route 53で独自ドメインにALBを関連づける場合、ポイントとなる設定はTypeプロパティです。ALBを登録するためには、エイリアスレコードとして登録する必要があります。

Amazon Route 53 エイリアスレコード で、DNS 機能に Route 53 固有の拡張機能が追加されます。エイリアスレコードを使用すると、選択した AWS リソース (CloudFront ディストリビューションや Amazon S3 バケットなど) にトラフィックをルーティングできます。

エイリアスレコードと非エイリアスレコードの選択

一般に、エイリアスレコードを意味する値は「A」あるいは「AAAA」ですが、今回はIPv4タイプのALBを使用しておりますので、「A」を指定します。
HostedZoneIdおよびNameプロパティで、関連づけるドメインの情報を設定します。今回は「awstut.net」を指定しますので、同ドメインのホストゾーンIDとドメイン名を指定します。
AliasTargetプロパティで、ALB情報を設定します。HostedZoneIdおよびDNSNameプロパティで、作成するALBのホストゾーンIDとドメイン名を指定します。なおALBのホストゾーンIDですが、設定するべき値は定められています。「Elastic Load Balancing エンドポイントとクォータ」によりますと、東京(ap-northeast-1)リージョンですと、「Z14GRHDCWA56QT」とあります。

環境構築

CloudFormationを使用して、本環境を構築し、実際の挙動を確認します。

CloudFormationスタックを作成し、スタック内のリソースを確認する

CloudFormationスタックを作成します。スタックの作成および各スタックの確認方法については、以下のページをご確認ください。

あわせて読みたい
CloudFormationのネストされたスタックで環境を構築する 【CloudFormationのネストされたスタックで環境を構築する方法】 CloudFormationにおけるネストされたスタックを検証します。 CloudFormationでは、スタックをネストす...

各スタックのリソースを確認した結果、今回作成された主要リソースの情報は以下の通りです。

  • インスタンス1のID:i-0e0a2b4983bab36ae
  • インスタンス2のID:i-018fdeb22dc242be0
  • ALBのID:fa-022-ALB
  • Route 53のレコード:awstut.net

AWS Management Consoleからも、リソースの作成状況を確認します。まずEC2インスタンスの作成状況を確認します。

Two EC2 instances have been created.

2つのインスタンスが正常に作成されています。次にALBを確認します。

The ALB has been successfully created and the default DNS name has been set.

こちらも正常に作成されていることがわかります。このALBのターゲットグループも確認します。

Two EC2 instances are registered in the ALB target group.

先ほど確認した2つのEC2インスタンスが登録されていることがわかります。つまりこのALBにアクセスすると、2つのインスタンスにアクセスすることができるということです。最後にRoute 53の設定状況も確認します。

ALB is registered in Route 53 as an alias record.

「awstut.net」に対して、先ほど確認したALBのDNS名が関連付いていることがわかります。

独自ドメイン名でALBにアクセスする

準備が整いましたので、ブラウザから独自ドメインにアクセスします。

The result of accessing ALB on my own domain 2.
The result of accessing ALB on my own domain 1.

アクセスごとに2つのページが表示されました。これはEC2インスタンスの初期化時に、自身のインスタンスIDをルートページに表示するように設定したためです。以上より、独自ドメインを使用してALBにアクセスし、ALBに関連づいている2つのEC2インスタンスにアクセスできることがわかりました。

まとめ

Route 53を使用して、独自ドメインを使用して、ALBにアクセスする方法を確認しました。
Route 53でALBを登録する場合は、エイリアスレコードを使用することを確認しました。