皆様こんにちは。
AWS CDKを利用してマルチAZ3層アーキテクチャ構築をしていきます。
この記事ではRoute 53の作成を行います。
1.Route 53とは
Amazon Route 53は、Amazon Web Services (AWS) が提供する高可用性かつスケーラブルなクラウドドメインネームシステム (DNS) ウェブサービスです。Route 53 の主な役割は、ユーザーがドメイン名を管理し、それをIPアドレスや他のインターネットリソースにマッピングすることです。これにより、ユーザーはWebサイトやアプリケーションの名前解決を効率的に行うことができます。
主な機能
1. ドメイン名の登録
Route 53を使用して、新しいドメイン名を登録することができます。既存のドメインをAWSに移管することも可能で、簡単にドメイン管理が行えます。
2. DNSルーティング
Route 53は、以下のような複数のルーティングポリシーをサポートしています:
- シンプルルーティング: 最も基本的なルーティングタイプで、単一のリソースに対してトラフィックをルーティングします。
- フェイルオーバールーティング: プライマリリソースが利用できない場合に、セカンダリリソースにトラフィックをルーティングします。
- 地理的ルーティング: ユーザーの地理的位置に基づいて最適なリソースにトラフィックをルーティングします。
- レイテンシールーティング: ユーザーに最も低いレイテンシーで応答できるリソースにトラフィックをルーティングします。
- 加重ルーティング: 複数のリソースにトラフィックを分散させるための重み付けを行います。
3. ヘルスチェック
Route 53は、リソースのヘルスチェックを行い、健全なリソースにのみトラフィックをルーティングします。これにより、高可用性が確保され、ユーザーエクスペリエンスが向上します。
4. ドメインネームシステムセキュリティ拡張 (DNSSEC)
DNSSECは、DNSデータの整合性を保護するためのセキュリティプロトコルです。Route 53は、このプロトコルをサポートし、ドメイン名の信頼性を強化します。
利用シナリオ
- ウェブサイトホスティング: Route 53を使用して、ユーザーがウェブサイトのドメイン名を登録し、DNSルーティングを設定することで、高可用性とスケーラビリティを確保します。
- マイクロサービスアーキテクチャ: 各サービスに対して個別のサブドメインを設定し、異なるルーティングポリシーを適用することで、柔軟なサービスディスカバリが可能です。
- グローバルアプリケーション: 地理的ルーティングとレイテンシールーティングを組み合わせて、ユーザーに最適なリソースからサービスを提供します。
まとめ
Amazon Route 53は、AWS環境でのドメイン名管理とDNSルーティングをシンプルかつ効果的に行うための強力なツールです。高可用性、スケーラビリティ、柔軟なルーティングポリシーを提供するため、あらゆる規模のアプリケーションに対応できます。ドメイン名の登録からDNSの設定、ヘルスチェックまで、Route 53は信頼性の高いインターネット接続を実現します。
詳細は公式ドキュメントを参照ください。
2.目的
既存のホストゾーンに対して、新しいレコードを作成します。
指定のドメインを、作成したALBのDNS名に関連付けます。
これにより、リクエストは自動的に指定されたALBにルーティングされるようになります。
3.構成図
4.全体構築ソースコード
# ALBのDNS名を使ってレコードを作成
route53.CfnRecordSet(self, "AliasRecord",
hosted_zone_id=hosted_zone.hosted_zone_id,
name="ドメイン名",
type="A",
alias_target={
"dnsName": alb.attr_dns_name,
"hostedZoneId": alb.attr_canonical_hosted_zone_id
}
)
5.ソースコード詳細
レコードの作成を行います。
また、既存のホストゾーンのインポートについてはACM構築で説明しています。
- "elbv2.CfnTargetGroup"を使用
論理ID(テンプレート内で一意)の指定をしたのち、詳細のプロパティを指定しています。
プロパティは下記
使用するプロパティ | 設定値 | 説明 |
---|---|---|
hosted_zone_id | hosted_zone.hosted_zone_id | レコードを作成するホストゾーンのIDを指定します。 |
name | "任意のドメイン名" | 作成するレコードの名前を指定します。 |
type | "A" | レコードのタイプを指定します。ここではAレコード(IPv4アドレス用)です。 |
alias_target.dnsName | alb.attr_dns_name | ALBのDNS名を指定します。ALBのDNS名にリクエストを転送します。 |
alias_target.hostedZoneId | alb.attr_canonical_hosted_zone_id | ALBのホストゾーンIDを指定します。 |
6.検証
マネジメントコンソールで以下のように確認できました。
6.感想
スムーズに構築できた。
Route 53について復習できてよかった。