WordPressをGCPで無料で始める方法

WordPress
WordPress
0

WordPressはXサーバなどのレンタルサーバを使うのが主流だと思いますが、Google Cloud Platform (GCP)を使うとAlways Freeというプログラムによって無料でサイトを運営することができるのでその方法を紹介します。

スポンサーリンク

無料でどこまでできるか

GCPのAlways Freeで用意されているスペックはかなり低いですが、これからWordPressでブログを始めようという人には十分なスペックです。

1日に1,000PVくらいあっても恐らく平気です。
それ以上になれば収益も十分あると思うので課金することを考慮しても良さそうです。

とにかく初心者はお金をかけたくないと思うのでGCPを使ってWordPressを立ち上げることはオススメです。
AWSのやAzureではトライアルはありますが、それが終わると有料になってしまいます。

※独自ドメインには人それぞれですが年間1000円程度のお金がかかります。 また、静的IPアドレスが2020/07/01より月額約300円と有料になってしまいました。 しかし、GCPは300ドル分のクレジットがもらえるので最初の12ヶ月は無料で使えます。

スポンサーリンク

GCPアカウントを作成する

Googleアカウントを持っていればできます。
最初は無料トライアルで300ドル分のクレジットが貰えます。

Googleアカウントは乗っ取られるとやばいの2段階認証はしておきましょう。(デフォルトではオフになっています。)
アカウントのログイン設定からできます。

WordPressパッケージのインストール

GCP内のMarketplaceで「WordPress Bitnami」と検索。
複数出てきますが、私は「WordPress with NGINX and SSL Certified by Bitnamiwp」を選択しました。(下の画像の一番下)

KUSANAGIがとて速くて良いという記事が他にありましたが、このサイトでは無料枠ではクラッシュしてしまうという報告をしています。
残念ですがBitnamiを使いましょう。
Bitnamiがそこまで遅いわけではありません。

また、NGINX(エンジンエックス)はApacheと比較して軽量らしいです。
歴史的にはApache方が古く全体的には1位の市場シェアですが、NGINXが猛追しており、上位100万位のウェブサイトではしばらく前からNGINXが圧勝しているそう。
初心者なので技術的な差分は説明しきれないので、この比較サイトを載せておきます。

Always Freeに必要な設定

GCPの公式サイトはこちら
デプロイできたら無料枠で運用するために次のことをします。

  • Zone
    • GCPingツールを使うと、無料で使えるバージニア州北部を除く米国リージョンの中ではオレゴン(us-west1)が最も速いのでそれを選択。
  • Machine Type
    • f1-microのみ使用可能。
  • Boot Disc
    • 30GBまでのHDD。

静的な外部IPアドレスの設定

GCPホームページのナビゲーションメニュー
-> VPN ネットワーク
-> 外部IPアドレス

現状のままだと種類が「エフェメラル」になっていると思います。
これではIPアドレスが変わってしまうので、適当な名前をつけて「静的」に変更します。

※2020/07/01より静的IPアドレスが月額約300円と有料になってしまいます。 しかし、少なくともトライアル期間の12ヶ月は無料なので安心してください。

DNSを設定

お名前.comなどでドメインを取得し、上のIPアドレスと紐付けます。
お名前.comでの設定方法はこちら

ドメインがいらない場合は必要ありません。
しかし、下で説明するCloudflareが使えなくなるのでドメインを取得することをオススメします。

立ち上げ確認

https://YOURDOMAIN/wp-admin/を検索すると上の画面が出てきます。
YOURDOMAINは自分のものに変換してください。
上のように無事に表示されたら、ユーザ名とパスワードを入力します。

GCPホームページのナビゲーションメニュー
-> ツール
-> Deployment Manager
-> デプロイ
-> 自分のサーバー名

そこのAdmin userとAdmin password(Temporary)がそれです。

バナーの消去

初期設定では右下にバナーがあります。(上の画像では消えている状態です。)
邪魔なので消しましょう。

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

アップロードファイルのサイズ変更

NGINXではアップロードできるファイルのサイズが1MBまでです。 これでは小さすぎるので、変更します。

確認したら40MBでした。(間違ってたらすみません。)
写真をアップロードするには十分だと思いますが、念の為変更方法を書いておきます。

変更方法がここに書かれています。

sudo nano /opt/bitnami/apps/wordpress/conf/nginx-app.conf

でファイルを開いて、最後に

client_max_body_size 50m;

を追加します。
50mは50MBまでということです。

自動でWordPressからGCPに画像を保存する設定

画像をCloud Storageに保存することで、サイトのスピードアップにつながります。
Always Free ではCloud Storageを毎月5GBまで無料で使うことができます。

