続 カッコの付け方

AWSを始めとしたクラウドコンピューティング全般と、唯一神emacsにおける()の付け方についてだらだら書きます

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

GCPDNS管理システムです。レジストラで取得したドメインのゾーン移譲先を Cloud DNSに指定することにより、GCP上でドメイン管理できます。今のところたいした機能がないので、積極的に使う理由はありませんが、フルGCPでいきたいので...

手順

ドメインの取得

適当なドメインレジストラから取得します。お名前ドットコムなどどちらでもOK

Cloud DNSの設定

取得したドメインのゾーンを作成します。

f:id:iga-ninja:20150124163852p:plain

登録後のSSですので気にしないで!ゾーンを作成を押して自分のドメインのゾーンを作成します。

f:id:iga-ninja:20150124164019p:plain

作成直後にすでに指定されているNSレコードをレジストラ側に登録します。

f:id:iga-ninja:20150124164223p:plain

お名前側はこんな感じ

f:id:iga-ninja:20150124164259p:plain

Webマスターツールで、ドメイン所有権を証明する。

ハマりポイントはここです。 gsで独自ドメインを運用するには、gsのバケット名をドメイン名(正確にはFQDN)と同じにしなければなりません。しかし、gsのバケット名はサービス全体でユニークであるので、早い者勝ちです。ドメイン取得した人以外が、FQDNのバケット名を作ってしまうと、本当のドメイン所有者が使えないという自体が発生します。これを避けるためか、そのドメインの所有権を証明しない状態で、FQDNのようなバケットは作れません。試しにxyzzy.comというバケットを作ろうとしたら。。

f:id:iga-ninja:20150124164443p:plain

こんな感じで蹴られます。

Google Apps等を始め、各種googleのサービスを設定したひとならお分かりの通り、一番ラクな方法は、DNSのTXTレコードに決められた文字列を埋め込む事によって証明することです。 長くなりましたが、TXTレコードで自分のドメインであることを証明します。ホントに、この機能はGCP側に統合してほしいです。(とてもわかりにくい)

Webマスターツールでサイトの登録

使ったことない人は、Google Webマスターツールでググって、とりあえずログインしてください、そしてサイト追加

f:id:iga-ninja:20150124164642p:plain

自分のドメインを指定すると、サイトの所有権を証明して!とでます。別の方法タグ -> ドメイン名プロバイダ -> その他を指定すると

f:id:iga-ninja:20150124164729p:plain

ここに出ているTXTレコードを、Cloud DNSで作成したゾーンのレコードに追加します。*SSはimaoka.redを証明した後に別サイトで行っているため下のSSと合ってません!参考程度に。

f:id:iga-ninja:20150124164921p:plain

Cloud DNSに登録したあと、Webマスターツールに戻り、下の方にある確認ボタンを押します。TXTレコードが反映され、Webマスターツールも引けるようになったら、認証が通ります。

gsでバケット作成

Webマスターツールで、すでに自分のドメインであることが証明されていれば、バケット作成が可能です。 見事に作れたら、index.htmlとerror.htmlを指定し、実際にファイルをアップロードします。 index.htmlとerror.htmlの指定ですが、GUI上画面の横幅が狭ければ出てきませんので、ご注意ください。下記から指定出来ます。

f:id:iga-ninja:20150124165217p:plain

f:id:iga-ninja:20150124165349p:plain

バケット全体で index.html error.html(404.html)を指定したら、実物をアップロードして、一般公開にチェックを入れておきます。

f:id:iga-ninja:20150124171233p:plain

Cloud DNS で CNAMEレコード追加

www.[取得したドメイン]のCNAMEとしてc.storage.googleapis.com.を登録する。

f:id:iga-ninja:20150124165818p:plain

今のところ、残念ながらRoute53のようなAliasレコード機能が存在しないので、トップレベルドメイン(apex) 俗に言う www.無しのドメイン名でサービスはできないです。トップレベルにCNAMEを指定しようとすると、Cloud DNSに怒られます。

あとはブラウザで叩いてみてください。

参考

Configuring a Bucket as a Website - Google Cloud Storage — Google Cloud Platform