皆様、お世話になっております。鈴木と申します。
今回はAWS CloudFormationを使用してRoute53を作成していきたいと思います。
1.目次
2.要件
- ALB用のドメインを作成
3.Route53について
Amazon Route 53は、AWSのドメインネームシステム(DNS)サービスです。主な機能と利点は以下の通りです。
-
ドメイン登録:
数百のTLD(トップレベルドメイン)に対応したドメイン名の登録と管理が可能です。 -
DNSルーティング:
- 高可用性: グローバルなAWSインフラで信頼性を確保。
- ルーティングポリシー: シンプル、フェイルオーバー、地理的、加重、レイテンシーの各ポリシーに対応。
-
ヘルスチェック: アプリケーションの健全性を監視し、障害時にトラフィックを健全なリソースに自動で切り替えます。
-
統合: 他のAWSサービス(EC2、S3、CloudFrontなど)とスムーズに統合でき、APIを使用して自動化も可能です。
-
セキュリティ: IAMによるアクセス管理とDNSSECによるデータ保護を提供します。
利点として高い可用性と耐障害性があり、スケーラブルなサービスです。またコスト効率が高く、簡単に管理が可能となっています。Amazon Route 53は、インターネットアプリケーションのパフォーマンスと可用性を最適化するための強力なDNSソリューションです。
4.構成図
ALBのドメインをRoute 53のものに割り当てます。
今回はすでにホストゾーンがあるため、サブドメインの作成から実施していきます。
5.ソースコード全体
YAML形式で記述しています。またRoute 53とACM、ALBを同じファイルで記述しているため、以下はRoute 53部分を抜粋しています。
# Route 53 レコードセット作成(ALBのAレコード)
Route53RecordSet:
Type: "AWS::Route53::RecordSet"
Properties:
Name: !Sub "${SubdomainName}"
Type: "A"
HostedZoneId: !Ref HostedZoneId
AliasTarget:
DNSName: !GetAtt LoadBalancerResource.DNSName
HostedZoneId: !GetAtt LoadBalancerResource.CanonicalHostedZoneID
6.ソースコード詳細
Route 53とACM、ALBは同じファイルで記述しているため、上記はRoute 53部分を抜粋しています。
使用するオプション | 設定値 | 説明 |
---|---|---|
Type | AWS::Route53::RecordSet | デフォルトの定義 |
Name | !Sub "${SubdomainName}" | サブドメインを指定 |
Type | "A" | Aレコードとして作成 |
HostedZoneId | !Ref HostedZoneId | ホストゾーンのIDを指定 |
DNSName | !GetAtt LoadBalancerResource.DNSName | ALBのDNS名を取得 |
HostedZoneId | !GetAtt LoadBalancerResource.CanonicalHostedZoneID | ALBのホストゾーンIDを取得 |
7.テスト
次回はACMで証明書を発行し、ALBの設定を完了させた後、実際に上記で作成したドメインでALBに紐づけたEC2にアクセスできるかをテストします。
【CloudFormation】AWSマルチAZ3層アーキテクチャの構築_ACM
【CloudFormation】AWSマルチAZ3層アーキテクチャの構築_ALB
8.感想
Route 53はコンソール画面も見やすく、構築時も確認がしやすかったです。次回はACMで証明書を発行して暗号化を行います。