WordPressのブログサイトを無料で運営!【Googleクラウド(GCP)ならAlways Free】

2018-10-11

WordPressを無料で

 

こんにちは! アキオ(@hiroakio97)です。

 

2018年9月の中頃、Amazonから1通のメールが届きました。

Your AWS Free Tier Period is Expiring.(AWSの無料試用期間がもうすぐ終わりますよ)”とのこと。

このブログ、立ち上げ当初はAWSにホスティングされてたんです。
詳しく知りたい方はこちらの記事を読んでみてください。

参考記事:ブログ開設。AWSを使ってみました!

 

技術的な興味と1年間無料に惹かれて選んだAWSですが、月日が経つのは早いもので、アッと言うまに無料の試用期間は終了です。。

課金してそのままAWSを継続利用することも考えたんですが、当時の構成だと8,000円/月程かかるようなので断念しました。
1年間無料なのを良いことに、DBサーバーを別建てして、ロードバランサーかませてみたり、画像などの静的コンテンツは別サーバに保存の上CDNで配信したり、、と個人のブログサイトとしては無意味なほどリッチな構成にしていたので仕方ないですね。
あの構成なら月に100万PVあっても、Yahooニュースのトップに取り上げられても、余裕で乗り切れたでしょう。

そのAWSの後釜に、今回わたしが選んだのがGoogleクラウド(GCP)

 

と言うことで、今回はWordPressのブログサイトをAWSからGCPへ移行しました!ってお話。

普通ならエックスサーバーとかさくらインターネットあたりのレンタルサーバーを使うところなんでしょうけど、わたしは天邪鬼なのでGCPを選んでみました。
GCPは自由度が高い分、一般的なレンタルサーバーよりも立ち上げ作業がちょっと複雑ですが、サービスの信頼性は高いし、使用料も安いし(駆け出しの個人ブログくらいなら、なんと無料!詳しくは後述します)、今のところ言うことなしです。

今回わたしがGCPの無料枠内でWordPressを立ち上げた手順なんかを記録しておきます。
AWSとかGCPとか、話題のクラウドコンピューティングに興味がある。」もしくは「ブログの運営費を少しでも安く抑えたい!」って方々に読んでいただきたい記事です!

 

そもそもAWSとかGCPって何さ?

本題に入る前、「そもそもAWSとかGCPって何?」って話からさらっとしておきますね。
既にご存知の方はここは読み飛ばして次へどうぞ。

 

AWS・GCP共に、クラウド・コンピューティング・サービスの一種。

AWSはAmazon Web Serviceの略。
同じくGCPはGoogle Cloud Platformの略です。

つまりAWSがAmazonの、GCPがGoogleのクラウド・コンピューティング・サービスと言うわけですね。

 

じゃあ、クラウド・コンピューティングってなんでしょう?

「クラウドならなんとなく分かるけど、”コンピューティング”とか言われても。。。」って感じでしょうか。

 

一般的に”クラウド”って言えば「インターネット上に保存して、いつでもどこでも使える便利なやつ」くらいの認識ですよね。

例えば、ファイル置き場(ストレージ)ならDropboxだし、ドキュメントならEvernote、メールならGmail、音楽ならAppleミュージック、写真ならGoogleフォト、文章作成や表計算などのオフィスソフトならMicrosoftのOffice365、、すでに身の回りにはたくさんの”クラウド”があります。
誰でも1つか2つくらい、使ってるサービスがあるんじゃないでしょうか?

これらに共通する特徴は、データや機能がネット上にあって、いつでも気軽に使えること。
Googleフォトなら、写真(データ)と写真を編集したり共有したりといった機能がネット上に保存されているわけです

 

クラウド・コンピューティングもそれと同じこと。

つまり自分だけのコンピューター(サーバー)を、ネット上に持つことができるわけです。
このクラウド上のサーバーは、仮想的なもので実態がありません。
なので、移動したり、コピーしたり、削除したり、が簡単で、従来の物理的なサーバーと比べてメリットがたくさんあるわけです。

クラウドコンピューティングに関して、もっと詳しく知りたい人は下のAmazonの動画を観てくださいね。
分かりやすくまとまってます。

 

クラウド上のコンピューターでホームページを作って公開するも良し、通販サイトを運営するも良し。
便利なサービスを開発してみんなに使ってもらう事だってできちゃいます。
現にクックパッドやSpotifyのような有名・巨大サービスもクラウド上で運営されているんですよ。

