---
title: Google Cloud Platformを使って無料でWordPressを運用する
url: "https://www.geekfujiwara.com/tech/web/890/"
author: ギークフジワラ
published: "2019-07-07T14:08:32+00:00"
updated: "2020-01-22T21:14:16+00:00"
categories: [Web]
tags: [WordPress]
description: "以前移行して利用していたCloud Accessというクラウドサービスのパフォーマンスが…あまりにも…遅すぎて耐えられない状況でした。 https://www.geekfujiwara.com/tech/831/ とはいっても、趣味程度のブ…"
---

# Google Cloud Platformを使って無料でWordPressを運用する

以前移行して利用していたCloud Accessというクラウドサービスのパフォーマンスが…あまりにも…遅すぎて耐えられない状況でした。

https://www.geekfujiwara.com/tech/831/

とはいっても、趣味程度のブログにお金はかけられない。そこで移行先の環境を「無料・広告なし・パフォーマンス良好」という難しい条件で探していました。

すると、いつもFeedしているQiitaに面白い記事が上がったのです。

https://qiita.com/ryuta69/items/dbb0db5cf7099b7a7cc4

Google Cloud Platform (GCP) か…。

マイクロソフト系をうたったブログなのに良いのか…？ともよぎりましたが、それはそれで新しい発見があるのでは？GCPとAzureを比較する良い機会になるのでは？と思い、GCPへの移行を試してみることにしました。

ほんの数か月前にCloud Accessに移行したばかりなのに狂気の沙汰ですが、どうしようもない試してみたいエンジニアの性です。少年の心です。誰も責めることはできません。

という訳で、初回のWebcrowというレンタルサーバーから初めて三世代目のインフラに移行することになりましたのでその手順を簡単に残しておきます。

Geekfujiwara インフラの歴史

1. Webcrow
2. Cloud Access
3. Google Cloud Platform (2019/7/7現在こちら利用中)

## 概要

以下のようなポイントを押さえ、移行を行います。

<div class="comment-box common-icon-box">簡単なブログでも基幹系の移行でも、考え方は似たようなところがありますね。</div>

1. インフラ準備 (GCP)
2. ドメイン準備 (Freenom) とDNS設定 (GCP)
3. データ移行 (All-in-One WP Migration プラグイン)
4. 旧サイトからの自動転送設定 (旧サイトの '.htaccess' ファイル編集)

<div class="information-box common-icon-box">Freenomとは、無料でドメイン取得できるサイトのことです。  
https://www.freenom.com/ja/index.html?lang=ja</div><div class="comment-box common-icon-box">0番目というか、GCPのサインアップやGCP自体の説明を確認したい方はこちらのサイトをどうぞ。簡潔で非常に良い記事かと思います。  
**［2］ アカウント登録** まで実施したら帰ってきてくださいね。  
https://book.mynavi.jp/manatee/detail/id=65673</div>## 作成手順

### インフラ準備 (GCP)

MarketplaceにあるBitnamiのテンプレートを用いてWordpressをデプロイします。

はじめに、Marketplaceを開きます。

https://photos.app.goo.gl/ss1xnmkmKkMaX4Qd7

<div class="information-box common-icon-box">Bitnamiは、SSLでの通信暗号化をLet’s encryptで実施する場合、その下処理がすでに実施されているイメージなので非常におすすめです。  
https://letsencrypt.org/</div><div></div>以下のような検索語で検索して選択します。

> wordpress bitnami

https://photos.app.goo.gl/HCHx7WLNhTohdEbp9

<div>Compute Engine上で起動します。</div>https://photos.app.goo.gl/S8j8ifUDVWH169Pr5

赤枠のところを編集してデプロイします。

https://photos.app.goo.gl/L5WqyKLmpnxU5cG8A

無料枠を適用するには、Machine type: f1-microシリーズ、usリージョンを選択します。

Boot disk size in GBは、30GBまで無料ですのでとりあえず30GBがおすすめです。

