MicrosoftAzureでWordPressを構築しました。この記事では複数記事に分けて以下について記載します。

  • MicrosoftAzureとは
  • MicrosoftAzureでWordPressサイトを構築した理由
  • MicrosoftAzureでのWordPress構築手順(簡単)
  • 良かった点・使いにくかった点その他感想

このサイトの記事を見てくださる方で、ガッツリ技術的なものを期待する方もいないと思うので3つ目については簡単に記載します。

MicrosoftAzure(アジュール)とは

現在このサイトは、AWS(エーダブリュエス)のLightsail(ライトセイル)で構築しています。Lightsailについては、以前構築記事を記載したので詳しいことはそちらを参考にしてください。
整理がてら簡単に説明してみます。

WordPressとは、ホームページを簡単に作成する、だれでも使える無料の仕組みです。
特徴はインターネット上のサーバー(ホームページ(自宅)をのっける土地)上で最初から最後まで作成ができることです。

ホームページを乗っける土地は、無料のものもありますが、通常は有料でレンタルサーバー会社からレンタルします。最近のレンタルサーバーは、WordPress普及とともに、ワンクリックでワードプレスが構築できるような仕組みを備えているところも多いです。

またレンタルサーバーは、共有ホスティングが特徴で一つの土地に区画を切って区画ごとに顧客に貸している形になります。レンタルサーバー会社はいわば土地を貸し出してくれる地主です。

MicrosoftAzure

MicrosoftAzureやAWS(AmazonWebService)はクラウドコンピューティングサービスといいます。(上の画像をクリックでMicrosoftAzureサイトに飛びます)
土地主というよりも「土地になる前のものを売っている会社」になります。そのため、レンサバよりも高価になることが多いですが、借りた人は好みの仕様で土地や自宅を作ることができます。
普通にwebサイトを運営するだけならむしろ高いし構築が面倒ですが、自前のCDNサーバーを設定してWebサイトに設定したり、ほかのサービスやツールと連携させるには非常に便利です。
また構築が面倒と書きましたが、私が現在使用してるLightsailのように、派生品とも言うべき手軽で基本料金がレンサバと変わらない、インスタントなパッケージされたサービスもあります。

AWSやMicrosoftAzureでは、WEBサイトだけでなく開発や分析などいろいろな目的で目的で使用されるために、インフラサービスともいわれます。
Azureの名称ですが、英語で「青空」という単語だそうです。

レンサバもMicrosoftAzureやAWSも、どちらもメリットもデメリットもありますので、目的に合わせて利用するとよいと思います。

MicrosoftAzureでWordpressサイトを構築した理由

理由は以下の二つです。

  • LightsailはPHPバージョン操作ができない
  • MicrosoftAzureの月額1万円くらいのサブスクリプションを持ってる

Lghtsailは、(SSL化を自前で設定した場合は価格が)安い(構築)早い(管理もAWSと連携すんなりで)やさしいと3拍子揃った優秀なやつなんですが、一つだけPHPのバージョン管理ができないんですよね…。
LightsailはプラットフォームがBitnamiというパッケージで、webサーバーのPHPはそれに依存しています。そのphpが、こちらではどうあってもアプデできない。

公式(英語)で同じ質問がされていたのですが、bitnami側の回答は「できない。回避策としては新しくインスタンスを立ててほしい(あともうすぐバージョンアップするね!)」でした。
で、bitnamiは現在phpバージョンを公開してないので、立ててから中身をCLIでのぞくしかなく、自分はWordpressのバージョンが55になったころからたまーに地道にインスタンス作ってたのですが、いつまでたってもphpが7.3のままだよ?

おそらく私のようなLightsail派は、ダッシュボードの「553来てますよ~早くアプデしてね~」ってメッセージにごめんねごめんと言ってることでしょう(大げさだけど)
PHPのバージョンアップが、できるようになったのかな~というニュースも聞いたのですが、どうもそうじゃないみたい。


そんな感じで、今年11月に入ってたインスタンスの中身がPHP73だったことでがっかりすると同時に思い出した、私はMicrosoftAzureのサブスク持ってるじゃないか…。
あと、365のビジネスライセンスもサブスクで持っているのですが、MicrosoftAzureとも相性いいはずだ、これはMicrosoftAzureを使いなさいというお告げかもね…というわけで、やってみることにしました。
(その後、MicrosoftAzureを使いだしてすぐにbitnamiがphp74になったことを知り、絶望したのはまた別ですが)

現在は、構築してCDNかけたとこまできました。あと、imgackが足りないので入れないといけないのと、データベースが開発ランクのMysqlinAPPのままです。Azureのお告げによると、MYSQLは不安定なんでAzureDatabaseSQL使ってよねと言われていますが、お金がかかるようなので、いったんこのままにしています。

