ConoHa VPS上のDNSサーバをAWS Route 53に移行した話

投稿者: | 2020-11-30

今回はConoHa VPSにて個人運用しているDNSサーバをAWS Route 53に移行した話について書いていきます。

現在の構成について

AWS Route 53に移行する前のVPS構成は以下のとおりです。

VPS上にBINDを使用し、プライマリとセカンダリの構成でDNSサーバを運用していました。プライマリはDNSサーバ専用でセカンダリは監視サーバと兼用する構成でした。

現状の課題・問題点について

現状のDNSサーバでは、以下の課題・問題点がありました。

■BINDの脆弱性について

BINDについてはJPCERT等でもよく脆弱性が報告されており、今後使用を続けるにあたりセキュリティ面で懸念がありました。DNSキャッシュポイズニング等の攻撃を受けて個人のドメインが悪用されると、不特定多数の方に迷惑をかける恐れがありました。また、脆弱性が発見されるたびにBINDの検証・更新に時間がかかっていました。

そのため、DNSサーバに関してはいずれBINDから別のものに移行したいと考えていました。

■VPSの費用、管理工数がかかる

現状、Webサーバのアクセス数やメールサーバの使用量を考えた際、VPS1台を使用してDNSサーバを運用するには費用がかかっていると感じていました。

現状のVPSの費用は以下のとおりです。

  • ConoHa メモリ:1G CPU:2Core、SSD:50G 880円/月 × 3
  • ConoHa メモリ:2G CPU:3Core、SSD:100G 1,680円/月 × 1
    合計:4,320円/月
    年間:4,320円 × 12 = 51,840円

1月からVPSを購入し始め、1年間色々と試した結果、想定よりお金がかかっていると感じました。現在の用途を考えると、この金額を継続して払い続けるより、少しでも費用を削減して他の勉強に使用できるようにしたいと考えていました。

また、DNSサーバに関しては月1回のDNSSECの鍵の作成および署名の更新、DNSサーバに対するセキュリティ対策等の作業が必要となり、自動化しにくい部分が多少手間となっていました。

以上のことから、個人のDNSサーバをどうにかしたいなと前々から思っていました。

移行先の選定

DNSサーバの移行先候補としては、以下を考えていました。

■お名前ドットコムの設定を使用

ドメインを契約しているお名前ドットコムのネームサーバを使用し、ゾーンファイルを設定する方法です。セカンダリの使用、DNSSECの使用等も可能ですが別途料金がかかります。

■AWS Route 53

Route 53はAWS上のドメイン関連を扱うサービスです。DNSサーバとしての機能はもちろんのこと、ヘルスチェックやトラフィックフローを用いた複雑なルーティングを行うことができます。ただ、DNSSECはサポートされていないため、移行後は使用できなくなります。

■Azure DNS + Traffic Manager

AzureのDNSはDNSベースでルーティングができるサービスです。Route 53と同様にDNSサーバの機能やDNSベースの複雑なルーティング等ができます。Route 53同様にDNSSECはサポートしていません。

選定の際のポイントは以下のとおりです。

  • 上記の中で一番使い慣れているのはAWS Route 53
  • AWSは無料のクレジットがそこそこ残っている
  • Azureはまだ使い慣れていないため、慣れるのと検証に時間がかかる可能性がある
  • お名前ドットコムのDNS関連を設定するUIが使いづらい
  • お名前ドットコムは追加の機能を使用するために料金がかかる
  • DNSSECは無理に使用しなくてもよい

AWS Route 53とAzure DNSの料金は、計算ツールで確認してみると同じくらいのため、今回は無料クレジットや操作に慣れているAWS Route 53を選択しました。また、DNSSECについては、無理に設定しなくても良いかなということで、移行後は使用しない方針としました。

移行後の構成

移行後の構成は以下のとおりです。

DNSサーバのプライマリを廃止、セカンダリを削除という形にしました。また、DNSサーバを移行するにあたり、監視サーバのドメイン名の変更を行いました。

移行後の構成にすることで、以下のことを解決できます。