<div class="alert-box common-icon-box">USであってもus-east-2など一部対象外のリージョンもありますのでご注意ください。  
Googleにより、無料枠の規定が予告なく変更される場合があります。  
詳細はこちらのGoogleのサイトをご覧ください。  
https://cloud.google.com/free/docs/gcp-free-tier?hl=ja#always-free-usage-limits</div>デプロイができれば、以下のようにDeployment managerから結果を確認することができます。

https://photos.app.goo.gl/2PRs33Sefgkdbkpu7

この段階で外部IPアドレスが動的な状態のため、静的に変更します。ネットワークサービスから、外部IPアドレスを開きます。

https://photos.app.goo.gl/U8RpKhoU1v8yEg8a7

エフェメラル (= 短命) から、静的に変更します。また、この時の外部IPアドレスをメモしておきます。

https://photos.app.goo.gl/s163fHyXVfYhdbV29

ここまでで一旦環境準備は終了です。現在の状態ではIPアドレスでのアクセスしかできないため、ドメイン関係を次から準備していきます。

<div class="comment-box common-icon-box">GCPを使ってみての感想ですが、さすがマテリアルデザイン、GCPのポータル (コンソールと呼ぶ) は非常に軽快に動作します。  
また、シンプルなUIで使いやすいです。GCP良いな…。</div>### ドメイン準備 (Freenom) とDNS設定 (GCP)

独自ドメインがある方は不要な手順ですが、これから無料で取得したいという方はご参考ください。

<div class="comment-box common-icon-box">もう独自ドメインを持っている方はGCPのDNS設定からご参考ください。</div>Freenomにアクセスしてサインアップします。

https://www.freenom.com/ja/index.html?lang=ja

サインアップ後、My domainを取得するため、取得したいドメインを入力して検索します。

<div class="information-box common-icon-box">ここでは、以下のように 'my-sample-domain'で試してみます。</div>https://photos.app.goo.gl/UAfPF4TB4QHxBWE87

無料で取得できるドメイン一覧が上部に表示されますので、'今すぐ入手' をクリックします。

https://photos.app.goo.gl/SVbLNQfv1VYYX1mM7

すると、カートに入った状態になるため、スクロールして画面下部にある 'チェックアウト' から進みます。

無料で利用する初期設定の期間は12か月が最長なので、'12 Months @ FREE' を選択して 'Continue' をクリックします。

https://photos.app.goo.gl/Ntsqrzk8P6XMu2Qr6

<div class="information-box common-icon-box">12か月後には延伸する作業が必要になるため、スマホ等のカレンダーに登録してリマインドするなどしたほうがいいでしょう。</div>注文の確認画面が表示されますので、確定処理します。

https://photos.app.goo.gl/EeZAqgYhekLwXmMP6

ここまでで、WordPressアクセス用のドメインを取得することができました。ここから、そのドメインとGCPのVMのIPアドレスを紐づける作業を行います。

以下の作業はGCPで行います。

<div class="memo-box common-icon-box">独自ドメインを紐付けられる方は、こちらから操作してください。</div>https://photos.app.goo.gl/wFauvGLiyhiRoXWd6

Freenomで取得したドメイン名でゾーンを作成します。作成し終わると各種情報を確認することができますのでNameserver名をメモしておきます。

https://photos.app.goo.gl/vtfAfbHHDACdMA3W7

次に先ほど静的に設定した外部IPアドレスとドメインを関連付けます。レコードセットの追加からサブドメインを指定するなどしてAレコードを追加します。データには外部IPアドレスを入力します。

https://photos.app.goo.gl/wHbCiPB21FY4vRHRA

次に、レジストリ側で名前解決できるように先ほどメモしたGCPのNameserver名をFreenomに登録します。

Freenomの上部メニューから 'My domains' を選択して、DNSの設定をします。

https://photos.app.goo.gl/p2fSESgYFxzHxwfh8

自分が取得したドメインの一覧が表示されるため、関係するドメインのManage domainを選択します。

https://photos.app.goo.gl/iSpyMspU68rmkPki9

以下のようにGCPのNameserver名を登録します。すると、レジストリ側が利用するNameserverをGCPのものにすることができ、一定時間待てばURLベースでアクセスできるようになります。

https://photos.app.goo.gl/r5FGKHpshFmU1QyR9

ここまでで、ドメインの設定は完了です。

