Google Cloud Storageのスタティックホスト

Google Cloud Storage(GCS)はスタティックサイトのホスティングにも利用できます。

基礎的な設定

バケットはサイト専用に用意し、権限はallUsersに読み取り権限を追加します。 公開するバケットであるため、単一ポリシーとした方がトラブルが少ないでしょう。

ファイルのアップロードはgsutilコマンドが主であり、ほかにAPI経由のプログラム転送や、クラウドコンソール上の操作があります。
ファイル転送などは「 Google Cloud Storageで静的ファイル配信」で解説しています。

リージョン選定

GCSはバケット作成時に、グローバルネットワーク上のリージョンを選択します。世界各国から選択でき、読者の居住地に近いリージョンを設定します。 また、GCSのリージョンを超える地域への配信を行いたい場合、CloudCDNを併用することになります(追加コストはかかります)。

ディレクトリアクセスの挙動変更

GCSのデフォルト設定では、厳密に要求されたファイルのみを返し、ディレクトリアクセスや404エラーに対応しません。特殊ページを割り当てる設定をすることで、Webサイト向けの挙動になります。

gsutilコマンドを利用する場合、以下のようなコマンドになります。

$ gsutil web set -m index.html -e 404.html gs://www.example.com

httpsサイトへの変更

GCS上のサイトはHTTPで配信されます。 HTTPSアクセスに対応するためには、外部HTTPSロードバランサを別途セットアップする必要があります。 初期設定はクラウドコンソールから手順に従う方法がもっとも手軽でしょう。

外部HTTPSロードバランサを含む負荷分散機能には月額$18程度のミニマムフィーがかかります。機能面では考えうる限り十分であり、CloudCDNと併用することでグローバルサービスの要件をほぼ満たすでしょう。

なお、外部HTTPSロードバランサを利用する構成では、SSL証明書の定期更新を実装する必要があります。Google Cloudが提供するマネージド証明書のほか、自らLet’s Encryptで取得する証明書を運用する場合、以下のドキュメントのとおりgcloudコマンドを用いて更新することになります。

中馬崇尋
Chuma Takahiro