クラウド上の仮想マシンを使えるサービスで、GCP 無料枠というものがあり、これの Always Free という枠組みの中であれば、ほぼほぼ無料で Web サイトを運用できるという情報があったのでやってみる。
準備
必要なもの
- クレジットカード
- 独自ドメイン
GCP を利用するにあたって、クレジットカードで Google 側からの料金請求先の登録をしなければ開始できない。アカウント作成から、1年間は300USDのクレジット以内であれば無料で使え、期間終了後も Always Free の要件を満たしていれば、無料で使える。
カード情報の入力は、最初に GCP のアカウント作成時だったか、 最初の VM インスタンスを作成時 に入力を促された気がする。 プリペイドの VISA カードは使えなかったくらいで、 特に問題なく済ませることができたと記憶している。
今回は、freenom.com などの無料のドメインサービスも検討したが、3ヶ月で更新手続きなどがあり、有料サービスへ誘導しようとする感じを受けたため、それなら、管理面からも別のサービスをまたぐのも面倒だし、もう Google のアカウント一つでで一括管理できるようにしようと Google Domains でドメインを購入した。購入手続きに関しては次の記事に記した。ドメインのコストは税込みで年間1600円程度。
Always Free の要件
無料枠で使うには、利用状況が Always Free の規定条件に収まる必要がある。リンクしたページの 下の方に Always Free のセクションがある。条件以上の利用状況になると、使用率によりチャージが加算されていくそう。沢山細かな条件があるが、今回、最低限抑えておきたいのは以下。
- VMマシンタイプは一番性能の低い
f1-micro
(vCPUs 0.2, Memory 600mb) - 30GB までのHDディスク容量
- サーバーの地域が Oregon:
us-west1
Iowa:us-central1
South Carolina:us-east1
のいづれか - 5GBのクラウドデータベース容量
コスト計算
- ドメイン料は 1600円/年
- 外部IPアドレス 0.002USD/時 (2020年1月1日より) -> 17.52 USD/年
- その他、リソース使用率によるチャージ
という感じ。ドメインは無料のものを使えば費用はより抑えられる。
外部IPアドレスの利用料に関しては、このページを参照。
Static and ephemeral IP addresses in use on preemptible VM instances *Starting January 1st, 2020, you will be charged $0.002 per hour.
External IP Address Pricing (https://cloud.google.com/compute/network-pricing#ipaddress)
ephemeral
は VM インスタンスを再起動したりすると、IP が変わることがある、という意味だそう。それを防ぐために IP を固定する事ができるがそれをすると料金かかりますよ、ということだそう。
追加リソースの使用量 に関しては、ほとんどサイト訪問者がいないような状況であれば月50円くらいという情報がある。総じて年間3500円くらいで収まりそう。
プロジェクトの作成
まず、GCP で新規プロジェクトを立ち上げ、その中で稼働するVMインスタンスを作る。ログイン画面で左上のメニューアイコン -> Home で次のスクリーンを出し、Create ボタンを押す。
そして、適当なプロジェクト名を与え、Create ボタンから作成する。
すると、次のような VM インスタンス作成を促される画面がでる。
VM インスタンスの作成
サイト訪問者がブラウザでサイトを表示させるには、Web サーバーが稼働していなければならない。ここでは、それが稼働する VM (仮想) マシンを作成し、外部 IP アドレスからアクセスできるようにする。GCP -> マーケットプレイス で予め用意されたものを利用すれば、ワンクリックでサーバー関係のアプリケーションがプリインストールされた VM を簡単に作成できる。
一つのドメインにジャンルごとにサブドメインで複数のサイトを運用しようという予定なので、bitnami のマルチサイトを選ぶ。ただ、f1-micro
マシンだと負荷が大きすぎて動作が鈍くなるかもしれないが、マシンタイプは後から変更可能なので、やってみることにする。
メニュー -> Market Places -> 検索フォームに “WordPress Multisite” と入力し、”WordPress Multisite Certified by Bitnami” を選択。 GCP が用意したものだと mbstring 系の関数が使えないらしいので今回は bitnami を選んだ。
Zone
Zone は us-east1
, us-west1
, か us-central1
のいずれかで始まるものを選択。厳密には us-central1-* などと表記が少し違うが、これはそのゾーンに属するマシンという意味なので文字列のプレフィックスが一致していればOK。詳しくはこちらに書いてある。
the
Region and Zones (https://cloud.google.com/compute/docs/regions-zones/)us-west1
region denotes a region on the west coast of the United States that has three zones:us-west1-a
,us-west1-b
, andus-west1-c
.
Machine type
マシンタイプはデフォルトの small から micro に変更。
Boot Disk
Boot Disk は 料金が発生する SSD を選ばない。容量は 10GB から Always Free で最大許容量の 30GB に変更。
Firewall
Firewall は 後に SSL にも対応させる予定なので、 HTTPS と HTTP にチェックをいれる。
設定がすんだら Deploy ボタンを押して VM を作成する。
ちなみに、この Bitnami WordPress Multisite スタックのドキュメンテーションはこちら。
WordPress にログイン
VM インスタンスが作成されると Deployment Manager のページが表示される。 デフォルトで user というユーザーが作成され Admin password の欄にパスワードが書かれてあるのでこれを使ってログインする。Admin URL の欄のリンクから管理画面へ飛べる。
ログインに成功。アドレスが {外部IPアドレス}.xip.io
になっているのに留意したい。
ちなみに、ログイン情報を忘れた場合は GCP のメニュー -> Deployment Manager で VM インスタンスをクリックし、参照可能。
表からアクセスすると、正常に表示されている。
雑感
ここまで手際よくやれば、ものの数十分もかからずできる。慣れれば数分で終わる。
この状態から、色々やるべき事があり、管理者ユーザーの変更、Bitnami が自動挿入するバナーリンクの削除、Eメールの通知が使えるようにする、ドメインをIPアドレスに割り当てる、SSL化等、続きは次の記事へ。