MySQL 仮想マシンを基盤に Azure App Service 上で動作する WordPress アプリケーション

このポストは 1 月 4 日に投稿された WordPress on Azure App Service backed by MySQL Virtual Machines の翻訳です。

 

マイクロソフトは皆様からのフィードバックにお応えするために、Azure Virtual Machines 上で実行される MySQL データベース クラスターを基盤として、Azure App Service の Web Apps で動作する WordPress アプリケーションの作成を自動化するためのハイブリッド Azure Resource Manager (ARM) テンプレートを作成しました。そして今回このテンプレートが Azure Marketplace で公開されました。

このテンプレートの特徴は以下のとおりです。

  • MySQL 5.6 サーバーをホストするために、Azure Virtual Machines に CentOS 6.6 が使用されています。
  • GTID ベースのレプリケーションの構成とテストが行われています。
  • Azure VNet で 2 ノードのマスター/スレーブ型 MySQL 構成がプロビジョニングされています。それぞれのノードが Raid 0 ストライピング用のデータ ディスク 2 台で構成され、Standard および Premium の両方のストレージ プランに対応しています。
  • 2 台の VM の前面にロード バランサーがプロビジョニングされるため、VM がインターネットに直接接続されることはありません。MySQL および SSH ポートには、ネットワーク セキュリティ グループのルールに基づいてロード バランサー経由でアクセスします。
  • 各 MySQL インスタンスに対して HTTP ベースの正常性プローブが構成され、MySQL の正常性を監視できます。

以下の図は、このソリューション テンプレートを Azure にデプロイした場合のアーキテクチャを示しています。

オープン ソースのデータ ソリューションを迅速に製品化する方法をお探しの場合は、無料試用版をお試しになり、Azure Marketplace で公開されている多様なソリューションをご検討ください。

ステップ 1

こちらをクリックしてデプロイするか、Azure ポータルの Marketplace で「WordPress using MySQL Replication Cluster」と検索します。

ステップ 2

WordPress using MySQL Replication Cluster のトップ ページで [Create] をクリックし、[Basics] ページで各パラメーターを入力します。ここでは、既存のリソース グループと新規リソース グループのどちらを選択することもできます。リージョンについては、Premium Storage を利用可能なリージョンを選択します。Premium Storage は一部のデータセンターでは提供されていません。その場合、Premium Storage を使用するには DS シリーズの VM を使用する必要があります。

ステップ 3

[WordPress information] ページで、提供されている料金レベルから Web サイトの SKU を選択します。このテンプレートは、Basic、Standard、Premium の各料金レベルに対応しています。さらに、Web Apps の Web サイト インスタンスのサイズを選択し、WordPress データベースのユーザー資格情報を入力します。WordPress データベースのユーザー資格情報には、強力なパスワードを設定してください。

ステップ 4

[Database cluster information] ページで、Virtual Machines のサイズとストレージ アカウントの種類を指定します。

  • MySQL サーバーに一意の名前を付けます。完全な DNS 名は、<MySQL の DNS名>.<リージョン>.cloudapp.azure.com という形式になります。
  • Virtual Machines のノード サイズを選択します。Virtual Machines の料金については、こちらのページでご確認ください。
  • Azure Storage の命名規則に従って、一意の Azure Storage 名を指定します。次に、Azure Storage のアカウントの種類を選択します。データベース ノードに DS シリーズの VM を使用する場合は、Premium Storage のパフォーマンスを最大限に活用するために、ストレージ アカウントの種類を既定の [Standard-LRS] ではなく、[Premium-LRS] にすることをお勧めします。
  • VM イメージおよび MySQL サーバーへのアクセスに使用するユーザー資格情報を入力します。

ステップ 5

仮想ネットワークの情報を入力します。ここでは、既存の仮想ネットワークを使用することも、仮想ネットワークを新たに作成することもできます。

ステップ 6

テンプレート用に入力したすべてのデータを確認します。

注: MySQL の Web サイト名、ストレージ名、ドメイン名は一意である必要があります。

ステップ 7

プライバシー ポリシーと使用条件を確認します。Web Apps および Azure Virtual Machines を利用するには、選択した料金レベルに応じて料金が発生します。 たとえば、Web Apps のサービス レベルを S2 (Standard、中サイズ)、Virtual Machines を D2 とした場合の推定コストは 565 ドルとなります。[Create] をクリックする前に、料金計算ツールを使用してコストを確認してください。

この Azure App Service 用テンプレートの改良に向けて、皆様からのご意見をお待ちしております。ぜひこちらのフォーラム (英語) までお気軽にご投稿ください。

 

トラブルシューティング

デプロイメントに失敗した場合は、ステップ 1 で指定したリソース グループを表示し、問題が発生したデプロイメントをクリックします。次に、問題が発生したデプロイメントを展開してスクロールし、原因となった最も古いイベントを特定して、詳細なエラー メッセージを確認します。

エラーが一時的なものである場合、または不正なパラメーターにより発生したものである場合、他のリソースがこのリソース グループに含まれていなければ、リソース グループ全体を削除してから再びデプロイすることもできます。

MySQL にアクセスする方法

MySQL サーバーへのアクセスにはパブリック DNS 名を使用できます。既定では、マスター サーバーには 3306 番ポート、スレーブ サーバーには 3307 番ポートからアクセスできます。また、既定では、ユーザー管理者にはリモート ホストからアクセスするためのすべての権限が付与されます。マスター サーバーにアクセスするためには、以下のようなコマンドを使用します。

 mysql -h mysqldnsname.eastus.cloudapp.azure.com -u admin –p

MySQL コマンド ラインから上記のコマンドを実行すると、"mysqldnsname.eastus.cloudapp.azure.com" という DNS 名の MySQL サーバーのデータベースにアクセスできます。また、MySQL Workbench (英語) を使用してデータベースにアクセスすることもできます。Virtual Machines へのアクセスには SSH を使用します。既定では、2 台の VM のパブリック SSH ポートはそれぞれ 64001 および 64002 に設定されています。VM で以下のコマンドを実行すると、MySQL の正常性プローブを確認できます。ステータス コード 200 が返されれば、MySQL は正常です。

 wget https://10.0.1.4:9200
wget https://10.0.1.5:9200

MySQL の正常性を監視する方法

MySQL の正常性を確認するには、MySQL プローブに HTTP クエリを発行し、ステータス コード 200 が返されるかどうかを確認します。以下のコマンドの DNS 名およびリージョンを変更して使用してください。

 wget https://mysqldns.eastus.cloudapp.azure.com:9200
wget https://mysqldns.eastus.cloudapp.azure.com:9201

GitHub リポジトリ (英語) ではこの他にもテンプレートが公開されていますので、併せてご確認ください。