Twitter で以下のように適当なことを言ってしまったので、懺悔を兼ねて書きます。
移行の場合には Websites が CNAME や A の値チェックしてるから、DNS の TTL 切れたら切り替わるみたいな方法使えないのは微妙な気はする
— しばやん (@shibayan) 2015, 2月 4
今までは Websites をリージョン間での移行しかやったことが無かったので、既存サイトから移行する方法について検証しました。結論としては以下の手順で問題無いです。
- awverify を指す CNAME レコードを DNS に追加
- 移行先の Websites にドメインを追加
- 既存の A / CNAME レコードが指す IP アドレス、ドメインを変更
実際に手持ちのドメインで検証したので順を追って見ていきます。まずは DNS に awverify を指す CNAME レコードを追加して、少しの時間待ちます。
DNS の設定画面は使っているレジストラによって異なりますが、作業はほぼ同じになるはずです。
CNAME レコードが追加出来たら Azure の管理ポータルから Websites を選んでドメインの追加を行います。タイミングが良ければ、すぐに登録可能な状態になります。
ドメイン名を入力して赤いアイコンが表示された場合には、少し時間を空けて再度試してください。今までの経験上、長くても 1 日以内には登録可能な状態になります。
確認のために既存のドメインに対して nslookup を叩いてみると、今までの IP アドレスが返ってきます。
この時点で Websites 側で正しい IP アドレスやホスト名なのかチェックしているのかと思ってましたが、実際には awverify を使った場合にはそっちだけ見ているようです。
ドメインの登録が完了したら、後は好きなタイミングで既存の A / CNAME レコードが指している IP アドレスやドメインを Websites に書き換えれば完了です。
これで DNS のキャッシュが更新されたタイミングで、新しい Websites にアクセスされるようになります。キャッシュが完全に新しくなるまで古いサイトを動かしておけば、ダウンタイムは発生しないでしょう。