AWS CDKによる【Route 53】の構築

皆様こんにちは。
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について復習できてよかった。

Last modified: 2024-08-14

Author