GCPホームページのナビゲーションメニュー
-> Storage > ブラウザ
-> バケットを作成

ドメイン名などの適当な名前をつけます。
ストレージクラスは無料枠のResionalを選択。
場所は無料枠のus-west1 (オレゴン)を選択。
残りはデフォルトでOK。

以上でGCP側の設定は終わりです、次にWordPress側の設定です。

WordPress側の管理画面
-> プラグイン
-> 新規追加
-> 「WP-Stateless – Google Cloud Storage」を検索
-> インストール&有効化

自分のGoogleアカウントにログインし、自分のプロジェクト名とバケット名を選択してください。

これで完了です。

予算とアラートの設定

万が一請求が来ると嫌なのでアラートを設定しておきます。

GCPホームページのナビゲーションメニュー
-> 支払い
-> 予算とアラート
-> 予算を作成

あとは適当な名前を付けて、全てのプロジェクトを選択し、指定額を1円にして保存すれば完了です。

これでもしも課金が発生したときはアラートしてくれるようになっています。

Cloudflareの設定

Content Delivery Network (CDN) を使うと、

  • キャッシュによってGCP本体への負荷軽減、高速化
  • セキュリティの向上
  • サイトのSSL化、コンテンツの圧縮、HTTP/3対応

など様々な恩恵に預かることができます。

Cloudflareは無料枠が用意されているCDNです。
有料プランは大規模なサイトでない限り不要です。

WordPressにCloudflare公式のプラグインが存在します。
キャッシュされたCSSファイルなどを更新した時に、Cloudflare管理画面でキャッシュ削除する必要がありますが、自動でキャッシュ削除できるようになります。
プラグインの導入方法はこちらをご参照ください。

アカウントの作成

まずは、Cloudflareのアカウントをこちらから作成します。
次に自分のサイトのドメイン名を入力し、無料のプランを選択します。

DNSの設定

上でドメインをIPアドレスと紐付けたと思います。
使っているDNSをCloudflareのものに変更します。

Cloudflare側でドメインを入力するとCloudflare側のネームサーバが表示されます。
それをコピーし、自分が利用しているドメイン管理会社のページからネームサーバを変更します。

HTTPS化

CloudflareからHTTPS化をすることができます。まずはSSL/TLS設定をします。

Cloudflareのホーム画面
-> SSL/TLS
-> 概要
-> SSL/TLS 暗号化モード
-> 「フル」にチェック

次に、

Cloudflareのホーム画面
-> SSL/TLS
-> エッジ証明書
-> 「常にHTTPSを使用」をチェック

これで「http」のリクエストを全て「https」にリダイレクトされるようになります。
また、同じところにある「HTTPSの自動リライト」をチェックしておく良いです。

次に、WordPressの設定を変更します。
WordPressの一般設定を開くと、

  • WordPress アドレス (URL)
  • サイトアドレス (URL)

がまだhttp://YOURDOMAINになっていると思います。
ここが直接変えられないと思うので、wp-config.phpファイルをいじります。

GCPホームページのナビゲーションメニュー
-> コンピューティング
-> Compute Engine
-> VMインスタンス
-> SSH

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

sudo nano /opt/bitnami/apps/wordpress/htdocs/wp-config.php

そしてこの部分を、

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/');

次のように変更します。(httpsにするだけ)

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/');

そして再スタートします。

sudo /opt/bitnami/ctlscript.sh restart nginx

これをやらないとGutenbergエディタで投稿ができないなどの不具合が生じます。
次の画像のようになっていれば成功です。

【おまけ】Let’s EncryptでSSL証明書を取得し、HTTPS化

GCPホームページのナビゲーションメニュー
-> コンピューティング
-> Compute Engine
-> VMインスタンス
-> SSH

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

sudo /opt/bitnami/letsencrypt/scripts/generate-certificate.sh -m YOURMAIL -d YOURDOMAIN

YOURMAILYOURDOMAINは自分のものに変換してください。

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

中国とオーストラリアからのアクセス制限

中国とオーストラリアからのアクセスはAlways Freeから除かれているので、遮断しておく必要があります。
Cloudflareのファイアウォールは特定の国からのアクセスを制限してくれます。

Cloudflareのホーム画面
-> ファイアウォール
-> ファイアウォールルール
-> ファイアウォールを作成

ルール名を適当につけて、次のものを選択してデプロイをすれば完了です。

フィールド:国
オペレーター:次にある
値:Australia, China
以下を実行:ブロック

※WordPress のプラグイン「IP Geo Block」でもできます。

参考サイト

このサイトこのサイトを参考にしました。

スポンサーリンク
H-MEMO

コメント