2015年1月11日日曜日

DNSの移行方法について

お仕事の話ですが、最近、DNSを自社で保持しているBINDから、Amazon Web Services の Route53 にゾーン情報を移行しました。DNSに関する知識がほとんど無いところからやったので色々調べまくったりして大変でした。
その上で分かったDNSサーバの移行(ゾーン情報の移行)の方法について、今後の自分のためにメモを残しておきたいと思います。

覚えておきたい基礎知識

下記のようなサイトを見て学習しました。まずは「○○レコードってなんぞや?」というところを理解する必要があります。その次に、「じゃあ、具体的にどういう流れで移行すればいいんだ?」というところを調べていきます。


1.移行元ゾーンの様々なTTLを怒られない程度に短くする(移行2日前など)

まずは自社のBIND内のゾーンの色んなTTLを可能な限り短くします。
AレコードやNSレコードはもちろんのこと、SOAレコードのTTLも短くしてください。
目安としては、AレコードやNSレコードは300秒程度まで減らしてください。
SOAレコードは複数種類のTTLがありますが、それぞれ10分の1程度まで減らします。
個体差はあると思いますが、1日もあれば短くなったTTLで各DNSサーバの情報が書き換わっている(更新した情報が浸透できている)と思いますので、変更作業実施予定日の2日前ぐらいにはやっておきたいところです。

変更値の目安(これくらいまで短くしてください)

Aレコード … 300秒
NSレコード … 300秒
MXレコード … 300秒
TXTレコード … 300秒
SOAレコードのRefresh … 600
SOAレコードのRetry … 300
SOAレコードのExpire … 6000
SOAレコードのNegative cache TTL … 300
SOAレコードは特に’‘Negative cache TTL’‘を短くすることが大切です。これが短くなってると、もしなんかのミスで「そんなサーバ存在しねーよ」状態になってもNegative CacheのTTLの間隔で更新することが可能になります。


2.移行元を停止せずに移行先にゾーン情報をコピーする(移行2日前)

コピー方法はいろいろありますが、移行先サーバを作成して、そこに移管したいゾーンと全く同じ情報を登録します。
すみません、すべての情報のうち、移行元のDNSサーバー自身に関する情報は不要です。
すなわち、DNSサーバーを指し示すAレコードや、CNAME、NSレコードなどです。
BINDからAWS Route53への移行方法としては、Perlのスクリプトを使う方法が有名みたいです。しかし、この記事執筆時の移行元BINDサーバは、なぜかそれが使えなかったため、手動でコピーしました。ゾーンが数十など行くようであれば、どうにかしてツールでコピーすることをお勧めします。


3.移行先ゾーンの様々なTTLを怒られない程度に短くする(移行2日前)

移行先のゾーンのTTLも短くしてください。短さの程度は移行元と同じ程度で構いません。
理由は、移行の際に移行先ゾーンのTTLも短いと、設定漏れ内容の再設定を行うカバー作業の時間が短縮されるためです。
移行が完了したら、世の中のためにデフォルト値に戻しておきましょう。


4.移行元のゾーン情報に移管先のDNSサーバをNSレコードで登録する(移行2日前)

移行元のBINDサーバのゾーンに、移行先のDNSサーバをNSレコードとして登録します。
それにより、一時的に「DNSサーバの仲間が増えたから紹介するぜ!」状態になります。
つまり、レジストラの管理画面からWhois情報変更後に、古い情報を元に移行元サーバへ
問い合わせを行ってきたエンドユーザーに対して、応答可能なDNSサーバな1つとして、
移行先のサーバを紹介することができ、アクセスが途切れるのを防ぎます。
これをやっておかないと、さまざまなキャッシュが消えるまで全く接続できない状態になります。


5.移行先のサーバが世に出たことを確認する(移行1日前)

