Google Cloud Platform (GCP) で WordPress を運用する様々な方法

2017/11/23パート2投稿しました。

最近、Google Cloud Platform (GCP) のドキュメントを調べていて、WordPress の運用方法についていくつか気が付いたことがあるので、まとめて紹介します。

Google Cloud Platform (GCP) とは

Google が提供している様々なクラウドサービスをまとめて、Google Cloud Platform (GCP) といいます。
アプリケーションの実行環境を提供する Google App Engine (GAE) や、スケーラブルな仮想マシンを提供するGoogle Compute Engine (GCE) は、それらのサービスの一部です。

GAE スタンダード環境で運用する方法

このサイトで実践している運用方法です。
英語ですが、Google公式のスターターキットにインストール手順が記載されています。
GAE は、あくまで PHP 等のプログラムで作成されたアプリケーションを実行するだけのPaaS です。WordPress を利用するには、メディア等ファイルをアップロードするための Google Cloud Storage (GCS) や、MySQL を使用するための Cloud SQL、といった他のGCP サービスも連携して利用する必要があります。
アプリケーションはトラフィックに応じて自動でスケールアップまたはスケールダウンするように設定でき、使用したリソースの分だけ課金される料金体系になっています。
GAE スタンダード環境には、1日毎に無料利用枠が用意されていて、小規模なWebサイトなら無料の範囲内で利用することもできます。
ただし、Cloud SQL には無料利用枠がないため、最低でも Cloud SQL で $8.46~/月 の費用がかかります。
また、セキュリティ上の制限が厳しく、WordPress本体やプラグイン等のインストール/アップグレードは手動で実施する手間があります。

GAE フレキシブル環境で運用する方法

最近になって気が付いたのですが、GCP のドキュメントにApp Engine フレキシブル環境での WordPress のホスティングというチュートリアルが載っていました。
日本語になっていて、インストール手順も簡略化されているので、とても親切です。
WP-CLIを使ってプラグイン等を更新する手順も載っています。
(実際に試したわけではありませんが、GAE フレキシブル環境でも、管理画面からの自動更新はできないはずです。)
ただ、GAE フレキシブル環境には無料利用枠がないので、どれくらいの費用が掛かるのか気になります。

GCE で運用する方法

GCE は IaaS なので、仮想マシンに Web サーバ(Apache)と PHP と MySQL をインストールした上で、WordPress をデプロイする必要があります。
WordPressのランチャーを使用すると、動作環境の構築も含めて一括でインストールすることができます。
GAE のような制限もないため、WordPress の自動更新も使えます。
推定費用は、以前確認した時は$24.67/月だったはずですが、2017/08/28 現在は$49.35/月になっています。また、同じようなランチャーではなんと10分の1の$4.28/月になっています。
これは、使用するマシンタイプによって推定費用が変わっているようです。
自動スケーリングの設定はできないため、要件に合ったマシンタイプを見極めることが肝心です。

まとめ

以上、3通りの運用方法を紹介しました。
それぞれの特徴を表にまとめてみます。

GAE スタンダード環境 GAE フレキシブル環境 GCE
インストール手順 長い 普通 短い
スケーリング 自動 自動 手動
運用費用 $8.46~/月 不明 $4.28~/月
アップグレード 手動 WP-CLI 自動

いかがでしょうか。
実際にやってみると、意外と日本語化が面倒だったりするかもしれませんが、是非プロジェクトに合った運用方法で挑戦してみてください。

WordCamp Kyoto 2017 に当日スタッフとして参加してきました

6月24日と25日に京都大学で開催された、WordCamp Kyoto 2017 に参加してきました。
WordCamp に参加するのは初めてでしたが、折角の機会だと考え、当日スタッフに申し込みました。
僕はセッションの撮影とタイムキーパーの係でした。
撮影係は立ちっぱなしが辛くて、背骨が折れるんじゃないかと思いましたが、やりながらでもセッションは聞けたのでラッキーでした。


あとから動画を見返して気がついたんですが、明るいスライドだと文字が白飛びしてしまって読めませんね…
明るさの調整をするところまで頭が回りませんでした。すみませんm(__)m