■BINDの脆弱性について

BINDを使用しなくなったため、BINDの脆弱性を気にする必要が無くなりました。

■VPSの費用、管理工数がかかる

VPSの費用については、VPS1台分が減るため年間約8,160円の削減となりました。

  • ConoHa メモリ:1G CPU:2Core、SSD:50G 880円/月 × 2
  • ConoHa メモリ:2G CPU:3Core、SSD:100G 1,680円/月 × 1
  • AWS Route 53使用料金:2USD/月
    合計:約3,640円/月
    年間:約3,640円 × 12 = 約43,680円

管理工数については、Route 53はAWS側のマネージドサービスのため、サーバの管理やセキュリティ対策等を行う必要が無くなりました。そのため、管理工数についても削減となりました。

事前検証・移行作業の実施

初めにVPS上のBINDからAWS Route 53に移行するために、必要な作業の洗い出しを行いました。洗い出しの結果、今回はサーバ等を構築する必要がないため、Route 53でホストゾーンの作成とゾーンファイルのインポートで移行可能なことを確認しました。

事前検証は、以下の流れで実施しました。

  1. VPS上のDNSサーバからゾーンファイルの設定内容をメモしておく
  2. Route 53で必要なホストゾーンを作成する
  3. ホストゾーンにゾーンファイルの内容をインポートする
  4. 不要なレコードを削除する(主にDNSサーバ関連の設定)
  5. セカンダリのDNSサーバのレコードを変更(DNSの役割が無くなるため)
  6. Route 53側でレコードのテストを実施
  7. お名前ドットコムのネームサーバの切り替え

ゾーンファイルのインポートが想定より楽に行えたため、上記の6番までは1時間程度で完了しました。ネームサーバの切り替えに関しては、反映までに数時間かかるため、Google Analyticsで事前にユーザーの少ない時間帯に検証しました。

事前検証で問題ないことを確認後、移行作業をいつ行うかを検討します。検討の結果、11/27(金)の午前9時に実施することに決定しました。

移行作業は以下の流れで実施しました。ホストゾーンの設定等については、事前検証の際に導入していた内容をそのまま使用しました。

  1. ZabbixにてDNSサーバ関連の監視設定を無効にする
  2. お名前ドットコムのネームサーバの切り替え
  3. 動作確認(AWS側ではなくクライアント側でレコードを取得できるかどうか)
  4. Conoha側の逆引き設定の修正
  5. 旧DNSサーバのBINDを停止

事前検証をある程度行っていたためか、移行に関してはトラブル無く切り替えることができました。念のため、旧DNSサーバのBINDはいつでも起動できるように準備しておきましたが、切り戻しを行うこと無くVPSの停止となりました。

移行後の作業

DNSサーバをRoute 53へ移行後は以下の作業を行いました。

  • Route 53に関する簡易ドキュメントの作成
  • プライマリおよびセカンダリのDNSサーバの設定ファイル、ゾーンファイル等のバックアップ取得
  • プライマリDNSサーバのVPS削除
  • セカンダリのDNSサーバ関連の不要なファイルの削除、53番ポートを閉じる

プライマリDNSサーバのVPSはサーバ構築の勉強として初めて購入したVPSのため、削除する時は少し名残惜しかったです。

まとめ

VPS上のDNSサーバからAWS Route 53への移行を個人で実施しましたが、Route 53でゾーンファイルのインポートができたため、想定より時間や手間がかからずに移行できたなと感じました。

実務だと移行するための理由や移行先の選定もしっかり決めた上で移行を行うと思います。また、個人運用よりレコードの数も多く、移行に関するドキュメントや移行手順書の作成、テスト項目の作成等も必要になるため、今回以上に移行に時間がかかるかと思います。

個人で実際に移行を行ってみて、「なぜ移行するのか?」「移行先はどうするか?」「移行するために何が必要か?」「移行後の作業は?」等を考えることは勉強になりました。

インフラ関連の移行作業は様々なことを考える勉強となるため、皆さんも試してみると良いかと思います。