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