GCPで Google Cloud Storage (GCS) & 独自ドメインで httpサーバを立てるというのを以前やりました。もはや2015年の古いエントリですが今も結構な閲覧数があるので、2019年版のリファインとして、もっといいやり方を紹介します。

GCPのgs (Google Cloud Storage)をつかって、静的サイトホスティングをやってみます。 構成 今回はフルGCPでやってみます。 gs (Google Cloud Storage) 書くと長いので、gsで省略、googleも認めてるし。gsは AWSで言うs3、OpenStackで言う swiftです。この手のものを...

iga-ninja.hatenablog.com

なお、この上記の方法は未だに通用はします。httpだけでOK, httpsは不要であれば上記の方法を今でもおすすめします。
また、本エントリーは深い解説はせず、手順だけをサラッと書きます

今回作るもの

  • 独自ドメイン
  • L7LB + GCS
  • HTTPS 無料証明書入り

の静的Webホスティングです。

AWSでいう CloudFront + S3 + ACMの組み合わせです。

手順

例によってフル GCPで

材料

  • ドメイン(お名前でも何でも)
  • Cloud DNS
  • L7LB
  • Exernal IPアドレス
  • GCS

前回のエントリはGCSとCloudDNSのみでしたが、今回はL7LB + External IPアドレスが追加です。

ドメインの取得 + CloudDNSまで連携

これは以前の記事と同じです。割愛します。

Webマスターツールでドメイン所有権の証明は不要

朗報です。かなり楽になります。
正確には FQDNと同じ名前でバケットを作らないのならば 不要です。今回はGCS単体ではなくL7LB経由でアクセスさせるので、バケット名は不問になりました!

GCSでバケット作成

以前はgs と書いていましたがGCSのほうが主流のようなので、改めます。上記の通り FQDNと同じ名前のバケット名である必要はありません
好きな名前で作れればOKです

GCSへコンテンツアップロードと、ACLの調整

index.htmlをアップロードしますが、そのままでは閲覧できません。パブリック公開状態にする必要があります。以前はポチッと押すボタンがあったのですが、変わっています。

2019の手法としては、Bucket Policy でallUsers に対して Legacy Object Readerをつける方法が最善手です。本ブログでも触れています。

静的IPアドレスの取得

CloudDNSレコード登録

上記で取得したIPアドレスをAレコードに登録します。

L7LBの作成

LBの設定はかなり複雑ですので、3パートに分かれています。各パートごとにクリックして設定していきます。

まずはバックエンドの設定です。Backend bucketsをもちろん指定します。

ホスト・パス ルーティングをする場合に指定しますが、今回は特に変更しません。今回はシンプルにバケットの構造をそのまま使います。

フロントエンドとはListenerのことです。この例ではhttp 80も通します

次に本命のhttps側の設定です。証明書の設定が必要です

証明書は即時発行ではありません。しばらく時間がかかります(Let’s Encryptなんで)

見直してCreateしましょう

注意点

GCSに置くファイルは公開アクセスとする必要あり

これは必須です、S3のような Origin Access Identity は存在しないからです。結構深い話なので、続きは別エントリで

証明書の問題

すぐには使えません。Let’s Encryptを代行してくれるだけなので、そのつもりで。

元記事はこちら

最新版 Google Cloud Storage + L7LB で独自ドメインで静的サイトホスティング SSLもイケます