rakumoコンサルティング部 Tech Blog

GCPの構築ノウハウをそろりと公開 コンサル部によるテックブログ

構築済のWordPressをGoogle App Engineに移行する(1)

rakumoコンサルティング部の小山(@koyhoge)です。

GCPの使い方の一例として、既存のWordPressサイトをGoogle App Engine (GAE)に移転する方法を、これから数回に分けて書いていこうと思います。

クラウド化の基本

既存サービスをクラウド化する場合は、その構成要素をしっかり分けて考えることが必要になります。WordPressもその例外ではなく、どの部分をどこに移していくかということを明確にしなければいけません。現在動いているものを単に仮想マシンに乗せ換えるだけでは、クラウドのメリットを活かしているとは言えません。

WordPressの構成要素を挙げてみると、以下のようになります。

  • WordPressそのもののPHPプログラム
  • データベースに格納されているブログデータ
  • サイトにアップロードされているメディアライブラリ

このそれぞれに関して、移行を考えていきます。

GCP移行に使えるツール/プラグイン

WordPressGCPに載せるのに便利なツール/プラグインがいくつか公開されています。

WordPress on App Engine Starter Project

github.com

Google自らによって作成された、WordPressGCPで動かすためのプラグインをまとめたスターターキットです。上記の構成要素の各部分をまとめてGCP上に移行することができます。

WP-Stateless

ja.wordpress.org

既存のWordPress上にある画像や動画などのメディアファイルを、Google Cloud Storage (GCS)に移行するためのプラグインです。すでにあるファイルをGCSに自動で一括アップロードする機能の他に、以下の3つの動作モードを持っています。

  • バックアップ
    • 単にメディアのバックアップとしてGCSを使用
  • CDN
    • サーバ上のファイルは残したままCDNとしてGCSを使う
  • ステートレス
    • メディアの置き場としてGCSだけを使う

メディアファイルの転送に対するサーバー負荷を減らしたいだけならば、このプラグインは大変良くできているので有用ですが、今回はWordPressの動作環境全部をGCPに移行することを考えているので、Googleのスタータープロジェクトの方を採用することにします。

各構成要素の移行先のサービス

ではWordPress on App Engine Starter Project (以下 WPonGAE)では、最初に書いた構成要素をそれぞれどのようにGCPに移すのでしょうか?

WordPressそのもののPHPプログラム

これはPaaSであるGoogle App Engine (GAE)に乗せます。そもそもそのためのプロジェクトだから当然ですね。GAEは、特定のプログラムの実行環境だけを統合管理してくれるサービスです。今回の場合で言えば、OS等の基礎部分はユーザは気にすること無く、PHPの動作環境だけを提供してくれます。

データベースに格納されているブログデータ

WordPressはデータベースとしてMySQLを使いますが、GAEからアクセス可能なMySQLサービスとしてGoogle Cloud SQLがあります。フルマネージドなRDBMSとしてこれを使えば問題ないでしょう。

サイトにアップロードされているメディアライブラリ

WPonGAEでも、WP-Statelessと同様にGoogle Cloud Storage (GCS)をメディアファイルの置き場として使用します。GAEではプログラムが動作するディスクに書き込むことはできないので、WP-Statelessで言うところのステートレスモードに相当する動作になります。

次回からは具体的な移行作業について解説していきます。