ClearDBから、Azure Database for MySQL(Preview) への移行

このブログを作ったときから、ClearDBを使い続けていましたが、今年になって、Azure としてMySQLのマネージドサービスが出た(Preview)ということで、マイグレーションしてみました。

参考にしたのはこの記事
(ほぼそのまま)

https://azure.microsoft.com/ja-jp/blog/cleardb-migration-to-azure-database-for-mysql/

やったこと

  1. リンクの「https://dev.mysql.com/downloads/workbench/」からworkbenchをダウンロードしてインストール
  2. Azureポータル上から、ClearDBの接続文字列を拾い集める。ホスト名、ユーザー名、パスワード。
  3. workbenchを起動して、接続先を登録しておく。テスト接続成功でOK
  4. Azureで作っておいた Azure Database for MySQL の接続文字列を取得。ホスト名、ユーザー名、パスワード。
  5. 同様にworkbenchで接続する。このときポータル上から作業している端末のIPアドレスを許可するように設定する。「+自分の IP を追加」を選ぶと早い。
    保存。
  6. あとは、最初の記事のようにマイグレーションウィザードと!
  7. しかし、途中クエリのタイムアウトエラーが起きたので、サーバーパラメーターの「long_query_time」を10から30に変更して何度かRetryして成功。
  8. WordPress側は、ルートにある「wp-config.php」を書き換えた
  9. しかし、SSL接続を強制しているため、接続エラーとなる。(一度Debugを有効にして確認した)
  10. そこで、「wp-config.php」に
    define('MYSQL_CLIENT_FLAGS', MYSQL_CLIENT_SSL);

を追加して無事に完了

レスポンスは気持ち早くなったような気がしている。

何よりこの記事の画像にしているように、パフォーマンスをメトリックで確認できるので、使っていく中で適切なスケールとかも見えてきそうなところ。

 

Windows Azure Storage for WordPress – Azure Blob Storage と Azure Content Delivery Network

初めてのAzureネタになりそうです、こんにちは!

ことの発端は、某きたあずの方から、これ使ったらいいんじゃないのー!?

Microsoft AzureのストレージからWordPressの画像を簡単配信

ということで、その方のブログ記事を紹介してもらいました。これのメリットは、PaaSなWebアプリにはストレージの制約があるようで、大量の画像とか動画(載せないとは思うけど)、サイズの大きなものがあると、そこで上限に達してしまう可能性があります。そうしたとき、一部のリソースをほぼ無制限に置けるStorageServiceに格納しておくことで、Webアプリが使うストレージの負担を減らせるってこと、単純なネットワーク負荷、CPU負荷メモリ負荷を減らせることですね。

もうちょっと踏み込んでサービスを組み合わせてみます。上記リンクの手順を行ったうえで、さらにAzure Content Delivery Network (CDN)という配信サービスを利用してみることにしました。

このサービスの特徴は、

  • キャッシュしてくれる
  • 複数の配信する場所があり、同じURLを参照しても、接続元の地域によって自動的に近い上記の場所を参照するようになっていること
  • 瞬間的な大量アクセスに対応させることができる
  • 反映されるまでにタイムラグがある。
といっても、このBlogにそこまで必要ないだろうというのと、Webアプリそのものにはかけていないので、画像、動画などメディアリソースにアクセスが集中するときに価値が出てくるかなぁというところです。
以下は、管理ポータルから作っている様子です。CDNというサービスを作成した後、その中にエンドポイントというものを作っています。

  1. 「名前」となっている項目にURLになるので、それっぽいものに
  2. 「配信元の種類」は、ストレージ、クラウドサービス、Webアプリ、カスタムの配信元がありますが、ストレージとします
  3. 自動的に、ストレージアカウントのホスト名がリストに出てきますので対象を選びました。
  4. あとはそのまま、追加!

 

そして、Wordpress側です。こっちにはCNAMEという項目がありますので、ここにCDNのエンドポイントURLを入力します。(スラッシュなしっぽい)

 

これで設定は完了のはずです。この投稿の画像は、さっそく利用しています。

CDN作成から配信されるまでのタイムラグですが、1時間くらいかかりました。それまでメディアファイルだけアップロードして待っていたのは秘密です。このタイムラグに困るときは、先ほどのWordpress側の設定からCNAMEを一度削除すればよいだけです。

それでは!