WordPressでこのサイトを作ったときの環境構築メモ。
ここでは、画像等のファイルをCloud Storageに保存するための設定の話(以下の赤線内の話)。
デフォルトだとWordPressからアップロードした画像等のファイルはVMインスタンス上のディスクに保存されるが、ディスク容量逼迫防止とアクセスの分散のために、Cloud Storageに保存するように設定する。
手順としては大きく2つ。
- Cloud Storageにバケット作成
- WordPressに自動連携用のプラグイン導入
本当は、Cloud Storageへのアクセスをサブドメインでアクセスできるようにして、Cloudflareを経由してアクセスできるようにした方が構成としてはキレイなのだろうが、また余力があるときにすることにした。。
Cloud Storageにバケット作成
バケットの新規作成
1.GCPの左上のメニュー「≡」から、「Cloud Storage」>「ブラウザ」を選択する。
2.「バケットを作成」ボタンを押下する。
3.バケットに適当に名前をつける。
4.無料枠を活用するために、ロケーションは「us-east1」、「us-west1」、「us-central1」のどれかから選択する。(Google Cloud の無料プログラム)
5.ストレージクラスを「Standard」。
6.オブジェクトへのアクセス制御は「均一」。
(細かく制御したいのであれば「きめ細かい管理」)
7.暗号化は「Googleが管理する暗号鍵」。
8.「作成」ボタンを押下して、バケットを作成する。
権限設定
1.Cloud Storageのブラウザから、作成したバケットを選択。
2.「権限」タブで「追加」ボタンを押下。
3.新しいメンバーに「allUsers」を入力し、ロールの選択で「Cloud Storage」>「Storageオブジェクト閲覧者」を選択。
4.保存ボタンを押下して設定を保存する。
これで、インターネット上にファイルが閲覧できるようになる。
ライフサイクルの設定
この設定については、このページが無料枠の5GB制限に引っかかる可能性は低いので特にやらなくてもよかったのだが、一応経験としてやってみたので記載。
Cloud Storageにはストレージクラスがいくつかあり、以下のようにクラス毎に課金が異なる(Cloud Storageの料金から(2021年6月))。
ストレージ クラス | 保管費用 (GB 単位/月) | クラスA オペレーション | クラスB オペレーション |
---|---|---|---|
Standard | $0.020 | $0.05 | $0.004 |
Nearline | $0.010 | $0.10 | $0.01 |
Coldline | $0.004 | $0.10 | $0.05 |
Archive | $0.0012 | $0.50 | $0.50 |
オブジェクトの取得に関するオペレーションがクラスB
オペレーションに対する課金単位は10,000オペレーションあたり
よくアクセスするファイルにはStandardでも良さそうだが、ほとんどアクセスしないファイルはそれ以外に保存した方が料金安くて済みそう。
というわけで、保存した日からある程度経過した画像などはNearline、Coldlineに移していくようにライフサイクルを設定する。
1.作成したバケットの詳細で、「ライフサイクル」タブを選択し、「ルールを追加」を押下。
2.アクションを選択では「ストレージクラスをNearlineに設定する」を選択。
3.オブジェクト条件の選択では、年齢をチェクし、30日を入力。
4.作成ボタンを押下する
これで、更新されてから30日経過したオブジェクトはNearlineに設定される。
上記と同様の手順で、365日経過したオブジェクトはColdlineに設定するような設定も追加した。
WordPressに自動連携用のプラグイン導入
続いて、WordPressに画像等をアップロードしたときに、Google Cloud Storageに自動的に保存されるようにプラグインを導入する。
1.WordPressの管理画面のプラグインの追加画面で、「WP-Stateless – Google Cloud Storage」を検索し、インストールする。
2.インストールするとセットアップ画面になる。「Automated Setup」を押下。
3.「Login with Google」を押下し、Googleにログイン。
4.Project&Bucket の設定で、自分のGoogle Cloud Project、作成したCloud Bucketを設定して、Continueボタンを押下。
以下のページが表示されれば、初期設定は完了。
5.続いて、WordPress管理画面で、「Media」>「Stateless Settings」を選択し、WP-Statelessの設定画面を表示する。
ここで、「Mode」を「Stateless」に設定する。この設定により、VMインスタンス側にはファイルは保存されず、Cloud Storageに保存されるようになる。
6.画像をアップロードしてみて、画像のリンクがCloud Storageのリンク「https://storage.googleapis.com/~」となっていることを確認する。
以上です。