rakumoコンサルティング部の小山(@koyhoge)です。
既存のWordPressをGCPに移行する解説記事の4回目(最終回)です。
- 第1回 構築済のWordPressをGoogle App Engineに移行する(1)
- 第2回 構築済のWordPressをGoogle App Engineに移行する(2)
- 第3回 構築済のWordPressをGoogle App Engineに移行する(3)
- 第4回 構築済のWordPressをGoogle App Engineに移行する(4)
- 番外編 構築済のWordPressをGoogle App Engineに移行する(費用編)
前回で Google App Engine (GAE) 上に WordPress をデプロイできましたので、今回はその設定と既存データのインポートを行っていきます。
WordPress のインストール
前回は WordPress のインストール画面で終わっていたと思いますので、インストール作業を続けましょう。ここでいう「インストール」の意味は、ファイルの配置ではなくデータベースに対する各種テーブルの初期化になります。
サイトのタイトルやユーザ名などを入力するのは、通常の WordPress のインストールと同様です。
ページ下部の「WordPress をインストール」ボタンを押すと、インストール作業が完了しログイン画面になります。先ほど入力したユーザ名/パスワードでログインします。
プラグインの有効化
DB がまだ初期状態なので、WPonGAE をはじめとする各種プラグインはまだ有効になっていません。管理画面のプラグインページからそれらを有効化します。
まず WordPress の管理画面から「プラグイン」を選びます。
以前の環境でインストールされていたプラグインが無効の状態でリストアップされていますので、すべて有効にします。今回「Batcache Manager」と「Google App Engine for WordPress」という2つのプラグインが新たに追加されているので、これも忘れずに有効化しておきます。
データのインポート
いよいよ第1回でエクスポートしたバックアップデータを、新しく設置した WordPress にインポートします。
Google Cloud Storage にデータを置く
GAEプラグインでは、インポートデータを Google Cloud Storage (GCS) から読み込むようになっているので、まずは GCS にファイルをアップロードします。
GCP コンソールの左側メニューから「Storage」を選びます。
プロジェクトが管理している GCS バケットがリストで表示されます。その中に xxx.appspot.com という GAE プラグインが自動で作成したバケットがあるはずなので、そこをクリックします。
バケットブラウザが表示されるので、上部の「ファイルをアップロード」ボタンを押します。
ファイル選択ダイアログが表示されるので、第1回でエクスポートしたXMLファイルを選択し、GCSにアップロードします。
インポートの実行
準備は整ったのでインポート作業を行いましょう。WordPress 管理画面の「ツール」から「インポート」を選びます。
Import WordPress という画面が表示されます。下部にXMLファイルの場所を入力するフォームがありますので、そこにさきほど GCS にアップロードしたファイル名を入力します。
GCS のデフォルトのバケット名まではすでに入っているので、それに追加する形でファイル名を入れます。
例)
gs://wp-on-gae-187408.appspot.com/
↓
gs://wp-on-gae-187408.appspot.com/wordpresssample.wordpress.2017-11-20.xml
ファイル名を入力したら「Import from specified file」ボタンを押します。
すると既存の WordPress アカウントの移行をどうするかという確認画面が表示されます。デフォルトではアカウント情報もそのままインポートしてくれますので、そのままでかまわないでしょう。
下部に「Import Attachments」というセクションがあります。これは既存の WordPress にアップロードしているメディアファイルもインポートするかという設定になります。チェックを入れると、既存の WordPress からメディアファイルを GCS 上にコピーして、記事中のリンクをそちらに入れ替えてくれます。
最後に「Submit」ボタンを押します。作業が進むと無事にインポートが終了し、記事が入った WordPress を確認できると思います。
DNS の切り替え
既存コンテンツの移行漏れがないか十分に確認を行った後、公開サイトを既存のものから GAE に切り替えます。 GAE でカスタムドメインを使用するには、まずそのドメインを GCP に登録の後、GAE の管理画面で設定を行います。
ここではデプロイしたGAEインスタンスに「wpsample.hoge.org」を割り当てる作業を行ってみます。
まず GAE のメニューから「設定」→「カスタムドメイン」を選択し、
「使用するドメイン」に、登録されているドメインが表示されていることを確認して下さい。まだドメインが登録されていない場合は、表示されるガイドに従ってTXTレコードを追加して、ドメインを登録する手順になりますが、ここでは省略します。
「続行」ボタンを押すと、「hoge.org」と「www.hoge.org」の2つの候補が表れます。今回はこれらには割り当てないので、右端の「☓」を押して削除します。
割り当てたいホスト名「wpsample.hoge.org」を入力して、「マッピングを保存」ボタンを押します。
確認画面に変わるので「続行」ボタンを押します。
次のフェーズに移り、DNSに登録する内容が表示されます。いくつも表示されていますが、基本的には一番下の CNAME だけ設定すれば良いです。(DNS情報を登録するWeb管理画面によっては、A/AAAAとCNAMEは共存できないものもあります)
そこで以下の内容に相当する DNS レコードを登録します。これはDNSの管理をどのように行っているかによって違うので省略します。
wpsample.hoge.org IN CNAME ghs.googlehosted.com.
しばらくすると CNAME 設定を GCP 側が認識して、GAEのカスタムドメインとして表示されます。
GAE の注意点
WordPress 本体やプラグインの更新について
WordPress 本体、テーマやプラグインはけっこう頻繁に更新が行われます。WordPress の管理画面を見ると更新通知が目立つところに表示されので、どうしても更新しなきゃという圧が強まりますね。
ところが GAE ではデプロイした環境に対してファイルの追加や変更はできないので、WordPress 管理画面からの本体やプラグインのバージョンアップは行ってはいけません。というかできません。
ではどうするかというと、第3回で用意した GAE のデプロイ元のファイルを変更して、再度デプロイという流れになります。デプロイ元の WordPress を動作可能にしておいて、そちらの管理画面から本体、テーマ、プラグインの更新を行い、更新が完了したファイルツリーに対して再び
$ glcoud app deploy
を行えば良いわけです。
まとめ
4回にわたって、既存の WordPress を GAE に移行する作業を詳しく解説しました。GAE に環境を移行することには以下のメリットがあります。
VPSや仮想マシン1台で運用している場合には、どちらが運用効率が良いかは判断が難しいところですが、アクセスの規模が大きかったり複数台で運用している場合ほど、GAE のメリットが大きくなってくると思います。