Udemy 新コース: 作って学ぶAI Builder!

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

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

Cloud Accessという無料のWordPress ホスティングサービスの勧め

 

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

 

すると、いつも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現在こちら利用中)

 

概要

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

簡単なブログでも基幹系の移行でも、考え方は似たようなところがありますね。
  1. インフラ準備 (GCP)
  2. ドメイン準備 (Freenom) とDNS設定 (GCP)
  3. データ移行 (All-in-One WP Migration プラグイン)
  4. 旧サイトからの自動転送設定 (旧サイトの ‘.htaccess’ ファイル編集)

 

Freenomとは、無料でドメイン取得できるサイトのことです。
https://www.freenom.com/ja/index.html?lang=ja

 

0番目というか、GCPのサインアップやGCP自体の説明を確認したい方はこちらのサイトをどうぞ。簡潔で非常に良い記事かと思います。
[2] アカウント登録 まで実施したら帰ってきてくださいね。
https://book.mynavi.jp/manatee/detail/id=65673

 

作成手順

インフラ準備 (GCP)

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

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

 

Bitnamiは、SSLでの通信暗号化をLet’s encryptで実施する場合、その下処理がすでに実施されているイメージなので非常におすすめです。
https://letsencrypt.org/

以下のような検索語で検索して選択します。

wordpress bitnami

 

Compute Engine上で起動します。

 

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

 

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

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

 

USであってもus-east-2など一部対象外のリージョンもありますのでご注意ください。
Googleにより、無料枠の規定が予告なく変更される場合があります。
詳細はこちらのGoogleのサイトをご覧ください。
https://cloud.google.com/free/docs/gcp-free-tier?hl=ja#always-free-usage-limits

 

デプロイができれば、以下のようにDeployment managerから結果を確認することができます。

 

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

 

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

 

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

GCPを使ってみての感想ですが、さすがマテリアルデザイン、GCPのポータル (コンソールと呼ぶ) は非常に軽快に動作します。
また、シンプルなUIで使いやすいです。GCP良いな…。

 

ドメイン準備 (Freenom) とDNS設定 (GCP)

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

もう独自ドメインを持っている方はGCPのDNS設定からご参考ください。

 

Freenomにアクセスしてサインアップします。

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

 

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

ここでは、以下のように ‘my-sample-domain’で試してみます。

 

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

 

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

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

12か月後には延伸する作業が必要になるため、スマホ等のカレンダーに登録してリマインドするなどしたほうがいいでしょう。

 

注文の確認画面が表示されますので、確定処理します。

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

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

独自ドメインを紐付けられる方は、こちらから操作してください。

 

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

 

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

 

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

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

 

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

 

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

 

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

 

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

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

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

基幹系のデータ移行もこれぐらい簡単だったらな…と思うぐらい、芸術的なレベルです。「MySQLやFTPをどうしても触りたいんだ。ツールなんかに頼らん!」というようなポリシーのない方以外ぜひお試しください。

 

旧サイトにAll-in-One WP Migrationプラグインをインストールして、エクスポートを行います。このプラグインの無料の枠内で行う場合、エクスポート先は「ファイル」としてローカルに置く必要があります。

 

なんと「検索」、「置換」という文字列置き換えの機能があり、移行先のURLで置き換えるようにURLを指定することができます。SQL文をPhpMyAdminから打つ必要ないのです。
SSL設定を後々行う予定の方はHTTPSの新サイトURLを「置換」に指定することをお勧めします。

 

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

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

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

 

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

 

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

 

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

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

WordPressのSSL暗号化と常時SSLサイト表示設定 (Google Cloud Platformの Bitnami 利用)

 

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

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

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

ちなみに、’.htaccess’ ファイルはWordPress特有のものではなく、一般的にWebサーバー (Apache) がサービスする際に読み込みされるものです。したがってWordPressのPHPアプリケーションが起動される前に処理されます。

 

SSH でアクセスします。WordPressのRootに移動します。

たぶん、WordPressのRootは’/htdocs’とか’/html’とかのディレクトリになるかと思います。
GUIが良い人はFTPでRootにアクセスしてください。私はどうしようもないギークなのでVimエディタが好きでSSHで話を進めます。
そのディレクトリには以下のようなファイルが存在しています。私の場合、以下のファイルがありました。

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

コード

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

 

存在を確認したら、.htaccessファイルをVimで開き新サイトのURLに転送されるようにします。

コード

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

 

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

 

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

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Index