Route 53にALBを登録する構成
以下のページで、ALBにプライベートサブネット内のEC2インスタンスをアタッチする方法をご紹介しました。
ただし上記の構成では、ALB生成時に自動的に作成されたドメイン名(XXXXX.[region-name].elb.amazonaws.com)でしかアクセスすることができません。今回はRoute 53を使用して、独自ドメインでALBにアクセスできるように設定します。
構築する環境
基本的な構成は、先述ご紹介したページと同一です。今回は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を登録する
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スタックを作成します。スタックの作成および各スタックの確認方法については、以下のページをご確認ください。
各スタックのリソースを確認した結果、今回作成された主要リソースの情報は以下の通りです。
- インスタンス1のID:i-0e0a2b4983bab36ae
- インスタンス2のID:i-018fdeb22dc242be0
- ALBのID:fa-022-ALB
- Route 53のレコード:awstut.net
AWS Management Consoleからも、リソースの作成状況を確認します。まずEC2インスタンスの作成状況を確認します。
2つのインスタンスが正常に作成されています。次にALBを確認します。
こちらも正常に作成されていることがわかります。このALBのターゲットグループも確認します。
先ほど確認した2つのEC2インスタンスが登録されていることがわかります。つまりこのALBにアクセスすると、2つのインスタンスにアクセスすることができるということです。最後にRoute 53の設定状況も確認します。
「awstut.net」に対して、先ほど確認したALBのDNS名が関連付いていることがわかります。
独自ドメイン名でALBにアクセスする
準備が整いましたので、ブラウザから独自ドメインにアクセスします。
アクセスごとに2つのページが表示されました。これはEC2インスタンスの初期化時に、自身のインスタンスIDをルートページに表示するように設定したためです。以上より、独自ドメインを使用してALBにアクセスし、ALBに関連づいている2つのEC2インスタンスにアクセスできることがわかりました。
まとめ
Route 53を使用して、独自ドメインを使用して、ALBにアクセスする方法を確認しました。
Route 53でALBを登録する場合は、エイリアスレコードを使用することを確認しました。