### データ移行 (All-in-One WP Migration プラグイン)

旧ブログからのデータ移行を簡単に行うことのできるプラグインが存在します。

やり方は簡単で説明の必要もないぐらいです。

<div class="memo-box common-icon-box">基幹系のデータ移行もこれぐらい簡単だったらな…と思うぐらい、芸術的なレベルです。**「MySQLやFTPをどうしても触りたいんだ。ツールなんかに頼らん！」**というようなポリシーのない方以外ぜひお試しください。</div>旧サイトにAll-in-One WP Migrationプラグインをインストールして、エクスポートを行います。このプラグインの無料の枠内で行う場合、エクスポート先は「ファイル」としてローカルに置く必要があります。

<div class="memo-box common-icon-box">なんと「検索」、「置換」という文字列置き換えの機能があり、移行先のURLで置き換えるようにURLを指定することができます。SQL文をPhpMyAdminから打つ必要ないのです。  
SSL設定を後々行う予定の方はHTTPSの新サイトURLを「置換」に指定することをお勧めします。</div>https://photos.app.goo.gl/7U7ps3sQYdiqoKbe6

新サイト側にはファイルのアップロード可能なサイズを増やすため、新サイトの管理ページにアクセスして、All-in-One WP Migrationをインストールに合わせて、さらにAll-in-One WP Migration ImportなるプラグインもZipファイルをアップロードする形式でインストールします。

https://photos.app.goo.gl/U389cDacxZWssv2UA

そのZipファイルのダウンロードページはこちらです。この Basic 版をインストールすることでアップロードサイズを512MBまで対応できるようになります。

https://import.wp-migration.com/

今度はAll-in-One WP Migrationプラグインのメニューのインポートから、先ほどエクスポートしたファイルをアップロードします。

https://photos.app.goo.gl/KhrjLE1h3bzre3yN6

問題なく処理されれば、以下のような画面になります。既に使えるようになっています。

https://photos.app.goo.gl/eCfqHTfx6yESaCAt5

ただこの状態では、wp-config.phpファイルにてSSL無しのHTTPのサイトにアクセスする前提の状態となっています。

もしSSL有りのサイトに常にリダイレクトされるような設定を行いたい場合、そんな記事も簡単ですが作っておりますので以下を参考にされてください。

https://www.geekfujiwara.com/tech/919/

### 旧サイトからの自動転送設定 (旧サイトの ‘.htaccess’ ファイル編集)

旧サイトに訪問される方を新サイトに自動転送する設定を行います。

私の場合、旧サイトは2か所ありますので以下の作業をそれぞれ行いました。

<div class="memo-box common-icon-box">ちなみに、'.htaccess' ファイルはWordPress特有のものではなく、一般的にWebサーバー (Apache) がサービスする際に読み込みされるものです。したがってWordPressのPHPアプリケーションが起動される前に処理されます。</div>SSH でアクセスします。WordPressのRootに移動します。

<div class="memo-box common-icon-box">たぶん、WordPressのRootは'/htdocs'とか'/html'とかのディレクトリになるかと思います。</div><div class="comment-box common-icon-box">GUIが良い人はFTPでRootにアクセスしてください。私はどうしようもないギークなのでVimエディタが好きでSSHで話を進めます。</div><div></div><div>そのディレクトリには以下のようなファイルが存在しています。私の場合、以下のファイルがありました。</div>https://photos.app.goo.gl/yNqAjeLQLW5Qxx2j9

ちなみに上記のように'.' から始まるような隠しファイルを表示するためには、以下のコマンドでファイル一覧を表示することができます。

<div>[codebox title="コード"] 

```
# Terminalにて、ディレクトリの隠しファイル含めて一覧表示
ls -all
```

\[/codebox\]

</div>存在を確認したら、.htaccessファイルをVimで開き新サイトのURLに転送されるようにします。  
\[codebox title="コード"\]

```
# .htaccess ファイルに以下を記述
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://my-new-site.com/$1 [R=301,L]
```

\[/codebox\]

以上で旧サイトからの自動転送処理は完了です。

最後までお読みいただきありがとうございました。

ご参考になれば幸いです。
