独自ドメインでCloud StorageをHTTPSで配信する方法
はじめに
先日、独自ドメインでGoogle Cloud StorageをHTTPSで配信する方法を調べたので、その設定手順をまとめてみました。
今回はAWSのRoute53で管理しているドメインを利用しました。
ドメインの所有権の確認
まず始めにGoogle Search Consoleから利用するドメインの所有権の確認をおこないます。
プロパティタイプの選択で、利用するドメイン名を入力し、続行をクリックします。
「DNSレコードでのドメイン所有権の確認」のダイアログが表示されるので、レコードタイプを「TXT」にし、③のTXTレコードの値をコピーします。
AWSのコンソールからRoute53を開き、以下のTXTレコードを登録します。
TXTレコードの値は、先ほどGoogle Search Consoleでコピーした値をセットします。
「DNSレコードでのドメイン所有権の確認」のダイアログに戻り、確認ボタンをクリックします。
成功すると、以下のようなダイアログが表示されます。
Cloud Storageのバケット作成
Cloud Storageのコンソールを開き、以下内容でバケットを作成します。
- バケット名:{所有権を確認した独自ドメイン名}
- 公開アクセスの防止:off
作成したバケットの権限設定で「プリンシパルを追加」をクリックし、以下内容で設定します。
- 新しいプリンシパル:allUsers
- ロール:Storage オブジェクト閲覧者
作成したバケットの「ウェブサイトの構成を編集」をクリックし、インデックス(メイン)ページサフィックスを入力して保存します。
ロードバランサーの作成
ロードバランシングのコンソールを開きます。
以下内容で設定をおこない、構成ボタンをクリックします。
- ロードバランサのタイプ:アプリケーション ロードバランサ(HTTP / HTTPS)
- インターネット接続または内部:インターネット接続(外部)
- グローバルまたはシングル リージョンのデプロイ:グローバル ワークロードに最適
- ロードバランサの世代:グローバル外部アプリケーション ロードバランサ
フロントエンドの構成
フロントエンドの構成で、プロトコルを「HTTPS」を選択します。
証明書のプルダウンから「新しい証明書を作成」を選択し、以下内容で証明書を作成します。
- 作成モード:Google マネージドの証明書を作成する
- ドメイン1:{利用する独自ドメイン名}
バックエンドの構成
「バックエンドサービスとバックエンドバケット」をクリックし、「バックエンド バケットを作成」をクリックします。
以下内容でバックエンドの作成をおこないます。
- Cloud Storageバケット:{作成したバケットを選択}
- Cloud CDNを有効にする:ON
ルーティングルール
以下内容でルーティングルールの設定をおこないます。
- モード:単純なホストとパスのルール
- ホストとパスのルール:{作成したバックエンドを選択}
全ての設定が完了したら「作成」をクリックし、ロードバランサーを作成します。
ルーティングの設定
ロードバランシングのコンソールを開き、作成したロードバランサーをクリックして詳細画面を開きます。
フロントエンドに表示されているIPアドレスをコピーしておきます。
AWSのコンソールからRoute53を開き、以下のAレコードを登録します。
Aレコードの値は、先ほどロードバランサーの詳細画面でコピーしたIPアドレスをセットします。
Googleマネージド証明書の確認
GCPの証明書マネージャのコンソールを開き、タブ「従来の証明書」をクリックします。
フロントエンドの構成で作成した証明書をクリックし、詳細画面を開きます。
ステータスが「ACTIVE」になっていればOKです。
おわりに
AWSであれば「Cloud Front + s3 + ACM」の構成で簡単にできますが、GCPだとロードバランサーの作成が必要になるので、少し手間でした💦
ただGCPのロードバランサーは全く触ったことがなかったので、良い機会になりました✨
どなたかのお役に立てば幸いです🙏
Discussion