はじめに
この記事はAWS-GUILD Advent Calendar 2023 5日目の記事です。
本記事では、Cloudflare Registersで取得したドメインをAWSのRoute53 + ACMで管理可能にしたやってみた系の記事になります。
構成
以下の順序で構成を作成します。
- Cloudflareでドメイン購入
- Route 53でドメイン管理
- ACMでサーバ証明書発行
- HTTPSでAPIGatewayにアクセス
Cloudflareでドメイン購入
CloudflareではCDNサービスが有名ですが、ドメインレジストラとしても登録されています。
ドメインはICANNが管理しているのですが、通常のドメインレジストラはここからドメインを販売する場合、マージンを取って利益を出していたりします。
ですが、Cloudflareはなんと原価でドメインを提供しています。
以下のリンクからマイドメインをさくっと買っちゃいましょう。
年間でランチ代程度です。
Cloudflare
私は、tessy.devというドメインを検証用に買いました。
ドメインを購入するとCloudflareのネームサーバが割り当てられます。
これをAWSのRoute53で管理する形になります。
なお、本当はデフォルトネームサーバ自体をCloudflareからRoute53にしたかったのですが、デフォルトを変更するためには有料プランに入る必要があるため、今回はサブドメインの「aws.tessy.dev」をAWSに移管する形にします。
Route 53でドメイン管理
Route 53のパブリックホストゾーンを「aws.tessy.dev」として作成します。
パブリックホストゾーンにすることでインターネットからのDNSクエリに反応することが可能になります。
ネームサーバーが発行されるため、これをCloudflare側に設定します。
TypeにNSレコード
Nameに「aws」
を設定し、Route 53で発行されたネームサーバーをそれぞれ設定してあげれば完了です。
ACMでサーバ証明書発行
このままだと、HTTPSアクセスが難しいため、ACM(AWS Certificate Manager)でサーバ証明書を発行します。
今回は「*.aws.tessy.dev」のとしてワイルドカードドメインとして設定します。
これにより、「api.aws.tessy.dev」のような形でも証明書として機能できます。
これで、色々なドメインが検証可能ですね。
Route 53でのドメイン検証
Route 53で管理されていることをDNS検証するため、CNAMEレコードを設定します。
先ほど、ACMでドメインを登録した際に、CNAMEレコードが発行されているため、これをRoute 53に設定します。
ここまで設定すると、ACM側でドメインが検証されて、ステータスが成功となります。
HTTPSでアクセス
ここまで来るとRoute 53 + ACMで管理する準備ができました。
最後にAPI GatewayでHTTPS接続してアクセスしてみましょう。
API Gatewayのカスタムドメインとして「api.aws.tessy.dev」を設定しておきます。
また、Route 53にもAPI Gatewayのドメインを指すように、Aレコードを設定します。
この状態で、HTTPSでアクセスすると、以下の通り、ワイルドカードドメインで登録され、アクセス可能であることが確認出来ます。
終わりに
Cloudflareで取得したドメインをAWSで管理可能にしてみました。
思ったことは
マイドメイン
は良いです!
年間で見てもランチ1回分くらいで検証用のドメインを購入できます。
HTTPでのアクセスも勉強になりますが、HTTPSを利用するとサーバ証明書、の知識もついてより勉強になります。
何より達成感が違いますので、皆さんもチャレンジしてみてください。