Google Cloud Platform+Ghostでブログサイトを構築した話

ブログサイトを新たに構築したので構築手順とTipsをまとめておきます。
(構築時に取っておいたメモを誤って消してしまったので具体的なコマンドは割愛します…。)

使用したサービス・ツール

  • Google Cloud Platform
    • Google Compute Engine
    • Google Cloud Networking
  • Ubuntu 16.04
  • Nginx
  • Node.js 4.2
  • Ghost 0.11.2
  • お名前.com

はじめに

アウトプットする習慣・場を最適化し続けていますが,GitHub Pages・Mediumを試してきて自分には合わなくて放置気味にしていたところ,ふとGhostを思い出してサイトを見たところだいぶ洗練されてきているように見えた。
それと,React.jsのサンプル作ったけどdeployする場所無いんだよなと思っていたところだったので,それならサーバから建てようと思ってえいやで構築した。
結論としては色々ハマった点が有って勉強になったし,Ghostかなり使いやすいので満足度は非常に高いです。
ホスティング先の選定からブログサイト構築手順及びハマった点をまとめていきます。

ホスティング先をどこにするか

各社VPS・クラウドで悩んで,Google Compute Engineを選択することにした。 PaaSは経験有るがIaaSは使ったことがなく,さすがにクラウド使ったことないとかダメだろうということでAWSかGCPの2択で悩む。

AWSのサービス群が自分には分かりづらく心理的ハードルが高かったのと,60日間無料試用 $300クレジットキャンペーンで3ヶ月無料,microインスタンスならおよそ$5/月,Google Compute Engine が便利で良かった件を読んで,コスト・利便性を重視してGCEにした。

インスタンスを作成する

クラウドを使ってのホスティングは初めてだったので,かなりの衝撃を受けた。 ウェブサイトがサインアップから30分程度で構築できたのだ。

  1. Google Cloud Platformにサインアップする
  2. 「Google Compute Engineを試す」という15分のチュートリアルで雰囲気を掴む

    • インスタンス作成
    • SSH接続
    • HTTPサーバ起動
    • インスタンスの削除
  3. Google Cloud Consoleでプロジェクトを作成する

  4. Google Cloud ConsoleでGoogle Compute Engineを選択し,インスタンスを作成する
    • ゾーンは asia-east-a を選択
    • マシンタイプは f1-micro を選択
    • OSは Ubuntu 16.04 を選択
  5. IPでアクセスできるウェブサイトの構築が完了

続いて各種ソフトウェアをインストールする

  1. LinuxにGhostをインストールする方法 を参考にGhostをインストールし,
  2. Ghostをデプロイする方法 を参考に
    • 起動スクリプトでGhostを終了しないようにし,
    • サイトを公開するためにNginxをインストール・設定し,
  3. IPでアクセスできるブログサイトの構築が完了

独自ドメインでアクセス可能にする

  1. Google Cloud Consoleにアクセスし,ネットワーク > 外部IPアドレスで固定IPを取得する
  2. Google Compute Engineのインスタンスに固定IPを設定
  3. Ghostをデプロイする方法 を参考に
    • 独自ドメインで運用するためにGhostを設定
  4. お名前.comのDNSレコード設定で固定IPとドメインをAレコードで紐付ける
  5. 独自ドメインでアクセスできるブログサイトの構築が完了

以上でブログサイトの構築が完了で、想定を遥かに超える簡単さだった。


続いて構築時にハマった点も書いておきます。

  • Ghost 0.11.2が対応しているNode.jsのバージョンが4.2のみで,ローカル環境に構築した時にハマった。Ghost 0.11.3 (2016-11-02 released) ではNode v6に対応しているようなので,これから構築する人はハマらないはず。
  • Ghostが終了しないように起動スクリプトを使う方式を選択して $ sudo update-rc.d ghost defaults を実行したところエラーが出て,Ubuntu Server 12.04: 警告「Setting locale failed」への対処法を参考に ~/.bashrc に export LC_ALL=en_US.UTF-8 を追加して $ source ~/.bashrc をして解決
  • DNSレコード設定にCloud DNSを使うかお名前を使うかで悩んだ。単純にDNS周りの知識が足りてないということが原因でTRY & ERRORを繰り返し,お名前側で設定することで運用に載せた
  • トップレベルドメイン(www無)の設定をAレコードで設定する方法が分からなかった。お名前の設定画面でサブドメイン必須だと勘違いしていて,それEmptyで設定できるよと教えてもらって解決できた

まとめ

  • GCE超便利。クラウドを苦手意識で試さないのは勿体無い
  • Ghostが自分的にかなりしっくり来てる。既に何エントリか書いているけど,モバイルウェブでも書きやすい。そして当たり前だけどブログの基本機能は揃ってるし,モダンなAMP対応も簡単にできた。
    Ghost自体の開発も続いていて1.0リリースも近そうなので,これからブログサイト構築・リニューアルしようとしてる人はブログツール候補として十分候補にして良いと思う。

さてアウトプットしやすい環境ができたので,アウトプットに注力していかねば。

Rockin' Work

(null)