はてなから「ブログProの1年契約がそろそろ切れるよ」というメールがきたので、とくになにも考えずはてなポイントを購入したのですが、よくよく冷静になって考えるとほとんど更新していないブログに年間8,434円も払うのはアホらしいなーとおもい、ドメイン取得で契約しているスタードメインの無料サーバーを使ってWordPress環境でも構築してしまうとかとかんがえました。
ただスタードメインに付属する無料サーバーだと容量が3GBまでとなっています。画像データなど重いものは外部に上げる必要があるかなーと調べていたら、Twitterでせっちさんから「Google Cloud Platform(以下GCP)でKUSANAGI(WordPress)環境つくれば?」というリプライをもらう。GCPってなんだっけ。検索。Googleが無料もしくは格安で提供する仮想PCで、サーバー容量は最大30GB。最低スペックのサーバーであれば費用もかからない。なるほど、確かにこれは面白そう。
さっそくGCP+KUSANAGIについて検索してみると、環境構築したという先人たちのまとめが複数でてきました。ふむ、これはいけそうだ。しかし素人のぼくではどの方法が正解なのかわからない。でもまぁわからないものを悩んでても仕方ないのでトライアンドエラーでやってみましょうかね。
さて、構築前のぼくの状況と最終的な目標ですが、
・すでにドメインは保有している。
・はてなブログProの契約が切れそうなので新サイトへ移行する必要がある。
・サーバー代をかけたくないのでGCPの「f1-micro(無料枠)」を使用する。
・WordPressは超高速と噂のKUSANAGIを利用(できるといいなぁ)。
その中でぼくが試したのは以下3つの方法です。
1. Cloud StorageファイルでKUSANAGIをインストールする。
2. KUSANAGI for GCPをインストールする。
3. KUSANAGI Runs on Dockerをインストールする。
1つずつ結果をまとめます
>1. Cloud StorageファイルでKUSANAGIをインストールする。→ 失敗…
インストール時にGCPのマシンタイプを「vCPUx2」などの上位CPUにしてインストール。その後「f1-micro」に変更するというもの。試してみたところインストールは成功しましたが、インストール後に「f1-micro」へ変更すると起動できなくなりました。
>2. KUSANAGI for GCPをインストールする。→ 失敗…
インストールには最低メモリが4GB以上必要ということで開始前から不安いっぱい。結果は上と同じく「vCPUx2」ではインストール可能でしたが「f1-micro」では起動できませんでした。
>3. KUSANAGI Runs on Dockerをインストールする。→ 成功!!
同時進行でさまざまなサイトを閲覧しながら環境構築をしていたのですが、なかなか上手くいかず。最終的にはこちらのサイトの手順をドメイン取得以外ほぼそのままに実行しましたところ、GCP+KUSANAGI環境の構築に成功しました。
https://www.karelie.net/free-fast-wordpress-site-gcp/
https://www.karelie.net/free-fast-wordpress-site-cf-1/
https://www.karelie.net/free-fast-wordpress-site-kusanagi-docker/
以下、個人的な備忘録です。
・インスタンス作成時のタイムゾーンは「us-central1-a」にしてKUSANAGI側で「Asia/Tokyo」に変更。
・SSH起動はGoogle Chromeで行うようにする。(firefoxやIEでは文字入力を受け付けない場面が)
・Cloud DNSを設定する記載があるサイトもあったけど上記の方法では不要。
・インスタンス再作成時は仮想IPも再設定。(Cloudflareとドメイン管理サイトのDNSレコードも)
・閲覧や確認の際はドメインにアクセスする。(IP直打ちだと503エラーが出るが正常)
引っかかったのはこのあたりですね。GCPとWordPressの知識はなにもない状態から開始しましたが、なんとかなるものですね。何度も失敗しては少しずつ進んでいき、行けるとおもったらまた失敗という感じでしたが、手間暇さえかければ何度でもやりおなしが利くというGCPの環境は「おかしなったしわからん。でもまたインスタンス作りなおせばいいや」とポジティブに考えられて非常にぼく向きだったとおもいます。
最後になりましたが、環境構築に四苦八苦しているときにアドバイスを下さったせいどうさんとせっちさん。非常にわかりやすくGCP+KUSANAGI Runs on Docker環境の構築方法をまとめてくださっていたきめらさんに感謝いたします。ありがとうございました。
というわけで、この余ったはてなポイントはどうしたものか…。