ちなみに、このAmazonのAWSとGoogleのGCP、さらにMicrosoftのAzureを加えた3つのサービスが現在のクラウドのトップランナーです。
中でもAmazonは他社に先駆け2006年からクラウドサービスを提供しており、以降 先行者利益を守り続けています。
その他、IBMOracleアリババ、過去にはDellHPなどなど、、ITの巨人たちが覇を競う分野となっています。

そんな”クラウド”に、わたしはWordPressをインストールして、このブログを運営しているってわけです。

 

GCPを選んだ理由、それは利用料がタダ(Always Free)だから

上のAmazonの動画でも解説のあった通り、クラウドの利点は『リソースの柔軟性』とか『信頼性』とか色々あります。
が、個人ブログのような小規模サイトの運営で受けられる最大のメリットは、ズバリ『コスト』でしょう。

最初にお話した通り、初期のわたしのように全部盛りの奢った装備でサイトを立ち上げればコストは跳ね上がります。
が、反対に必要最低限のリソースだけで運用するのであれば、月数百円で運用することも可能です。
その辺の柔軟性がクラウド最大の利点ですね。

 

月数百円ならばそこらの一般的なレンタルサーバーと大きく違いありません。
が、クラウドの場合はさらに、太っ腹な『無料枠』が用意されています。

企業などの大口顧客がお試しや大規模サイトの開発/テストに使うための試用サンプル、というのがこの無料枠の本来の位置付け。
なので無料で使えるリソースは、低めのスペックで抑えられています。
でも個人ブログくらいならこの無料枠で十分運用可能なんですよね。。

「1年間無料で試せるのか!ブログもどれだけ続くかわかんないから、とりあえず無料で始められるのはありがたいな〜」って考えたのが去年のわたし。
技術的な興味もあったので(わたしの本業は組込み系のシステムエンジニア)、業界シェアナンバーワンのAWSでサイトを立ち上げました。

 

もちろん、GCPにも1年間300ドルの無料枠(Free Triel)があります。
さらにGCPの場合はそれに加えて、2017年3月より低スペックマシンに限り常時無料Always Free)の無料枠が追加されました。
(”低スペック”とは言っても、もちろん駆け出しの個人ブログくらいには必要十分なスペックですよ!)

 

1年間の試用期間が過ぎた後も無料というのは、ホントに大盤振る舞いですよね。
業界首位のAmazonになんとか食らいつこうとする、Googleの意地を感じます。

1年前はリサーチが足らず知らなかったんですが、当時からGCPなら常時無料枠が使えたんですね。
はじめからGCPにしておけば、今回の引っ越し作業入らなかったのになぁ、、と軽く後悔しています。

 

というわけで、安価で安心なクラウドですが、中でも個人ブログ運営者が特にGCPを選ぶ理由はズバリ『コスト』!

特に、PVも収益もまだ無い(もしくは少ない)初心者ブロガーには、サーバー代がタダというのはありがたいです。

 

GCPでWordPressの立ち上げ手順

ここからが本題。
GCPでWordPressをセットアップする手順を紹介します。

とは言っても、GCP上ですでにWordPressがインストール済みのパッケージが用意されているので、それを使えば立ち上げは楽勝。
数クリックでサイト立ち上げができます。

立ち上げた後は、テーマを選ぶなりプラグインを追加するなり、存分にカスタマイズを楽しみましょう!

 

Bitnamiの『WordPress with NGINX and SSL Certified by Bitnami』を使う

GCPにはファイルを保存するためのサービス『Storage』やデータベースサービス『SQL』、ビッグデータ解析サービス『BigQuery』、機械学習サービス『ML Engine』などなど、大小様々なサービスが用意されています。
でも、今回Wordpressの立ち上げに使うのはコンピューティングサービス『Compute Engine』だけ。

Compute EngineはGCPの中核をなすサービスで、AWSではEC2に相当します。
難しいことは抜きに、ネット上にあなただけの専用サーバーを作れるサービスと覚えておきましょう。

もちろん、こだわればStorageやSQLなどのサービスと連携して『より速く・より安全に・よりカッコよく』システムを組むこともできます。
が、そんなことすれば当然Always Freeの無料枠には収まらなくなりますので悪しからず。

 

というわけで、GCPのCompute Engine上でBitnami製のWordPressインストール済みパッケージを起動させます。

BitnamiはWordPressをはじめ、Jenkins、Mantis、Subversionなどなど、色々なウェブサービスをパッケージ化し無償で提供しているグループです。
ありがたいですね。
GCPだけでなく、AWSやAzure向けのパッケージも公開しています。

 

じゃあ、手順をザッとまとめますね。

 

GCPのアカウントの開設

