【OCI_13】AWSのRoute53で取得したドメインをOCIのDNSで使えるようにする
OCIチュートリアルにある無料ドメインを利用しようとしましたが、よく考えたらAWSのRoute53を検証した時に有料ドメインを取得していましたので、それをOCIのDNSで使えるようにして検証したいと思います。
OCIのDNSで名前解決ができるようになれば、ロード・バランサのパブリックIPアドレスをAレコードとして作成し、さらにCNAMEも作成して、CNAMEでロード・バランサへアクセスしてWEBサーバのWEBページが表示されることを検証の目標にしたいと思います。
今回もOCIチュートリアルを参考にしています。
DNSサービスを使ってWebサーバーの名前解決をする
https://oracle-japan.github.io/ocitutorials/intermediates/using-dns/
目次
AWS Route53で作成したドメイン名の確認
AWS Route53で取得しているドメイン名は、以下のとおりです。必要はないかもしれませんが一部マスクしています。

OCIでDNSゾーンを作成
OCIでDNSゾーンを作成します。
DNSゾーンの追加
左上ハンバーガーメニューから ネットワーキング > DNS管理 を選択、DNSサービスの管理の「ゾーン」をクリックします。

パブリック・ゾーン の ゾーンの作成 をクリックします。

パブリック・ゾーンの作成画面で以下を入力、選択し、右下の「作成」をクリックします。
メソッド:手動
ゾーン・タイプ:プライマリ
ゾーン名:事前取得したドメイン名(今回は、AWSのRoute53で取得したドメイン名)
コンパートメントに作成:自身の権限のあるコンパートメント
タグ以下は、すべてデフォルト設定

少し待つとパブリック・ゾーンが作成されました。

ゾーンの初期レコードの確認
ゾーンの作成時にいくつかのDNSレコードが作成されて有効になっているので確認します。
作成したゾーン名をクリックし、「レコード」タブをクリックします。
「タイプ」が「NS」の項目に4つのNSレコードが表示されているのでメモします。後でAWS Route53でこのNSレコードを利用します。

名前解決のためのDNSレコードの追加(Aレコード)
今回は、OCIで作成したゾーンにロード・バランサの名前解決を行うためのレコードを追加します。
最初にロード・バランサのパブリックIPアドレスを確認します。
ロード・バランサのパブリックIPアドレスは、152.***.***.*** です。

作成したゾーン名をクリックし、「レコード」タブを選択、「レコードの管理」をクリックします。

レコードの管理画面で「レコードの追加」をクリックします。

レコードの追加/編集画面で以下を入力、選択し、右下の「変更の保存」をクリックします。
名前:任意名(今回は、loadbalancer としました)
タイプ:A – IPv4アドレス
TTL(秒単位):3600(デフォルト)
RDATA/回答:基本(デフォルト)
Address(アドレス):ロード・バランサのパブリックIPアドレス

レコードが追加されました。
この時点では、まだDNSサーバへ反映されていません。続いてCNAMEレコードの登録へ進みます。

名前解決のためのDNSレコードの追加(CNAMEレコード)
次にOCIチュートリアルに習い、「loadbalancer.ドメイン名」の別名として「web.ドメイン名」というCNAMEレコードを登録します。
イメージとしては、インターネットの利用者は「web.ドメイン名」へアクセスしてもらうという感じです。
作成したゾーン名をクリックし、「レコード」タブを選択、「レコードの管理」をクリックします。
レコードの管理画面で「レコードの追加」をクリックします。
レコードの追加/編集画面で以下を入力、選択し、右下の「変更の保存」をクリックします。
名前:任意名(今回は、web としました)
タイプ:CNAME – CNAME
TTL(秒単位):3600(デフォルト)
RDATA/回答:基本(デフォルト)
Target(ターゲット):loadbalancer.ドメイン名

レコードが追加されました。
この時点では、まだDNSサーバへ反映されていません。追加した2つのレコードを登録するために右下の「変更の確認」をクリックします。

内容を確認し、右下の「変更の公開」をクリックします。これでDNSサーバへ反映されます。

これで変更が反映されました。
ドメイン取得サービス側(AWS Route53)でのネームサーバー設定
OCIのネームサーバーにおいては正しく名前解決が提供される状態になりましたが、インターネットに広く名前解決が提供されている状態にはなっていません。
そこで次は、ドメイン取得を行った登録業者(レジストラー)側のAWSのRoute53で作業します。
手順としては、AWS Route53のNSレコードをOCIのNSレコードへ変更します。
AWSのNSレコードをOCIのNSレコードへ変更
chatgpt に聞くと、Route 53 > ホストゾーンの「パブリックホストゾーン」にあるNSレコードは 編集してはいけないとのことでした。
このNSレコードは「Route 53内部のゾーン管理用」で実際にドメイン登録時に設定されているネームサーバとは別物 だそうです。
間違えて編集しないようにしてください。
Route 53 > 登録済みドメイン > ドメイン名をクリック > アクション > ネームサーバーの編集 をクリックします。

■変更前
変更前は、AWSのネームサーバーの情報が入っています。
事前にOCIのDNSゾーンを確認した際に控えておいた4つのNSレコードへ上書きして書き換えます。

■変更後
OCIのNSレコードへ上書きして書き換えました。「変更を保存」をクリックします。
※AWSでは最後の「.」をつけてもつけなくても自動補完されるそうです

反映に最大48時間かかることがあるそうなので待ちたいと思います。
右上の「ステータスを確認」をクリックします。

とりあえずリクエストは「成功」となっているので待ちたいと思います。

この時点でコマンドプロンプトで nslookup -type=ns を確認してみます。Nameserverは、AWSサーバの情報でした。
nslookup -type=ns ドメイン名

10時間以上あけて、あらためて確認するとnameserverは、オラクル社の情報に変わっていました。

Route 53 > 登録済みドメイン > ドメイン名をクリックします。
ネームサーバー欄がオラクル社のネームサーバーに変更されました。

動作確認
個人パソコンのブラウザから「http://ドメイン名」へアクセスし、名前解決されてロード・バランサ配下のWEBサーバのWEBページが表示されるか確認してみます。
以下ページが表示された場合は、「サイトに進む」をクリックします。

WEBページが表示されました。Hostnameは、DNSサーバーへ登録したCNAMEレコードが表示されています。

まとめ
AWSのRoute53で取得したドメインをOCIのDNSで使えるように設定し、名前解決されてロード・バランサ配下のWEBサーバのWEBページを表示させることができました。次は、プライベート認証局を作成して、証明書を発行し、証明書をロード・バランサへアタッチしてHTTPS通信ができるか検証していこうと思います。
以下、他の記事をまとめた一覧です。OCI以外にAWSもまとめています。