今年もこのサイトのサブスク移行をしたよ

Azure

こんにちは。

去年に引き続き今年もこのサイトのサブスク移行をしました。

ちなみに、去年やったのはこんな感じ。今年は楽できると思ってたんだけどなー。

Azure Web Apps で構築した Wordpress 環境のサブスクリプションの移行ではまったこと
こんにちは。 今回は、自分がこのサイトのサブスクリプションの移行を行った際に色々とはまったので、その忘備録を残します。 ちなみに、このブログですが、2018/6/30~7/6 まで、403のエラーとなっていました。 というのは、6/30 ま...

 

ちなみに、去年と比べてこのサイトの構成は

  • カスタムドメインを入れている
  • Azure FrontDoor Service を入れている

という部分が違います。

さっくり構成はこんな感じ。

 

進め方としては、こんなくらいラフな感じ。

  • 去年のことを踏まえて、サブスクリプション変更をする
  • 変更できないやつは作りなおす

 

サブスクリプション変更

変更前に調べておくとよさそうなこと

サブスク変更の前提条件には、同じテナントにサブスクリプションが紐づいているなどの前提条件があります。

その辺は以下のドキュメントを読んでおきましょう。
(自分は読まずにやってるけどw)

Move resources to a new subscription or resource group - Azure Resource Manager
Use Azure Resource Manager to move resources to a new resource group or subscription.

 

サブスク変更できるリソースについては、以下のドキュメントに載っています。

Move operation support by resource type - Azure Resource Manager
Lists the Azure resource types that can be moved to a new resource group, subscription, or region.

ちなみに、日本語ドキュメントの方がサブスク移行をサポートしているリソースを見るだけならわかりやすいかも。(ちょっと更新のラグがあるけど)

リソースを新しいサブスクリプションまたはリソース グループに移動する - Azure Resource Manager
Azure Resource Manager を使用して、リソースを新しいリソース グループまたはサブスクリプションに移動します。

 

ちなみに、テナントとサブスクの関係については、こんな記事書いてるのでご参考にしてください。

Microsoft Azure のテナントとサブスクリプションの関係
こんにちは。   今回は、Microsoft Azure を使っていると出てくる「テナント」と「サブスクリプション」についてです。 この辺って、結構大切なことなのですが、個人で検証しているとなかなかわかりにくいところだと思います。 テナント...

 

サブスク変更でのトラブルシュートのドキュメントは以下に用意されてます。
(読んでないけどw)

Move resources to a new subscription or resource group - Azure Resource Manager
Use Azure Resource Manager to move resources to a new resource group or subscription.

 

事前に見ておくといいと書いたけど、自分は何も見ずにどんどんマイグレーションしていきました。今見ると、ちゃんと調べておけば回避できたこともいくつかあったかな。

 

実際にやったこと

今回は、

  • ひとまず、サブスクリプション変更をやってみる
  • エラーが出たら、その場で一番時間がかからずに解決できそうなことをやる

という作戦です。

最近、ちょっとお仕事忙しいのでこれをやる気持ちの余裕がなかったので。。。

 

サブスクリプション変更(DB+Storage)

去年の移行のときは、Azure Database for MySQL がサブスクリプション変更をサポートしてなかったんです。でも、今年は違います。

去年の10月にサポートされたんですね。

General availability: Move MySQL servers to new resource groups and subscriptions | Azure updates | Microsoft Azure
Move Azure Database for MySQL servers to a new resource group or subscription.

そんで、Azure 接続はサブスクリプションまたぎができるので、ポータルからあっさりサブスクリプションの変更ができます。

Storage も同様です。

 

サブスクリプション変更(Web Apps)

Web Apps もサブスクリプション変更ができます。

リソースを新しいサブスクリプションまたはリソース グループに移動する - Azure Resource Manager
Azure Resource Manager を使用して、リソースを新しいリソース グループまたはサブスクリプションに移動します。

App Service のドキュメントの通り、App Service Plan で相乗りしている Web Apps を1つのリソースグループにまとめて移動しようとしたのですが、なんかエラーが出て移動できない。。。。

しょうがないので、App Service Plan を付け替えて最小単位の構成を作って移動しようとしてもエラーが出て移動ができない。