以下のURLへアクセスして、GCPのアカウントを開設します。

https://cloud.google.com

 

すでにGoogleアカウントを持ってる人は、”無料トライアル”のボタンを押して利用規約に同意するだけ。
数クリックでアカウントができます。

 

『WordPress with NGINX and SSL Certified by Bitnami』でサーバー立ち上げ

GCPのアカウントができたら、ホーム画面から”Marketplace”を選びます。

Marketplaceで”Bitnami WordPress”と検索してみてください。

GCP Marketplaceのスクリーンショット
”Bitnami WordPress”で検索した結果。現在4つのパッケージがリリースされている

 

検索結果から”WordPress with NGINX and SSL Certified by Bitnami”を選択します。

Apacheよりnginxの方が軽量なので、わたしはこちらを選びました。
が、「使い慣れたApacheの方が良い!」って方は他のパッケージでも構いません。
多分大きな違いはないでしょう。

 

パッケージを選んだら、次はデプロイ。
”COMPUTE ENGINE上で起動”ボタンをクリックし、サーバーをデプロイします。

”デプロイ”とはIT用語で”システムを利用可能にする”ことです。
元は英語の『deploy = 展開する・配置する』から来ています。

デプロイ設定画面では”Zone”と”Machine type”、”Boot disk size in GB”の3点に気をつけましょう。

この3点はAlways Freeの条件になっています。
条件を満たさない場合は無料にならないので注意してください。

 

Always Free条件と設定

  • Zone
    us-west2-aがオススメ!
    無料枠条件は”バージニア州北部を除く米国リージョン”。なので、東京(asia-east1)は使えない。
    物理的な位置を考えて、無料枠条件内で日本に一番近いアメリカ西海岸のLA(us-west2)がベスト!
  • Machine type
    f1-micro、メモリ0.6GBを選択
    それ以上のスペックは課金対象となるので注意。
  • Boot disk size in GB
    30GB
    30GBまで無料です。多くても困らないので、もらえるだけもらっておきましょう。

 

以上の項目を入力したら、”デプロイ”をクリックしてデプロイ開始!

完了するまで5分程度、待ちます。

 

固定IPアドレスを取得

デプロイが完了したら、次はサーバーのIPアドレスを設定します。

デプロイ直後のサーバーは、”エフェメラル”という種類のIPアドレスがGoogleから割り振られています。

エフェメラル(ephemeral)とは、英語で『束の間の、短命な』といった意味です。
つまり、このIPアドレスは一時的なもの。
ほうっておくと、知らぬ間に変わってしまいます。

これでは世間に公開するウェブサイトとして使えません。
IPを固定しましょう。

 

やり方は簡単。

GCPホーム画面のナビゲーションメニューから、”ネットワーキング”—>”VPCネットワーク”—>”外部IPアドレス”を選びます。

エフェメラル”となっているところを”静的”に変更すれば、作業は完了です。

 

DNSを設定

DNSを設定して、先ほどのIPアドレスとあらかじめ取得済みのドメインネーム(『www.google.co.jp』とか『hiroakio.com』みたいなやつ)を関連づけます。
詳しい設定の方法は、ドメイン名登録業者のヘルプページとかを参考にしてください。

基本的にはGCP外での作業です。

 

独自ドメインの取得がまだなら、ユーザーが多くて関連情報が充実しているお名前.comがオススメ。
安いですしね。



 

(必要なら)Let’s EncryptでSSL証明書を取得してHTTPS化

HTTPS化がご希望なら、Let’s EncryptでSSL証明書を取得しましょう。

GCPホームページのナビゲーションメニューより、”コンピューティング”—>”Compute Engine”—>”VMインスタンス”を開いて”SSH”をクリック。

ターミナルが開いたら、以下のコマンドを入力します。

*上記の”YOURMAIL”と”YOURDOMAIN”の箇所は適宜、あなたのメールアドレスとサーバーのドメイン名に変えてください

 

コマンド1発で証明書の取得からWebサーバーの設定まで、全てBitnamiがやってくれるので楽チンですね。

詳しくはBitnami公式のドキュメントを参照ください。

 

WrodPress管理者ページへログインと設定

ここまで終わったら、WordPressの管理者ページへログインしてあなたのサイトをカスタマイズしていきます。
ワクワクしますね。

以下のURLからアクセスできます!

https://YOURDOMAIN/wp-admin/

*先の手順でHTTPS化していない人は、上記の”https://”を”http://”に変更してください
*上記の”YOURDOMAIN”の箇所は適宜、あなたのサーバーのドメイン名に変えてください

 

