【AWS】カスタムドメインの構成について整理してみた

【AWS】カスタムドメインの構成について整理してみた プログラミング

AWSでサービス公開をしていて、カスタムドメインを設定するというシーンによく遭遇しますが、カスタムドメインというものがそもそもよく分かっていないので、このタイミングで概要や取得・管理方法などをまとめました。

また、AWSでCloudFrontを使用した場合の構成についても、ググったところ構成によって設定が変わってきそうなので、こちらも併せてまとめています。

カスタムドメインとは

・通常、レンタルサーバー・クラウドサービスなどを契約してWebサイトを公開した場合、レンタルサーバーを所有している企業のドメインのサブドメインが割り当てられますカスタムドメインは自分で取得したドメインを設定することです。独自性やブランドイメージを付けられ、SEO観点でも有利に働くと言われてます。
例)

サービス提供会社ドメインexample.com
サービス提供会社サブドメインsub.example.com
カスタムドメイン(自分で取得したドメイン)heiyoshilog.com

カスタムドメインの取得方法

カスタムドメインは、ドメイン名登録事業者(レジストラ)からドメインを購入・取得する必要があります。レジストラは世界的に統一されたDNSサービス機関(ICANN)などから認められた事業者で、IPアドレスとドメイン名を対応付けるDNSサービスを提供しています。日本だとお名前ドットコムやムームードメインなどのレジストラがあります。

企業で設定しているドメインでも同じ考え方です。企業内でDNSサーバーを構築した場合、ドメインの管理や運用は企業側で実施しますが、ドメインの購入・所有はレジストラから行う必要があります。

カスタムドメインの管理方法

カスタムドメインの取得後に、ドメインを管理する方法としては以下が考えられます。

レジストラのDNSサービスレジストラが提供する管理画面を通じてDNSレコードの登録・更新・削除など管理
クラウドのDNSサービスAWS、Azure、GCPなどで提供されるDNSサービスでドメインの管理
オンプレのDNSサービス自社でDNSサービスを構築し管理

もしクラウド(AWSサービスなど)にカスタムドメインを設定したい場合は、レジストラからドメインを取得してクラウドのDNSサービスでレコードを登録する必要があります。

サブドメインの作成メリット

レジストラからドメインを取得した後に、ドメインを分けたいとなった場合はサブドメインを作成することで新たなドメインの登録費用は発生せずに、取得ドメインに新たに名前空間を作ることができます。
例えば、企業内でドメインを取得した後に、部門ごとにドメインを分けたいとなった場合、コスト効率良く実現できます

①レジストラから企業ドメインを取得(レジストラ契約)
➁DNSサーバーに登録(例:AWS Route53のコンソール)
➂サブドメインを作成(例:AWS Route53のコンソール)

 取得したドメイン:example.com
 営業部:sales.example.com
 人事部:hr.example.com

DNSサーバーのレコードの種類

よく利用されるDNSレコードの種類は以下になります。

NSドメインの管理を行う権威サーバーのホスト名を定義
Aドメイン名(ホスト名)とIPアドレスの対応付けを定義
CNAME正規のドメイン(ホスト名)に対する別名を定義

NSレコードはDNSの権威サーバーを定義しており、例えば、あるレジストラで購入したドメインのNSレコードをAWSRoute53のホストを定義することで、実質的にドメイン管理をRoute53側に委任できます

SSL証明書とHTTPS通信について

webページを公開する場合、より信頼性の高い通信を実現するためHTTPSでの通信が必要となると思います。

例えば、AzureCDNやAWSCloudFrontのパブリッククラウドのCDNサービスで、デフォルトで適用されるCDNベンダーのドメイン(xxx.onmicrosoft.com、xxx.amazon.com)を使用してwebページを公開した場合は、マネージド証明書が適用されるので、別途、証明書の設定は必要ありません
しかし、CDNにカスタムドメインを適用する場合は、別途、証明書の発行が必要となります

CDN マネージド証明書は、ルートまたは頂点のドメインには使用できません。 Azure CDN カスタム ドメインがルートまたは頂点のドメインの場合、独自の証明書の持ち込み機能を使用する必要があります。

カスタムドメイン管理ユースケース

AWSでS3+CloudFrontで静的Webページをカスタムドメインで公開する場合のカスタムドメインの構成を整理しました。また、各設定について解説した記事を記載しています。

①AWS以外のレジストラでドメイン取得・管理

・AWS以外のレジストラ(お名前ドットコムなど)でドメインを取得し、レジストラの管理画面でドメインを管理。AレコードにCloudFrontのディストリビューションを指定します。サブドメインはCNAMEに登録します。
・CloundFront側に代替ドメインとACMで取得したSSL証明書を登録しHTTPS通信を可能にします。

解説記事:独自ドメインでCloudFront にアクセスできるようにする

②AWS以外のレジストラでドメイン取得、Route53で管理(権威サーバーの委任)

・AWS以外のレジストラ(お名前ドットコムなど)でドメインを取得し、レジストラの管理画面でNSレコードにRoute53のNS情報を設定します。(権威サーバーの委任)
・Route53のAレコードにCloundFrontを指定します。サブドメインはCNAMEに登録します。
・CloundFront側に代替ドメインとACMで取得したSSL証明書を登録しHTTPS通信を可能にします。

以下の記事でカスタムドメイン(サブドメイン)設定する方法を解説しています。

※ドメインは既に取得している、あるいは別のレジストラから取得したいが、管理はAWS上で一元管理したい場合に使用される構成と考えてます。

③Route53でドメイン取得・管理

・Route53のマネジメントコンソールでドメインを取得し管理。AレコードにCloudFrontのディストリビューションを指定します。サブドメインはCNAMEに登録します。
・CloundFront側に代替ドメインとACMで取得したSSL証明書を登録しHTTPS通信を可能にします。

解説記事:独自ドメインで CloudFront にアクセスできるようにする方法

①はお名前ドットコムの管理画面のみの操作でシンプルですが、②③のRoute53の方がレイテンシールーティングや位置情報ルーティングなど要件に応じて柔軟に対応できるかと思います。

まとめ

今回は、AWS公開サービスへの設定の際に、遭遇したカスタムドメインについて、整理をしてみました。遭遇頻度は高いですが、よく理解できていなかったレジストラやDNSサービスなども含めて理解を含められた気がします。

次回の記事では、実際にお名前ドットコム、Route53を使用したカスタムドメインの設定方法について、解説していきたいと思います。

タイトルとURLをコピーしました