2020-12-9

個人開発サービスの記事周りをWordpressに切り出した。

タイトルの日本語が怪しい気がします。コツコツ開発しているanntの話です。 anntはFirebaseで動いていて基本的には静的なページで動いていたので、チュートリアルなどの記事を書くときも直接htmlタグ付けしていくという苦行をしていました。 最近さすがに当時の自分は何を考えてこんなの作ったんだ?と思い始めたので記事や頻繁に編集する部分をWordpressに切り出しました。

利用した技術

とにかく楽に環境を整えたかったのでWordpressはGCPのMarket Placeで立てようと決めていました。 GCPの Market PlaceでWordpressを立てるのは本当に楽でクリックしていくだけで新しいインスタンスでWordpressが動いている状態になります。Google様々です。 本当に運用開始ボタンひとつで起動できます。Google様々です。

全体の構成として当初はannt.aiに来た/post以下のリクエストだけをうまくWordpressに回せないか検討していました。 色々方法を模索しましたがFirebaseはあくまで静的ファイルのホスティングやサーバレスでシンプルなAPIを実現するためのサービスです。 来たリクエストの一部を別のサーバーに流すようなロードバランサ的な機能は簡単には実現できなさそうでした。 Firebaseの前に別のロードバランサ挟んでリクエスト割り振ればいいのでは?と思いもしましたが更に課金するのは嫌だなという気持ちになりました。

最終的な構成

結論としてサブドメイン取ってサービス本体とは完全に切り離して運用することにしました。本体のサービスとは完全に分かれているので管理が楽です。 GCPのMarket Placeで作成されたインスタンスにはIPアドレスが振り分けられますがデフォルトだとエフェメラルという設定になっています。 IPが固定化されておらずインスタンスを起動停止するたびに別のIPに変わってしまう可能性があります。 いい感じにインスタンスに対してサブドメインを設定するには、以下のような作業をやっていく必要があります。

  • 静的IPアドレスを使えるようにする
  • ネームサーバーに設定を追加
  • TLSの設定

静的IPアドレスの設定

調べるとたくさん記事が出てきます。 Google Cloud Platformの外部IPアドレスのURLから静的アドレスに変更できます。 条件によっては課金されるので注意してください。

GCPで作成したWordpressの静的IPアドレスの設定方法 - Qiita

ネームサーバーの設定変更

利用しているレジストラ(お名前.comやGoogleドメイン等)によってやり方は違うと思います。 やることとしては新しいサブドメインと作成した静的アドレスを対応付けるAレコードを追加するだけで大丈夫なはずです。

TLS(SSL)の設定

今はTLSが正しい表現になるのでしょうか。初めてTLSの設定を行いましたがCertbotというツールを使えばLet's encryptの証明書を簡単に手に入れられます。

GCP Market PlaceでWordpressを立ち上げるとおそらくDebian+Apacheで動いていると思います(今後変わる可能性もあるので注意してください)。 自分はaptでcertbotをインストールしましたが(うろ覚え)CertbotのトップページにOS+サーバーを指定すれば導入方法を親切に教えてくれるので、それに従うのが一番確実かと思います。 Wordpress+GCP Market Place TLSでググると何個か日本語の資料も引っかかりますが古いのかCertbotが正しく動作しなかったので素直に公式に従うのがいいと思います

そんなこんなで最後には無事Wordpress環境を整えることが出来ました。本当に楽にセットアップできるので、雑にブログ or それに類する記事執筆システム作るにはおすすめです。