ユーザー名とパスワードはGCP上で確認できます。

GCPホームページのナビゲーションメニューから、”ツール”—>”Deployment Manager”—>”デプロイ”を開き、自分のサーバーを選択。
そこの”Admin user”と”Admin password(Temporary)”がそれです。

GCPのスクリーンショット
念のため、パスワードは後から変更しておきましょう。

 

テーマやプラグインの選択も含め、WordPressには膨大な設定項目があります。
GCPとは関係がありませんし、ここではとても書ききれないので、詳しくは別サイトに譲りますね。
網羅的に1から勉強したい人は、書籍なんかも良いかもしれません。

サイトのカスタマイズは慣れるまでは結構大変な上に、慣れると楽しくなってハマってしまうんですが、、、
そこに時間をかけるなら、1つでも多く記事を書いた方が良いということは一応書いておきます。(自戒)

 

ちなみに、わたしの場合は別サーバーからの引越しだったので、今回は特に細かい設定はなし。
All-in-one WP Migrationというプラグインを使って、記事や画像ファイル、プラグイン、テーマなど丸ごとサクッと移行できました。

引越しの際はオススメできるプラグインです。

 

Bitnamiのバナーを消す

ここまできたらサイト立ち上げ作業は完了!あとは記事を書くだけ!!
と、言いたいところですがあと少し。

立ち上がったサイトをよく見てみると、、右下にBitnamiのバナーが!

Bitnamiのバナー
離脱につながるので、不要なバナーは消しちゃいましょう!

 

素晴らしいパッケージを作ってくれたBitnamiさんには感謝ですが、バナーは邪魔なので消します。

方法は先ほどのHTTPS化と同様、ターミナルを開いて以下のコマンドを入力します。
ターミナルの開き方は、GCPホームページのナビゲーションメニューより、”コンピューティング”—>”Compute Engine”—>”VMインスタンス”を開いて”SSH”をクリック。

以下のコマンドを実行します。

sudo /opt/bitnami/apps/APPNAME/bnconfig --disable_banner 1
sudo /opt/bitnami/ctlscript.sh restart nginx

 

詳しくはBitnami公式のドキュメントを参照ください。

 

(必要なら)アップロード可能な画像サイズを拡大する

ブログ書いてると、画像を使いたくなることありますよね?
この記事の中にも、実際の作業中のスクリーンショットをいくつか掲載してますね。

そんな画像のサイズに関する設定です。

 

デフォルトでは、サイズが1MByteまでのファイルしかアップロードできません。
コレはWebサーバー(nginx)の仕様です。

でも、1MByteって結構小さいですよね?
スマホも高画素化してますし、ちょっと写真にこだわったサイトなんかだと1MByteでは足りません。

 

そこで設定を変更します。
以下の3ステップです。

1)nginxの設定ファイルに、2)アップロード可能なファイルサイズを追記して、3)nginxを再起動する。

 

1)設定ファイルの場所は以下。

/opt/bitnami/nginx/conf/bitnami/bitnami.conf

2)上記ファイルのhttp{}セクションに以下のディレクティブを追記します。(20mは20MByteを意味します。数字は適宜変更してください)

client_max_body_size 20m;

3)以下のコマンドでnginxを再起動します。

sudo /opt/bitnami/ctlscript.sh restart nginx

 

詳しくはBitnami公式のドキュメントを参照ください。

 

(必要なら)Google PageSpeed Insightsスコア改善対策

Google謹製のPageSpeed Insites
Webサイトのパフォーマンスを測定し、改善点を教えてくれるツールです。

Google検索の表示順位によって、サイトのアクセス数は大きく変わってきます。
そんなGoogleが提供するスコアと改善点ですから、わたし達サイト運営者は無視できませんね。

 

このサイトは移行直後のスコアは50点台とひどい状況でした。。

そこでPageSpeed Insightsに提案された改善点に従って、『ブラウザキャッシュ』と『画像の圧縮』を導入したところ、80点台半ばまで改善。

PageSpeed Insightsの測定結果
サーバー移行直後でデータが足りないため”ページの速度”は非表示

 

先ほどのアップロード可能なファイルサイズ拡大と同様、nginxの設定を一部追加するだけです。
具体的には、先ほど同様以下の3ステップ。

1)nginxの設定ファイルに、2)アップロード可能なファイルサイズを追記して、3)nginxを再起動する。

 

1)設定ファイルの場所は以下。

/opt/bitnami/nginx/conf/bitnami/bitnami.conf