なので、今回はデータはもうすでにサブスクリプション移行が出来ているので、新しく Web Apps + WordPress を作っちゃいました。

カスタムドメインでの運用をしているので、Web Apps が同じじゃなきゃいけない理由もなかったので。

 

移行自体は、

  1. 新しいサブスクリプションの Web Apps + WordPress の環境を作る
  2. 移行前の環境で使っていた、WordPress の プラグインを全部インストールする。
  3. DB 接続を切り替える

で、すんなり終わりました。

 

ただ、これがちょっとこの後のめんどくささを産む要因になっていった気がします。

 

サブスクリプション変更(FrontDoor Service)

FrontDoor Service もサブスクリプション変更をサポートしています。(というか、今ドキュメントを見てサポートされていたんだと知るw)

変更をしてみたところエラーとなったので、FrontDoor マネージドな証明書を組み込んでいるので多分その辺が原因だったんじゃないかなって、今となっては思います。

でも、証明書組み込むからサポートされていないリソースだと思い込んでいたので、新しいサブスクリプションで FrontDoor を作成しました。

 

作成後、お名前.com で、CNAME の向き先を新しい FrontDoor Service に振り向けました。

この辺までは、何も問題なく、nslookup で向き先が変わったのを確認して、FrontDoor Service のカスタムドメインの設定もして特に問題ありませんでした。

接続テストも特に問題なかったので、順調に向いているのかなーって思ったのですが、なんとなく、サブスクリプション変更前の FrontDoor がルーティングしている Web Apps を停止してから接続テストをしたら、App Service が停止しているエラーがでるようになったんですよね。

つまり、nslookup では、意図した通り新しい FrontDoor で名前解決できているけど、実際に閲覧しに行くときは古い FrontDoor にアクセスしているといった感じ。

 

よくわかんなかったので、ひとまず前からやろうって思ってた、Azure DNS を使ってレコードの管理に切り替えてみました。

この時点では、CNAME の向き先を新しい FrontDoor に向けたけど、どっかでキャッシュでも効いちゃって、古い方に向いているときがあるのかなって思ってたのでその切り分けがしたかったからです。

ちなみにレコードの追加はこんな感じで、Azureのリソースを選んで設定する感じになります。

でも、結果が変わらなかったので、古い FrontDoor Service を削除して接続できるようになりました。

 

この移行方法で FrontDoor で困ったこと

この移行方法で、最も困ったのは、FrontDoor のカスタムドメインに対する証明書です。

この証明書は、FrontDoor のマネージドな証明書を使っていて新規に設定する場合はとても便利なものです。

で、今回は FrontDoor のサービスが変わってる(証明書が変わる)のに、CNAME が変わらないからなのですが、このケースで証明書を再発行するには、前の証明書が Clean up されるのを待つ必要があります。

これが、8時間かかるんですよ。。。

 

8時間経過後、新規と同じく証明書の設定をしていったのですが、今度は設定途中のプロセスで2時間くらい処理に時間がかかり、その間なんもできない時間がありました。

ひとまず、https を http にリダイレクトしてごまかしてましたけどw

ということで、カスタムドメインの設定だけで約半日。。。orz

 

結果的に

結果的にこんな構成になりました。

って、構成はほとんど変わってないですけどねw

 

一応このサイトの課題としては、こんなんを抱えてるので今年の中で改善していきたいなー。

  • 元々、Web Apps にカスタムドメインを付けないで運用していて、いまだに azurewebsites.net でのアクセスがある
  • 記事毎の目次ができないので、そろそろテンプレを見直したい
  • 1サイトだけど、P1V2で CPU がギリギリでスローダウン気味

 

まとめ

ということで、まぜ全部の移行が終わってなくて若干課金がかかっちゃってるけど、一番のメインのサイトが新しいサブスクリプションに移行できたので一安心です。

で、やっぱり移行は事前にドキュメントをちゃんと読んでおいた方が、作戦ミスも少なくていいのかなーって思います。

 

来年もまたサブスク移行しているのかな。。。(そだったらやだなー)

コメント

タイトルとURLをコピーしました