Skip to content
niiyz.com
GitHub

Google Cloud Storageで静的サイト公開

Google Cloud3 min read

静的サイトの引っ越し。

AWS S3 + CloudFront + Route53からGoogle Cloud Storage + Cloud DNSへ乗り換え。

ドメインはお名前ドットコムで取得管理。

Google Cloudでロードバランサを作成

IPアドレス、SSL証明書を設定

Cloud CDNを有効

Cloud Storageで静的サイト用のバケットを作成

Cloud DNSでゾーン作成

デフォルトでSOAレコード、NSレコードがある

MXレコードをRoute53と同じにする

Aレコードを作って値をロードバランサ設定で作ったIPアドレスにする

お名前ドットコムのネームサーバー情報を更新

Route53のNS情報になっていたのをCloud DNSのNSレコードに設定

暫し待つ

GoogleマネージドSSL証明書のドメインステータス

3日目でもSSL証明書のドメインステータスがFAILED_NOT_VISIBLEのまま。

更新された DNS A レコードと AAAA レコードが完全に伝播されるまで、かなり時間がかかることがあります。通常は数時間程度ですが、インターネットを介した反映には最長で 72 時間かかることもあります。ドメイン ステータスは、伝播が完了するまで FAILED_NOT_VISIBLE になります。

インターネットを介した反映には最長で 72 時間とある。

伝播が完了するまで FAILED_NOT_VISIBLEになるとも。

他の設定を見直しても問題なさそうなので念の為Route53のゾーンを削除。

一晩待って4日目でSSL証明書のドメインステータスがACTIVEになった。

Gatsbyで静的サイト作成

ローカルでビルドしてpublicディレクトリにサイトを出力

publicディレクトリと公開バケットを同期

gcloud storage rsyncコマンドがないっていわれる

gsutil rsyncの方でデプロイ

package.json
"scripts": {
...
"clean": "gatsby clean",
"deploy": "gatsby build && gsutil -m rsync -r public gs://niiyz.com"
},

バケットをallUsersに「Storage オブジェクト閲覧者 」を与えてインターネットに公開

バケットのウェブサイトの構成を編集してインデックスをindex.html

エラーを404.htmlに設定して完了

キャッシュ

デプロイしても更新されなかったらCloud CDNのキャッシュが効いている

急ぎの場合はCloud CDNからロードバランサに紐付いているバケットのキャッシュを無効化

トップページのみなら/index.html、全部なら/ 指定

料金

数日運用してみたもののロードバランサの料金が結構高い

1日90円くらいはかかるのでGoogle App Engineへ移行