shinya について

技術の進化についていけていないシステムエンジニア。浅く広く、何でも大体はこなせるエンジニアで重宝されてる(つもり)。でもやっぱり特化した武器欲しい。 備忘録として記事を投稿していますが、少しでも誰かの助けになればと思います。 最近はプロジェクトでReact(TypeScript )を触っています。 趣味でギター弾きます。

GCPの無料枠でWordPressを運用する

画像

目的

Google Cloud Platform(以下、GCP)は、Always Freeという無料枠をもらえますが、その無料枠の範囲でWordPressを運用して、運用費用を節約しようという目的です。

まずはCGPの無料枠の確認

12 か月$300 の無料クレジットとAlways Freeという無料枠をもらえます。
$300は、初期だと¥33,800前後の金額まで利用できるよと表示されています。
結構太っ腹ですね。有効期間は110日のようです。12ヶ月です。
WordPressをGCPで稼働させるためには、Google Compute Engine(以下GCE)という仮想マシンを作成し、その仮想マシンにWordpressをインストールすることになります。GCEに適用される無料枠を確認します。

Google Cloud Platform の無料枠(https://cloud.google.com/free/?hl=ja

1 f1-micro インスタンス(1 か月あたり、北バージニア [us-east4] を除く米国リージョンのみ)

30 GB-月の HDD

5 GB-月のスナップショット(一部のリージョン)

1 GB の北米から全リージョン宛ての下りネットワーク(1 か月あたり、中国とオーストラリアを除く

つまり、無料枠の適用範囲は

  • 仮想マシンは、1つだけ作成
  • 北バージニア(us-east4)以外の米国リージョンのインスタンス
  • 30BG未満のHDD
  • 仮想マシンからの転送量(下り)が1GB未満
  • 中国とオーストラリアからのアクセスは制限する

という条件であれば無料枠内で利用できそうです。

気を付けないといけないのは「中国とオーストラリアからのアクセスは制限する」というところですね。ファイアウォールがあるようなので、それで弾いていく予定です。

現状と目標

バリュードメインでドメイン登録を行い、CoreServerというレンタルサーバーでWordPressを稼働させています。この構成をValueDomain+GCPという構成にします。ついでにCloudFlareという無料キャッシュサーバーを適用し、更なる高速化をはか図りたいところです。

移行計画

まず、全体構成を検討します。今回のポイントは2つです。

1.ドメインの名前解決

現状と目標でも軽く触れましたが、このブログはもともとドメインはValueDomainで取得し、WebサーバーはCoreServerで稼働していました。ドメイン名の管理を他社に移管するには少々手間であるのと、一度に色々変更すると、どこで設定漏れがあって疎通ができなくなるか分かりにくくなるため、ドメイン管理はValueDomainのままとして、Webサーバーを先に移行することにしました。

ですので、Webサーバーは移行し、ドメインだけはValueDomainで継続契約中となる形になります。。HTTPリクエストの流れとしては一度ValueDomainのDNSサーバーで受けて、指定したドメイン名だけGCPの仮想マシンのIPへ受け流すような設定になっています。お名前ドットコムや、ムームードメインを利用の方も同じような流れでリクエストを処理できると思います。

2.GCE(Google Compute Engine)インスタンスの構築方法

WordPressを稼働させるには、色々な構成が考えられますが、基本的にWebサーバーとデータベースがあれば稼働します。今回はWebサーバーにはNginx、データベースにはMySQLを利用できる「WordPress with NGINX and SSL Certified by Bitnami」というMarketPlaceのイメージをデプロイすることにしました。このデータイメージの塊をそのままデプロイすることで、1から設定していかなくても簡単にWordPressがインストールされた仮想マシンを利用することができます。

作業手順

具体的な作業手順を検討します。

作業の流れとしては、以下のような感じです。

  1. GCPにプロジェクトを作成
  2. MarketPlaceから仮想マシンを作成
  3. IPアドレスによるURL指定で動作確認
  4. WordPressのツールによる、旧サーバーからの記事のExport
  5. WordPressのツールによる、新サーバーへの記事のImport
  6. WordPressに表示されるBitnamiのバナーの削除
  7. DNSサーバーの設定変更(新しいWebサーバー(仮想マシン)のIPを設定)
  8. DNSの浸透待ち
  9. ドメイン名によるURL指定で動作確認
  10. mvコマンドによる対象サイトディレクトリの変更
  11. Nginxのnginx-vhosts.confファイルの変更
  12. Nginxの再起動
  13. Let's EncryptでブログのSSL化
  14. WordPressプラグインの追加(WordPressで投稿を保存した場合に「更新できませんでした」と表示される事象の対応)
  15. ファイアウォールの設定

ポイントは、

  • MarketPlaceからインスタンスを作成しデプロイすること
  • 旧サーバーから記事を移送後、DNS設定を変更すること
  • DNSが新しいサーバーに切り替わってからSSLを設定すること

の3点です。

作業の中では、viで直接ファイルを編集してしまいますが、viに慣れていない方はSFTPでファイルをダウンロードして編集後アップデートするという手段を取れると思います。sftpでの接続方法は、こちらの記事が参考になるんではないでしょうか。「GCPのVMインスタンスでSFTP接続する方法

各作業手順は、別の記事で書いていこうと思います。