サービスイン前後のDNSレコードのTTLについてまとめる

Webサービスを作るときには、ドメインを取得して、そのドメインDNSレコードを設定すると思います.
先輩から言われたことでもあるんですがサービスイン前ならTTLを短くしておいたほうが良いです.

TL;DR

  • サービスイン前はTTLを短くする
  • サービスイン後はTTLをある程度長くしておく

TTLを短くする

サービスイン前に限定した話になりますが、
AWSなどといったサービスを利用していると頻繁にインスタンスが変わったりするため、
AレコードなどといったDNSレコードの設定の頻度も比較的多かったりします.

そういった時にレコードのTTLを長くしていると、どうなりますか?
変更しても中々各環境で更新されずに、開発や検証のペースが落ちてしまうのは間違いないです.

NSレコードは5~10分、Aレコードなどは1分あたりに設定しておきます.

サービスイン後は?

サービスイン後は逆に短く設定する理由がないです.
何故なら、TTLを短く設定している時のメリットよりもデメリットの方が大きいからです.
どんなデメリットが考えられるでしょうか?

  • DNSキャッシュポイズニングの危険性
  • DNSサーバーへの負荷が上がる

パッと出てくるのは、この2つです.

DNSキャッシュポイズニングの危険性

ここでは、DNSキャッシュポイズニングの具体的な流れについては触れませんが、TTLが短い場合はこの攻撃を遂行しやすくなります.
TTLを長くすることで、その危険性をある程度は下げることが可能です.

DNSサーバーへの負荷が上がる

TTLが短いと、エンドユーザー側の端末でもキャッシュの期限が切れ、短い間隔でDNSサーバーに対してリクエストされるようになります.
となると、DNSサーバー側はどうでしょうか?
多少リクエストが増えたところ問題はないですが、負荷が上がってしまうことが容易に考えられます.
多くの人達に使ってもらうサービスなら、こういった細かい点を、どこかのタイミングで考えれると良いですね.

最後に

確かにサービスイン前だと、早く変わってもらわないと困る時が多々あるので、TTLを短くしておくのが嬉しいですね.
短くしたら、サービスイン前後で設定を見直すことを忘れないようにしましょう.
サービスイン後には、NSレコードは1日程度にしておくのが良いです.(割りと一般的らしい)