GCP で Pleroma をスタートアップスクリプトで構築する(失敗)

Pleroma を Google Cloud Platform(GCP)で構築してみることにした。

Pleroma — a lightweight fediverse server
https://pleroma.social/

GCP を使うのは初めてかと思いきや、以前 Google AIY Voice Kit でスマートスピーカーを作成した際に1度使ったようだ。

(1)Google Cloud Platform のコンソールにアクセスする。

Home – Google Cloud Platform
https://console.cloud.google.com/

以前 GCP を使ったので、トップに “Your free trial is over, but you can still access the Always Free tier by signing up for a full account.” と表示されている。

とりあえず作成して放置していたプロジェクトを削除しておく。以下のページに従えばいい。

Google Cloud Platformのプロジェクトの削除方法 – Qiita
https://qiita.com/sekitaka_1214/items/e11287b78adf3f468d7f

削除の設定をしても、実際の削除は1ヶ月後になるようだ。

それと自動作成される My First Project は削除できないようだ。

(2)プロジェクトは My First Project を使うよりも新たに分かりやすい名前で作成することにした。

Google Cloud Platform の右の My First Project をクリック。NEW PROJECT をクリック。以下のように設定する。

Project name:適当に入力
Location:No organisation

CREATE をクリック。

作成したプロジェクトへ移動する。

(3)「コンソール>COMPUTE>Compute Engine>VIRTUAL MACHINES>VM instances」をクリック。

“You can use Compute Engine after you enable billing” と表示される。まずは支払い情報の入力が必要のようだ。すぐ下の “Enable billing’ をクリック。

Enable billing for project ‘[プロジェクト名]’
You are not an administrator of any billing accounts. To enable billing on this project, create a new billing account or contact your billing account administrator to enable billing for you. 

と表示される。“CREATE BILLING ACCOUNT” をクリック。画面に従って設定する。

(4)先ほど Compute Engine の VM instances の項目をクリックしたためか、そのまま Compute Engine API のページへ行った。ENABLE をクリック。

(5)「コンソール>COMPUTE>Compute Engine>VIRTUAL MACHINES>VM instances>CREATE INSTANCE」をクリック。以下のように設定する。

Name:適当に設定
Labels:オプションなので特に入力しない。
Region:us-west1 (Oregon)
Zone:us-west1-a
Machine configuration
・Machine family:General-purpose
・Series:FIRST GENERATION>N1
・Machine type:f1-micro (1 vCPU, 614 MB memory)
Confidential VM service:チェックを入れない。
Container:チェックを入れない。
Boot disk:Public images で、Ubuntu; Ubuntu 16.04 LTS; Standard persistent disk; 30 GB
Identity and API access:No service account
Firewall
・Allow HTTP traffic:チェックを入れる。
・Allow HTTPS traffic:チェックを入れる。
Networking
・Network interfaces:default をクリック。External IP で “External IP” を選択。適当に名前をつけて、“Network Service Tier” は “Premium” のままにしておく。

その他はそのまま。

右側に月額の見積もりが表示される。5.08 ドルだった。

CREATE をクリックする。

1分程でインスタンスが稼働し始めた。

(6)独自ドメインを取得する。私は無料の Freenom で取得したドメインのサブドメインを使うことにした。

freenom で無料のドメインを取得する – with a Christian Wife
https://wacw.cf/2018/07/15/getting-free-domains-with-freenom/

(7)左上の Google Cloud Platform をクリックして、Google Cloud Platform のコンソールに戻る。

「NETWORKING>VPC network>External IP addresses」をクリック。先ほど作成した External address をメモしておく。

(8)Freenom の A レコードに7の External address を設定する。

(9)コンソール>COMPUTE>Compute Engine>VIRTUAL MACHINES>VM instances」をクリック。

作成したインスタンスの「Connect>SSH」をクリック。別ウィンドウが開き、SSH で接続できるようになる。

(10)Pleroma のインストールは、今回は以下のスタートアップスクリプトを利用させてもらう。

GitHub – S-H-GAMELINKS/Pleroma.Start.Script.for.GoogleCloudPlatform: PleromaをGoogleCloudPlatform上に簡単に構築するスタートアップスクリプト
https://github.com/S-H-GAMELINKS/Pleroma.Start.Script.for.GoogleCloudPlatform

しかし、最後の Pleroma の起動がうまくいかない。どうやら Nginx がうまく動作していないようだ。解決策が分からないので、また別の方法で試そう。

***

今後も GCP でいろいろ実験するので、利用料金が高くなった場合のアラートが来るように設定しておいた。

Google Cloud Platform のコンソールに行き、「Billing>Budget & alerts」をクリック。“CREATE BUDGET” をクリックして設定する。

(続く)

参考:
GitHub – S-H-GAMELINKS/Pleroma.Start.Script.for.GoogleCloudPlatform: PleromaをGoogleCloudPlatform上に簡単に構築するスタートアップスクリプト
https://github.com/S-H-GAMELINKS/Pleroma.Start.Script.for.GoogleCloudPlatform

PleromaをGoogle Cloud Platformで建ててみた – Qiita
https://qiita.com/S_H_/items/1743f5c155553376c6d9

【GCP入門編・第2回】まずは、ここから! Google Cloud Platform (GCP) の事前準備! | 株式会社トップゲート
https://www.topgate.co.jp/gcp02-getting-started-guide

【GCP入門編・第3回】難しくない! Google Compute Engine (GCE) でのインスタンス起動方法! | 株式会社トップゲート
https://www.topgate.co.jp/gcp03-google-compute-engine-launch-instance

GCEで独自ドメインを設定する – OSS ERP Compiere Distribution Lab
https://www.compiere-distribution-lab.net/idempiere-lab/install-advance/google-cloud-dns/

Google Compute Engine のVPSを永久無料枠内で使う方法 | サーバー総研
https://sava.cloud/gce-always-free/

PleromaをGCE Allways Freeで使いたい。 · GitHub
https://gist.github.com/mamemomonga/858c441d585da548a60d2ff4a52dffbc

これから始めるGCP(GCE) 安全に無料枠を使い倒せ – Qiita
https://qiita.com/Brutus/items/22dfd31a681b67837a74

【GCP】GCEで独自ドメイン設定からSSL対応まで | みんたく
https://mintaku-blog.net/gce-ssl/

【GCP入門編・第26回】 Cloud DNS でドメインの DNS レコードを作成しよう! | 株式会社トップゲート
https://www.topgate.co.jp/gcp26-domain-operation-by-cloud-dns

Google Cloud Platform (GCP) で独自ドメインを設定する – Qiita
https://qiita.com/tomy0610/items/adc839be9d100c0daf96

viコマンドについて詳しくまとめました 【Linuxコマンド集】
https://eng-entrance.com/linux-command-vi

【Nginxエラー解決】Job for nginx.service failed because the control process exited with error code. – Qiita
https://qiita.com/naota7118/items/4fe2578fec561795a960

nginx: [warn] invalid value “TLSv1.3” in /etc/nginx/nginx.conf:50 · Issue #1170 · ajenti/ajenti · GitHub
https://github.com/ajenti/ajenti/issues/1170