ところで、このセッションの10分以降を見てください。
tab index はなくした方が良いと言われているそうですが、これはなぜでしょうか。
ネットで検索しても古い情報ばかり出てくるし、WCAG 2.0 からも見つけられませんでした…
そもそも、本人に聞くチャンスがあったのに、怖じ気付いてしまって聞けませんでした(^^;

こういうところがなんとも不甲斐ないですね。

それでも、このイベントに参加したおかげでいろんな方と接することができました。
今思えばすごい人ばかりで、大変貴重な経験でした。
この経験を今後に活かせるか否かが僕の運命を大きく左右することでしょう。

親切に接してくださった皆さん、本当にありがとうございました。

プラグイン作りました

さくっと、WordPressのプラグインを作ってみました。

Google Analytics のトラッキングコードを各ページに挿入するだけのプラグインです。

そんなの、もっと高機能なプラグインがいくらでもあるんですけど、作ってみたかったんです。

https://github.com/hirofumi2012/analyticstracking

最初は、トラッキングIDもろともphpファイルに書いてたんですけど、Settings API を使って、管理画面の 設定 > 一般 から入力できるようになりました。

ちょっと設定項目を追加するくらいなら、管理メニューまで作成しなくてもいいんですね。

  1. register_setting() と add_settings_field() を使用して、新たな設定フィールドを作成する。
  2. フィールドをまとめる場合は、add_settings_section() を使用して独自のセクションを作成する。
  3. セクションをまとめる場合は、管理メニューを追加する。

こんな感じの優先順位で設計すればいいと思いました。

もし、実装に不具合や改善点等あれば、マサカリを投げてください。
さくっと、顔面で受け止める覚悟です。

WordPress を Google App Engine (GAE) 東京リージョンで運用した場合のレスポンス

このサイトは、WordPress を Google App Engine (GAE) にインストールして運用しています。
それが分かるように、あえて独自ドメインは取得せず、 appspot.com サブドメインのままにしてあります(笑)
ちなみに、WordBench Nagano Vol.8 でも紹介させていただきましたが、インストールする方法はGoogle公式のスターターキットに載っています。

※注意点はスライドにまとめてあります↓

そして、今度は東京リージョンで運用してます!
単純に比較して良いのかわかりませんが、wp-cron.php のレイテンシを見ると、アメリカリージョンで運用しているサイトでは、1,500 ~ 2,000 ms くらいかかっているのに対して、東京リージョンの方では、300 msくらいになっています。

これって、一般的なレンタルサーバ等と比べてどうなんでしょうか。

WordBench Nagano vol.9 に参加して来ました

ブログを立ち上げてたら、こないだのWordBenchから1週間以上も経ってしまいました(^^;

今回のWordBenchは長野市での開催ということで、始まるまで善光寺の辺りをぶらぶらしてました。

すごくいい天気で、暑かったです。

会場に戻ると、間もなくWordBenchが始まりました。

最初のセッションは、とろゆにさんのテーマ作成再入門講座!
テーマを作成するために必要な最低限のファイル構成や_sというテーマを基にカスタマイズしていく方法等、非常に参考になるお話でした。

初参加の人が多かったため、とろゆにさんはいつもよりマイルドでした。

吉岡さんのセッションは、写真の撮影に関するお話でした。
私は、写真はスマホで撮るくらいですが、割と興味がある話題で面白かったです。

写真の明るさを調整する方法がいくつもあって、それぞれ特徴があるんですね。

  • 露光時間を長くすれば、明るくなりぶれやすくなる。
  • ISOを大きくすれば、明るくなりノイズが出やすくなる。
  • 絞りを緩めれば、明るくなりぼけやすくなる。

明るい場所で写真がきれいに撮れるのは、明るく調整する必要がないからなんですね。
納得しました。

濱野さんのセッションは、デザインのお話で、今の自分にとって最も重要な内容でした。

デザインには3つの分野があります。

  • レイアウト
  • フォント
  • 配色

このうち、レイアウトの分野について学びました。
余白を充分に空けることやパーツの端をそろえることを実践していきたいと思います。

最後はジャスティス岡本さんのセッションでした。
名刺交換タイムから始まり、ジャスティス岡本さんの経験談が非常に面白かったです。
その中にも、個人的にすごく共感する話や業界に関する話もあり、これからの自分のキャリアを考えるヒントになりました。
紹介されたMonacaというツールもブラウザ上でネイティブアプリを開発できるのは画期的だと思いました。

懇親会では、さらに踏み込んだ話をたくさん聞いちゃいました。
最初は行かないつもりだったんですが、参加して本当によかったです。