Route53でTXTレコードを追加しようとした際に発生したUnknownErrorについて
Route53で管理しているドメイン(notebook.komorebi-sakuramochi.com)に対してTXTレコードを追加しようとしたところ、エラーが発生した。
レコード追加の操作はAWS Console上で行ったのだが、エラーメッセージは「エラーが発生しました。後でもう一度お試しください。(UnknownError)」というものであった。
ちなみにTXTレコードの内容は任意であり、どのような値を入力しても同じエラーが発生した。
原因は、notebook.komorebi-sakuramochi.comにCNAMEレコードがすでに設定されていたことである。
このドメインは、GitHub Pagesで公開しているWebサイト(つまり、これのこと)にカスタムドメインとして設定しているものであり、
GitHub公式のドキュメントに従ってCNAMEレコードを設定してあった。
同じラベル(サブドメイン)に対して、TXTレコードとCNAMEレコードは共存できない。さらに言えば、CNAMEは他のレコードと共存できない。理由は、CNAMEレコードのセマンティックにある。
CNAMEが設定されたドメインは、なんらかのレコードの問い合わせがあったとき、CNAMEで指定された別のドメインで設定された値を返す。
たとえばa.example.comにCNAMEレコードとしてb.example.comが設定されていたとすると、a.example.comのTXTレコードの値はb.example.comのTXTレコードの値となる。
そのため、a.example.comにCNAMEレコードとTXTレコードが同時に設定されてしまうと、
a.example.comのTXTレコードの値としてa.example.comそれ自身に設定された値を使うのかb.example.comに設定された値を使うのかを決められなくなってしまう。
このような事態を防ぐため、CNAMEレコードは他のレコードと共存できないことになっている。
このエントリは、AWS Consoleが発した”UnknownError”の、ほとんどゼロに等しい情報量を、ほんのわずかでも上げるための試みである。