そんなにアクセスのあるサイトではないので、このまま1月ほど様子を見て課金状態を確認し、クレジット内に収まりそうならこちらへ引っ越す予定です。

MicrosoftAzureでのWordPress構築手順(簡単)

構築手順の前に、自分が(ちゃんと)触ったことのあるクラウドサービスでの自分が感じた難易度(構築と管理両方合わせて)は以下の通りです。

AWSEC2>>|越えられない壁|>>MicrosoftAzureWebAPP(今回はこれ)>>>|越えられるかもしれない壁|>>>Lightsail>>>|越えられる壁|>>レンサバ

こんな印象ですね…壁多すぎだよね…あくまで自分の印象なので…。
Lightsailがインスタントラーメンかな?というくらい楽だったので、正直、Azureもそんな感じで挑んでました…違ってたごめんなさい…_| ̄|○


具体的な面倒ポイントについては最後に書きますので、以下簡単に構築手順です。
がっつり公式ドキュメントにお世話になりました。そしてとても読みづらかった。
そのため、以下の2番目のサイトにもお世話になりました。2個目のサイトは比較的新しいのにUIがガラッと変わっていたり、自分がしたいことと手順が異なった部分も多々ありましたが丁寧で助かりました、ありがとうございます。

マイクロソフトWebApp

なりきりアーキテクト

WordPress構築

構築手順については、マニュアル参考に自分で考えられる範囲でいくつか手順を試して、一番効率よかったもの(自分がした範囲で)を記載します。構築はざっくり書いて以下の流れで行います。
また前提として、WEBサイトとして機能しながら、節約できる部分はする方向で行いました。

  • リソースグループ作成
  • リソース作成
  • configphp書き換え
  • カスタムドメイン設定(DNSも設定)
  • SSL化
  • CDNサーバー作成
  • キャッシュ管理設定
  • カスタムドメイン設定(DNSも設定)
  • SSL化
  • サイトチェック

【手順】

1、リソースグループを作ります。

2、リソースをWebAppから設定します。今回はWordPressです。大変沢山種類がありますが、よく見ると全部異なるので、webサイト用の入れます。せっかくAzureを使っているのでWindowsServerIISを選択しました。
プランはBasicB1を選択しました。B1は月額約7000円ですが、B1以上でないとSSLを設定することができません。単純に価格面では、AzureでWEBサイトを運用するときのネックの一つだと思います。
データベースは、Azure側からは、運用するのであれば有料のAzure Database for MySQLを使うように記載されていますが、私の場合は単純計算でクレジットをオーバーしそうに感じたので、開発用のMySQLinAPPにしました。
プロビジョニングが終了したら、AzureドメインのついたURLからアクセスしてWordPressをインストールします。

3、この段階でWordpressのダッシュボードへ入って中を確認してみましたが、4~5回ほど作り直してみた全部の回で、テーマエディタが使用できなくなっていました。
調べるとwp-config.phpでブロックされていたので、config.phpを編集しました。
また、最初リソースを作ったときはbashで操作しましたが、リソースを選択して構成→全般からPHPのバージョンを上げることができますので上げておきます。ついでにHttpも2.0にしておき、ダウンタイム回避のために常時接続にします。

4、カスタムドメインを設定します。5番の理由でサブドメインで設定します。この時にDNS側でもレコードを書き換えあるいは追加します。AzureにもDNSがあります。AzureDNSを使用する際はリソースのカスタムドメインを変更することができます。
自分はRoute53でドメイン管理をしているので、そちらに新しくレコードを作成しました。

5、SSL化します。Azure発行のApp Service マネージド証明書があるので、それを設定します。ただし、Azureの無料SSLはサブドメインでなければ使えません。SNI(Server Name Indication)を選択します。

上記は最初に躓いた場所です。自分は無料のLetsEncryptで設定するつもりでした。期間が短い(90日)のとWEBサーバーがIISなので、IISで設定してcronする予定でしたが、Azureもくもく会に参加したときに、詳しい方が拡張での方法を教えてくださいました。+最後に他にも調べてくださったようで「Azure付属の無料のもあるようだ」と言われました。今回、そのAzureの無料のマネージド証明を使用しました。
無料でSSL化するなら、LetsEncryを直接とってくる・同左を拡張で設定する・Azure付属のものを使うの少なくとも3パターンあるんだよね。拡張はAzure公式でなく有志が作成したものなのですが、Azure内から設定できます。


とりあえずここまで。長くなったので、次回続きを書きます。