Google Cloud Storage で独自ドメインで静的サイトホスティング
GCPのgs (Google Cloud Storage)をつかって、静的サイトホスティングをやってみます。
構成
今回はフルGCPでやってみます。
gs (Google Cloud Storage)
書くと長いので、gsで省略、googleも認めてるし。gsは AWSで言うs3、OpenStackで言う swiftです。この手のものを全く触ったことがない人向けに書くと、WebDAVの進化版みたいなもの。httpsでファイルの送信、受信を行い、更新、削除なども行えます。
Google Cloud DNS
GCPのDNS管理システムです。レジストラで取得したドメインのゾーン移譲先を Cloud DNSに指定することにより、GCP上でドメイン管理できます。今のところたいした機能がないので、積極的に使う理由はありませんが、フルGCPでいきたいので...
手順
ドメインの取得
適当なドメインをレジストラから取得します。お名前ドットコムなどどちらでもOK
Cloud DNSの設定
取得したドメインのゾーンを作成します。
登録後のSSですので気にしないで!ゾーンを作成を押して自分のドメインのゾーンを作成します。
作成直後にすでに指定されているNSレコードをレジストラ側に登録します。
お名前側はこんな感じ
Webマスターツールで、ドメイン所有権を証明する。
ハマりポイントはここです。 gsで独自ドメインを運用するには、gsのバケット名をドメイン名(正確にはFQDN)と同じにしなければなりません。しかし、gsのバケット名はサービス全体でユニークであるので、早い者勝ちです。ドメイン取得した人以外が、FQDNのバケット名を作ってしまうと、本当のドメイン所有者が使えないという自体が発生します。これを避けるためか、そのドメインの所有権を証明しない状態で、FQDNのようなバケットは作れません。試しにxyzzy.comというバケットを作ろうとしたら。。
こんな感じで蹴られます。
Google Apps等を始め、各種googleのサービスを設定したひとならお分かりの通り、一番ラクな方法は、DNSのTXTレコードに決められた文字列を埋め込む事によって証明することです。 長くなりましたが、TXTレコードで自分のドメインであることを証明します。ホントに、この機能はGCP側に統合してほしいです。(とてもわかりにくい)
Webマスターツールでサイトの登録
使ったことない人は、Google Webマスターツールでググって、とりあえずログインしてください、そしてサイト追加
自分のドメインを指定すると、サイトの所有権を証明して!とでます。別の方法タグ -> ドメイン名プロバイダ -> その他を指定すると
ここに出ているTXTレコードを、Cloud DNSで作成したゾーンのレコードに追加します。*SSはimaoka.redを証明した後に別サイトで行っているため下のSSと合ってません!参考程度に。
Cloud DNSに登録したあと、Webマスターツールに戻り、下の方にある確認ボタンを押します。TXTレコードが反映され、Webマスターツールも引けるようになったら、認証が通ります。
gsでバケット作成
Webマスターツールで、すでに自分のドメインであることが証明されていれば、バケット作成が可能です。 見事に作れたら、index.htmlとerror.htmlを指定し、実際にファイルをアップロードします。 index.htmlとerror.htmlの指定ですが、GUI上画面の横幅が狭ければ出てきませんので、ご注意ください。下記から指定出来ます。
バケット全体で index.html error.html(404.html)を指定したら、実物をアップロードして、一般公開にチェックを入れておきます。
Cloud DNS で CNAMEレコード追加
www.[取得したドメイン]のCNAMEとしてc.storage.googleapis.com.を登録する。
今のところ、残念ながらRoute53のようなAliasレコード機能が存在しないので、トップレベルドメイン(apex) 俗に言う www.無しのドメイン名でサービスはできないです。トップレベルにCNAMEを指定しようとすると、Cloud DNSに怒られます。
あとはブラウザで叩いてみてください。
参考
Configuring a Bucket as a Website - Google Cloud Storage — Google Cloud Platform