2)上記ファイルのserver{}セクションに以下のディレクティブを追記します。

#browser cache
location ~ .*\.(jpg|gif|png|css|js|ico|woff) { 
    expires 7d;
} 
#zip images 
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_proxied any;
gzip_vary on;
gzip_min_length 1000;
gzip_types
    text/plain
    text/xml
    text/css
    text/javascript
    application/json
    application/javascript
    application/x-javascript
    application/ecmascript
    application/xml
    application/rss+xml
    application/atom+xml
    application/rdf+xml
    application/xml+rss
    application/xhtml+xml
    application/x-font-ttf
    application/x-font-opentype
    application/vnd.ms-fontobject
    image/svg+xml
    image/x-icon
    application/atom_xml
    image/png
    image/gif
    image/jpeg
    text/javascript
    text/css;
    gzip_buffers 16 8k;

3)以下のコマンドでnginxを再起動します。

sudo /opt/bitnami/ctlscript.sh restart nginx

 

ブラウザキャッシュの期間は7日間、圧縮は画像(JPEG、PNG)の他にCSSやJavascriptなどにも適用されるように設定しています。
必要に応じて変更してください。

 

以上、今回わたしがWordPressの引越しでした全作業です。

あとは黙々と記事を書くのみ!

 

残念ながら『KUSANAGI』には性能不足

Bitnamiの対抗馬で、超高速WordPressマシンと謳われる『KUSANAGI』。

 

実はわたしも最初はBitnamiではなく、KUSANAGIを試しました。
とにかく速いと評判だったので。

が、残念ながらGCPの常時無料枠には荷が重過ぎたようです。
マシンのデプロイやブログコンテンツの引越しは無事うまくいったのですが、2、3件同時にアクセスがあるとnginxがクラッシュするのです。
メモリが足りないようでした。

もともとKUSANAGIの推奨スペックはn1-standard(常時無料枠のf1-microの2ランク上位スペック)ですから、仕方ないですね。

色々調整してみましたが、低スペックの無料枠ではどうにもこうにも満足には動きません。
(今回の引越しで、ここの作業が一番時間がかかりました。そしてここが一番楽しかった。。)

あまり手を入れ過ぎても”超高速”ではなくなってしまうので、、今回は諦めてBitnamiを使うことにしました。

 

GCP移行後の様子

移行が完了して2週間ほど経ちましたが、トラブルなく安定して動いています。

このブログは現在、日に200〜400PV、月間1万弱PVほどのアクセスがありますが、CPUの使用率は3%前後です。
アクセスが集まる時間帯で瞬間的に10%を超える程度。
画像処理やサーバーのバックアップなど負荷の高い作業をする時にだけ、数十%になることがあります。

サイトが使用するテーマやプラグインなどにも依りますが、3万PVくらいまではGCPの無料枠内で行けそうです。
アクセスが増えて月間5万、10万PVとなった時に、サーバーのスペックアップもしくは再度の引越しを検討することになるでしょう。

 

(2019年6月29日 追記)

月間20,000PV(デイリー700PV)くらいで不具合がちらほら出てきました。

現在は無料のCDN『Cloudflare』を導入し、不具合は解消されています。

導入手順などまとめましたので、こちらも合わせて参考にしてください。

参考記事:無料CDN『Cloudflare』で WordPressブログサイトを高速化&負荷軽減!

(追記おしまい)

 

ちなみに、引越し後一時的にアクセスが2、3割ほど減りました。
引越しと同じタイミングでGoogleのアルゴリズム変更があったため、どちらの影響かは定かでありません。

KUSANAGIの実験でドタバタしたり、スマートな引越しではなかったのでちょっとヤキモキしましたが、2週間ほど経った現在は引越し前のアクセス状況に戻ったようです。

 



まとめ わたしが”タダ”にこだわる理由

先に書いた通り毎月1万弱のPVがあり、幸いなことに収益も同じくらいになっています。
月1,000円程度のレンタルサーバー代が出せないこともないのですが、、

それでも無料にこだわるのは、単にわたしがケチだからではありません。
(もちろんそれもあると思いますが)

なんていうか、テレビゲームの縛りプレイみたいなもんでしょうか?
1度も宿屋に止まらないで全クリする、とか、スライムだけでラスボス倒す、みたいなやり込みに近い気がします。
「みんながお金払ってるところを無料でやってる俺スゴイ!」みたいな感じです。

微妙なコダワリですが、年間1万円程度の節約にもなります。
興味のある方はぜひ真似してみてください!

不明点などあったら@hiroakio97まで気軽にどうぞ。

ではでは。