nslookup(dig)テスト【DNSサーバ接続確認】([[http://www.cman.jp/network/support/nslookup.html]])
などを使って、移行先のサーバが移行元サーバの新しいNSレコードとして追加されたかを確認する。
追加されていれば、前述の「DNSサーバの仲間が増えたから紹介するぜ!」状態になっていると言えます。

6.レジストラの管理画面からDNSサーバを移管先へ変更する(移行1日前)

お名前.comやムームードメインの管理画面へログインし、DNSサーバー(ネームサーバーと書かれていることも)の設定内容を変更します。 
自社でDNSサーバーを運用している場合は、そのDNSサーバーが設定画面に書かれていると思いますので、 その内容を移行先のDNSサーバーのものへ更新します。 
‘’これが実質的な「移行開始作業」’‘となり、ここから色んなキャッシュがクリアされるまで、いわゆる「長ければ数日、 サイトが見れなくなる」可能性があります。

7.旧サーバが参照されていないことを確認する (移行2、3日後)

TTLを確認して、切れたタイミングでDNSサーバー接続確認を再度行ってください。
SOAレコードおよびその他すべてのレコードの情報が移行先のDNSサーバーで設定したものとなっていれば、
移行は完了しています。それを確認した後、移行元DNSサーバからゾーン情報を削除するなり、
移行元DNSサーバーを停止するなりしてください。
もしものために、ゾーン情報を削除したり、サーバー自体を削除したりする前に、一度停止してみることをオススメします。


以上、これでいつかまた自分がDNSサーバの移行をやらなきゃいけなくなった時に、自分の記事を見てなんとかできることでしょう。未来の俺、検討を祈る。


2015年1月1日木曜日

2014年の個人的な目標の達成度合いを確認してみた。

あけましておめでとうございます。
皆様にとって2014年はいかがでしたでしょうか?
私にとってはとても荒波にもまれた一年でした。いやー辛かった!
正直死ぬかと思いました。でも死にませんでした。
今年も精一杯頑張ろうと思います。
今年もよろしくお願いします。

もしよろしければ、元旦に投げ銭をお願いします!
Kindleでさくっと見れる写真集になっています。
内容としてはちょっと悲しい感じの、寂れた地方の写真集なのですが、ちょっと大きな志をお持ちの方にとっては刺激になる内容だと思います。「地方はこんなに寂れているのか!再生しなければ!」的な。あと海綺麗です。




ということで、新年最初の投稿は、去年の目標の結果を確認してみましたという内容です。
相変わらず目標(というか希望)を書くだけ書いて定期チェックとかしていない模様。


No目標結果コメント
1月に1回この目標の進捗状況を確認する確認していなかった。
212kg痩せろ夏は痩せてたんだけど今は去年の正月と同じぐらいまでに戻っていてまずい。
3入院しない入院しなかった。
4視力悪化させない極端に悪くなってメガネをかけたりはしなかった。現状維持できたと言える。
5月間残業時間平均30時間位内無理
6ノリで仕事せずに帰る転職してからは帰ることができていたけど、年末はちょっとノリで仕事してた。
7技術書を月に1冊以上読むGoogle Analyticsなど、ちょっと軽めのものもあったけど、年に12冊は読むことが出来た。
8一年で40冊以上本を読む27冊でした。一応記録更新。
9年始と年末で積み本の数を比較する比較していなかったので比較する
10Androidアプリを完成させるやってない
11GooglePlayに開発者アカウント開設してアプリ公開やってない
12Kindleで技術書を出すやってない
13IT技術系スライドを1個以上うpやってない
14自分のvim設定ファイルを作って管理するクライアントエディタとしてVim使ってない。
15WindowsServer2012R2のブログ記事20個Windows Server 触らなくなったから書いてない
16PowerShellのブログ記事10個書いてない
17windowsでメールサーバを立てられるようになるできた
18Linuxでメールサーバを立てられるようになるできた
19systemdについて勉強する今年は早々に勉強しなきゃ
20LPIC1取る101のみ
21IT系勉強会に1回くらい参加するしてない
22PCの大掃除してない
23USB3+SSD+Win8.1なノートPC買う買ったノートはUSB3+SSD+Win7
24GoogleAppEngineを触ってみるやってない
25ネットワークスペシャリスト試験を受けるやってない
26ネットワークスペシャリストに合格するやってない
27積み本の英語勉強系書籍を2冊は読む読んでない
28TOEICを受ける受けてない
29TOEICの点数50点以上UP(前回は390)受けてない
30ブログ記事40個以上無理
31週に一度ジョギングする総合するとやれてない
32「週に一度ジョギングする」が守れないのでなんかリマインドの仕組み考える考えてない
33NISA口座開設やってない
34投資信託に挑戦やってない
35外国株式について勉強するやってない
36株式150%一応投入したお金はほんの少しだけ増えた。
37引っ越しする引っ越しした
38洗濯機を買い換える買い替えた。ビッグドラム超優秀
39文房具を断舎利する捨てた
40文房具整理を設計する設計というか筆箱の数減らした
41実家へ仕送り○○○○万円頑張って仕送りした。
42ExchangeManagementShellのチートシートを作る作ってない。関わらなくなったのでもういいや
43SoundCloudに曲を6曲以上うp2015年はやりたい
44マイク(まともな入力デバイス)を買うマイク買った
45埃かぶってる巡音ルカで曲を作る作りたい
46IncubusのEchoをギター完コピやってない
47http://ondav.tumblr.com/ を更新する更新してない。存在すらわすれてた
48フォロワーさんとカラオケ行く行ってない。カラオケ好きなフォロワーさんいたら是非
49スタジオに2回くらい行く1回行った気がする
50美術館に1回くらい行く1回も行ってない
51陶芸体験教室でマイマグカップ作る(ほしくなった)なんでこんなこと思いついたの?
52編み物をするか毛糸を捨てる毛糸捨てた
53赤いブーツを買う買ってない。いまあるブーツを履きつぶす
54新しい服を買う買った。部屋着
55電気毛布を買う買ってない。もう1個欲しい。
56スマフォ買い換える(たぶんAndroid)買い替えた。Galaxy Note 3
57ポケモン全国図鑑完成少し進んだけど全然完成までたどりついてない。
58ポケモン大会に挑戦(6年ぶり2度目)募集期間とかすれ違ってできなかった。
59住宅ローンを支払い終える(どうぶつの森)あと3回ぐらい
60年末は実家に帰る帰ってない
61親戚の子どもたちに3DSLLかWiiU投げつけるポケモンROASを送りつけた!
62年賀状を書く書いた!
63年内にこの目標の評価をする評価してない




種類個数
13
4
44
合計63

○率は20%くらいかな?
マイルストーンを設定して定期進捗確認を行うべきだと思います。
進捗、割とダメでした!
でも、色々無駄に風呂敷広げた目標の20%達成しているとかんがえるとあながち悪くなかったのかも。
今年もおんなじ感じで行こうかしら?それとももっと範囲を狭めて、オールクリアできる目標を立てるべきかしら?

とりあえず「自分」というプロジェクトのマネジメントは破綻してたことがよく分かりましたw