このチュートリアルでは、所有するドメインの静的ウェブサイトをホストするように Cloud Storage バケットを構成します。静的ウェブページには HTML、CSS、JavaScript などのクライアント側の技術を使用できます。PHP のようなサーバー側のスクリプトなどの動的コンテンツを含めることはできません。
Cloud Storage 自体では HTTPS を使用するカスタム ドメインをサポートしていません。このチュートリアルでは、Cloud Storage と外部 HTTP(S) ロード バランシングを使用して HTTPS を介してカスタム ドメインのコンテンツを提供します。カスタム ドメインのコンテンツを HTTPS 経由で提供する別の方法については、HTTPS によるサービス提供のトラブルシューティングをご覧ください。また、Cloud Storage を使用して HTTP 経由でカスタム ドメインのコンテンツを提供することもできます。この場合、ロードバランサは必要ありません。
静的ウェブページのサンプルやヒント(動的ウェブサイトの静的アセットをホストする方法など)については、静的ウェブサイトのページをご覧ください。
目標
このチュートリアルでは、次の方法について説明します。- バケットを作成する。
- サイトのファイルをアップロードして共有する。
- ロードバランサと SSL 証明書を設定する。
- ロードバランサをバケットに接続する。
A
レコードを使用して、ドメインをロードバランサに指定する。- ウェブサイトをテストする。
料金
このチュートリアルでは、課金対象である次の Google Cloud コンポーネントを使用します。
静的ウェブサイトのホスティングで発生する可能性がある料金の詳細については、料金をモニタリングするのヒントをご覧ください。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud プロジェクトの課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud プロジェクトの課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
- プロジェクトで Compute Engine API を有効にします。
- ストレージ オブジェクト管理者とネットワーク管理者の Identity and Access Management ロールが付与されている必要があります。
- 自分がオーナーまたは管理者になっているドメインが必要です。既存のドメインがない場合、Google Domains や Cloud Domains など、新しいドメインを登録できるサービスは多数あります。
このチュートリアルではドメイン
example.com
を使用します。 - 提供するウェブサイトのファイルをいくつか用意します。このチュートリアルは、少なくともインデックス ページ(
index.html
)と 404 ページ(404.html
)がある場合に最適です。 - (省略可)Cloud Storage バケットにドメインと同じ名前を使用する場合は、使用するドメインを所有または管理していることを確認する必要があります。
www.example.com
などのサブドメインではなく、example.com
などのトップレベル ドメインを検証していることを確認します。Google Domains でドメインを購入した場合、確認は自動的に行われます。
バケットの作成
バケットを作成するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
- [バケットを作成] をクリックします。
- [バケットの作成] ページで、ユーザーのバケット情報を入力します。次のステップに進むには、[続行] をクリックします。
- [バケットに名前を付ける] で、バケット名の要件を満たす名前を入力します。
- [データの保存場所の選択] で、バケットデータを永続的に保存するロケーション タイプとロケーションを選択します。
- [データのストレージ クラスを選択する] で、バケットのデフォルトのストレージ クラスを選択するか、バケットのデータの自動ストレージ クラス管理について Autoclass を選択します。
注: 右側の [毎月の費用の見積もり] パネルでは、選択したストレージ クラスとロケーション、予想されるデータサイズとオペレーションに基づいてバケットの毎月のコストを見積もります。
- [オブジェクトへのアクセスを制御する方法を選択する] で、バケットで公開アクセスの防止を適用するかどうかを選択して、バケットのオブジェクトのアクセス制御モデルを選択します。
注: プロジェクトの組織のポリシーによって公開アクセスの防止がすでに適用されている場合、[公開アクセスの防止] の切り替えはロックされています。
- [オブジェクト データを保護する方法を選択] で、必要に応じて [保護ツール] を構成し、データ暗号化メソッドを選択します。
- [作成] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
-
開発環境で、
gcloud storage buckets create
コマンドを実行します。gcloud storage buckets create gs://BUCKET_NAME
ここで
BUCKET_NAME
は、バケットに付ける名前で、命名要件の対象となります。例えば、my-bucket
などです。
リクエストが成功すると、コマンドから次のメッセージが返されます。
Creating gs://BUCKET_NAME/...
次のオプション フラグを設定すると、バケットの作成をより詳細に管理できます。
--project
: バケットが関連付けられるプロジェクト ID またはプロジェクト番号を指定します。例:my-project
--default-storage-class
: バケットのデフォルトのストレージ クラスを指定します。例:NEARLINE
--location
: バケットのロケーションを指定します。例:US-EAST1
--uniform-bucket-level-access
: バケットの均一なバケットレベルのアクセスを有効にします。
gcloud バケットの作成オプションの完全なリストについては、
buckets create
オプションをご覧ください。例:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access
gsutil
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
-
開発環境で、
gsutil mb
コマンドを実行します。gsutil mb gs://BUCKET_NAME
ここで
BUCKET_NAME
は、バケットに付ける名前で、命名要件の対象となります。例:my-bucket
リクエストが成功すると、コマンドから次のメッセージが返されます。
Creating gs://BUCKET_NAME/...
次のオプション フラグを設定すると、バケットの作成をより詳細に管理できます。
-p
: バケットが関連付けられるプロジェクト ID またはプロジェクト番号を指定します。例:my-project
-c
: バケットのデフォルトのストレージ クラスを指定します。例:NEARLINE
-l
: バケットのロケーションを指定します。例:US-EAST1
-b
: バケットの均一なバケットレベルのアクセスの設定を指定します。例:ON
gsutil バケットを作成するためのオプションの完全なリストについては、mb のオプションをご覧ください。
次に例を示します。
gsutil mb -p PROJECT_ID -c STORAGE_CLASS -l BUCKET_LOCATION -b on gs://BUCKET_NAME
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Terraform
ストレージ バケットの作成には Terraform リソースを使用します。
次の例には、インデックス ページのサフィックスとカスタム エラーページの割り当てが含まれています。詳しくは、特殊ページを割り当てるをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
- バケットの設定を含む .json ファイルを作成します。この設定には、バケットの
name
を含める必要があります。設定の一覧については、Buckets:Insert のドキュメントをご覧ください。一般的な設定は次のとおりです。 BUCKET_NAME
は、バケットに付ける名前で、命名要件の対象となります。例:my-bucket
BUCKET_LOCATION
は、バケットのオブジェクト データを保存するロケーションです。例:US-EAST1
STORAGE_CLASS
はバケットのデフォルトのストレージ クラスです。例:NEARLINE
cURL
を使用して JSON API を呼び出します。curl -X POST --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=PROJECT_IDENTIFIER"
ここで
JSON_FILE_NAME
は手順 2 で作成した JSON ファイルの名前です。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。PROJECT_IDENTIFIER
は、バケットが関連付けられているプロジェクトの ID または番号です。例:my-project
{ "name": "BUCKET_NAME", "location": "BUCKET_LOCATION", "storageClass": "STORAGE_CLASS", "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true }, } }
ここで
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
- 次の情報を含む .xml ファイルを作成します。
BUCKET_LOCATION
は、バケットのオブジェクト データを保存するロケーションです。例:US-EAST1
STORAGE_CLASS
はバケットのデフォルトのストレージ クラスです。例:NEARLINE
cURL
を使用して、XML API を呼び出します。curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME"
ここで
XML_FILE_NAME
は手順 2 で作成した XML ファイルの名前です。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。PROJECT_ID
は、バケットが関連付けられるプロジェクトの ID です。例:my-project
BUCKET_NAME
は、バケットに付ける名前で、命名要件の対象となります。例:my-bucket
<CreateBucketConfiguration> <LocationConstraint>BUCKET_LOCATION</LocationConstraint> <StorageClass>STORAGE_CLASS</StorageClass> </CreateBucketConfiguration>
ここで
サイトのファイルをアップロードする
ウェブサイトから配信するファイルをバケットに追加します。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、作成したバケットをクリックします。
[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。
[ファイルをアップロード] ボタンをクリックします。
ファイル ダイアログで、目的のファイルを参照して選択します。
アップロードが完了すると、ファイル名とファイル情報がバケットに表示されます。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
ファイルをバケットにコピーするには、gcloud storage cp
コマンドを使用します。たとえば、ファイル index.html
を現在の場所 Desktop
からバケット my-static-assets
にコピーするには、次のようにします。
gcloud storage cp Desktop/index.html gs://my-static-assets
成功した場合は、次の例のようなレスポンスになります。
Completed files 1/1 | 164.3kiB/164.3kiB
gsutil
ファイルをバケットにコピーするには、gsutil cp
コマンドを使用します。たとえば、ファイル index.html
を現在の場所 Desktop
からバケット my-static-assets
にコピーするには、次のようにします。
gsutil cp Desktop/index.html gs://my-static-assets
問題なければ、次の内容が返されます。
Copying file://Desktop/index.html [Content-Type=text/html]... Uploading gs://my-static-assets/index.html: 0 B/2.58 KiB Uploading gs://my-static-assets/index.html: 2.58 KiB/2.58 KiB
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Terraform
REST API
JSON API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。ファイルindex.html
がmy-static-assets
という名前のバケットにアップロードされているとします。curl -X POST --data-binary @index.html \ -H "Content-Type: text/html" \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ "https://storage.googleapis.com/upload/storage/v1/b/my-static-assets/o?uploadType=media&name=index.html"
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、PUT
Object リクエストで XML API を呼び出します。ファイルindex.html
がmy-static-assets
という名前のバケットにアップロードされているとします。curl -X PUT --data-binary @index.html \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: text/html" \ "https://storage.googleapis.com/my-static-assets/index.html"
ファイルを共有する
公共のインターネット上で誰もがバケット内のすべてのオブジェクトを閲覧できるようにするには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、公開するバケットの名前をクリックします。
ページ上部にある [権限] タブを選択します。
[公開アクセス] ペインで [非公開] と表示された場合は、[公開アクセス防止を削除] ボタンをクリックし、表示されたダイアログで [確認] をクリックします。
[+ アクセス権を付与] ボタンをクリックします。
[プリンシパルの追加] ダイアログ ボックスが表示されます。
[新しいプリンシパル] フィールドに「
allUsers
」と入力します。[ロールを選択] プルダウンで [Cloud Storage] サブメニューを選択し、[ストレージ オブジェクト閲覧者] オプションをクリックします。
[保存] をクリックします。
[一般公開アクセスを許可] をクリックします。
公開の状態で共有されると、[公開アクセス] 列に各オブジェクトのリンクアイコンが表示されます。このアイコンをクリックすると、オブジェクトの URL を取得できます。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
buckets add-iam-policy-binding
コマンドを使用します。
gcloud storage buckets add-iam-policy-binding gs://my-static-assets --member=allUsers --role=roles/storage.objectViewer
gsutil
gsutil iam ch
コマンドを使用します。
gsutil iam ch allUsers:objectViewer gs://my-static-assets
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Terraform
REST API
JSON API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
次の情報が含まれる JSON ファイルを作成します。
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
cURL
を使用して JSON API を呼び出し、PUT
Bucket リクエストを行います。curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
ここで
JSON_FILE_NAME
は、手順 2 で作成した JSON ファイルのパスです。OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、オブジェクトを公開するバケットの名前です。例:my-static-assets
XML API
XML API では、バケット内のすべてのオブジェクトを公開して読み取り可能にすることはできません。Google Cloud コンソールまたは gcloud storage
を使用するか、個々のオブジェクトに ACL を設定します。
バケット内の個々のオブジェクトを公開するには、バケットのアクセス制御モードをきめ細かい管理に切り替える必要があります。一般に、バケット内のすべてのファイルを一般公開するほう簡単で迅速です。
非公開または存在しないファイルの URL をリクエストすると、サイト訪問者は http 403
レスポンス コードを受け取ります。http 404
レスポンス コードを使用するエラーページを追加する方法については、次のセクションをご覧ください。
推奨: 特殊ページを割り当てる
インデックス ページの接尾辞やカスタム エラーページを割り当てることができます。インデックス ページの接尾辞は MainPageSuffix
プロパティで、カスタム エラーページは NotFoundPage
プロパティで制御します。どちらの割り当ても任意ですが、インデックス ページがないと、ユーザーがトップレベル サイトにアクセスしたときに何も表示されません(例: https://www.example.com
)。MainPageSuffix
プロパティと NotFoundPage
プロパティの詳細については、特殊ページをご覧ください。
次のサンプルでは、MainPageSuffix
を index.html
に設定し、NotFoundPage
を 404.html
に設定します。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、作成したバケットを見つけます。
バケットに関連付けられた [バケット オーバーフロー] メニュー(
)をクリックし、[ウェブサイトの構成を編集] を選択します。
ウェブサイト構成ダイアログで、メインページとエラーページを指定します。
[保存] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
--web-main-page-suffix
フラグと --web-error-page
フラグを指定して、buckets update
コマンドを使用します。
gcloud storage buckets update gs://my-static-assets --web-main-page-suffix=index.html --web-error-page=404.html
問題なければ、次の内容が返されます。
Updating gs://www.example.com/... Completed 1
gsutil
gsutil web set
コマンドを使用して MainPageSuffix
プロパティを -m
フラグ、NotFoundPage
プロパティを -e
フラグで設定します。
gsutil web set -m index.html -e 404.html gs://my-static-assets
問題なければ、次の内容が返されます。
Setting website config on gs://my-static-assets/...
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
JSON ファイルを作成して、
website
オブジェクトのmainPageSuffix
プロパティとnotFoundPage
プロパティを目的のページに設定します。{ "website":{ "mainPageSuffix": "index.html", "notFoundPage": "404.html" } }
cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。バケットmy-static-assets
の場合は、次のようにします。curl -X PATCH --data-binary @web-config.json \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/my-static-assets"
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
XML ファイルを作成し、
WebsiteConfiguration
要素のMainPageSuffix
要素とNotFoundPage
要素を目的のページに設定します。<WebsiteConfiguration> <MainPageSuffix>index.html</MainPageSuffix> <NotFoundPage>404.html</NotFoundPage> </WebsiteConfiguration>
cURL
を使用して、PUT
Bucket リクエストとwebsiteConfig
クエリ文字列パラメータを含めた XML API を呼び出します。my-static-assets の場合は、次のようにします。curl -X PUT --data-binary @web-config.xml \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ https://storage.googleapis.com/my-static-assets?websiteConfig
ロードバランサと SSL 証明書を設定する
Cloud Storage 自体では HTTPS を使用するカスタム ドメインをサポートしていません。HTTPS 経由でウェブサイトを提供するには、HTTPS ロードバランサに関連付けられた SSL 証明書を設定する必要があります。このセクションでは、ロードバランサのバックエンドにバケットを追加する方法と、ロードバランサのフロントエンドに新しい Google マネージド SSL 証明書を追加する方法について説明します。
- Google Cloud コンソールの [ロード バランシング] ページに移動します。
[ロード バランシング] ページに移動 - [HTTP(S) ロード バランシング] で [構成を開始] をクリックします。
- [インターネットから VM またはサーバーレス サービスへ] を選択します。
- [グローバル HTTP(S) ロードバランサ] を選択します。
[次へ] をクリックします。
ロードバランサの構成ウィンドウが表示されます。
構成を続行する前に、ロードバランサに名前を付けます(
example-lb
など)。
フロントエンドを構成する
このセクションでは、HTTPS プロトコルを構成し、SSL 証明書を作成する方法について説明します。既存の証明書を選択することも、セルフマネージド SSL 証明書をアップロードすることもできます。
- [フロントエンドの構成] をクリックします。
- (省略可)フロントエンドの構成に名前を付けます。
- [プロトコル] で、[HTTPS(HTTP/2 を含む)] を選択します。
- [IP バージョン] で [IPv4] を選択します。IPv6 を使用する場合は、IPv6 終端をご覧ください。
[IP アドレス] フィールドで次の操作を行います。
- プルダウンで [IP アドレスを作成] をクリックします。
- [新しい静的 IP アドレスの予約] ポップアップで、IP アドレスの名前として「
example-ip
」などの名前を入力します。 - [予約] をクリックします。
[ポート] で [443] を選択します。
[証明書] フィールドのプルダウンで、[新しい証明書を作成] を選択します。パネルに証明書作成フォームが表示されます。以下の構成を行います。
- 証明書に名前を付けます(
example-ssl
など)。 - [作成モード] で [Google マネージドの証明書を作成する] を選択します。
- [ドメイン] にウェブサイトの名前(
www.example.com
など)を入力します。ルートドメインexample.com
など、追加ドメイン経由でコンテンツを配信する場合は、Enter キーを押して追加行にドメインを追加します。各証明書の上限は 100 ドメインです。
- 証明書に名前を付けます(
[作成] をクリックします。
(省略可)Google Cloud によって部分的な HTTP ロードバランサを自動的に設定し、HTTP トラフィックをリダイレクトする場合は、[HTTP から HTTPS へのリダイレクトを有効にする] チェックボックスを選択します。
[完了] をクリックします。
バックエンドを構成する
- [バックエンドの構成] をクリックします。
- [バックエンド サービスとバックエンド バケット] プルダウンで [バックエンド バケットを作成] をクリックします。
- バックエンド バケット名を選択します(
example-bucket
など)。以前に作成したバケットの名前と異なる名前も選択できます。 - [Cloud Storage バケット] フィールド内の [参照] をクリックします。
- 前に作成した
my-static-assets
バケットを選択し、[選択] をクリックします。 - (省略可)Cloud CDN を使用する場合は、[Cloud CDN を有効にする] チェックボックスをオンにし、必要に応じて Cloud CDN を構成します。Cloud CDN を使用すると、追加費用が発生する可能性があります。
- [作成] をクリックします。
ルーティング ルールを構成する
ルーティング ルールは、外部 HTTP(S) ロードバランサの URL マップのコンポーネントです。このチュートリアルでは、ロードバランサの構成のこの部分をスキップします。これは、構成したバックエンドを使用するように自動的に構成されているためです。
構成を確認する
- [確認と完了] をクリックします。
- [フロントエンド]、[ルーティング ルール]、[バックエンド] を確認します。
- [作成] をクリックします。
ロードバランサの作成に数分かかることがあります。
ドメインをロードバランサに接続する
ロードバランサが作成されたら、ロードバランサの名前(example-lb
)をクリックします。ロードバランサに関連付けられた IP アドレスをメモします(例: 30.90.80.100
)。ドメインをロードバランサに指定するには、ドメイン登録サービスを使用して A
レコードを作成します。SSL 証明書に複数のドメインを追加する場合は、それぞれについて A
レコードを追加して、すべてがロードバランサの IP アドレスを指す必要があります。たとえば、www.example.com
と example.com
に A
レコードを作成するには、次のようにします。
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Google Domains を使用している場合は、Google Domains のヘルプページで詳細をご確認ください。
推奨: SSL 証明書のステータスをモニタリングする
Google Cloud が証明書をプロビジョニングし、ロードバランサ経由でサイトが利用可能になるまでに最大で 60~90 分かかることがあります。証明書のステータスをモニタリングするには:
コンソール
- Google Cloud コンソールの [ロード バランシング] ページに移動します。
[ロード バランシング] ページに移動 - ロードバランサの名前(
example-lb
)をクリックします。 - ロードバランサに関連付けられている SSL 証明書の名前(
example-ssl
)をクリックします。 - [ステータス] 行と [ドメイン ステータス] 行に証明書のステータスが表示されます。ウェブサイトで証明書を有効にするには、両方が有効である必要があります。
gcloud
証明書のステータスを確認するには、次のコマンドを実行します。
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status)"
ドメインのステータスを確認するには、次のコマンドを実行します。
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(managed.domainStatus)"
証明書のステータスの詳細については、SSL 証明書のトラブルシューティングをご覧ください。
ウェブサイトをテストする
SSL 証明書がアクティブになったら https://www.example.com/test.html
に移動し、コンテンツがバケットから配信されていることを確認します。ここで、test.html
は、バックエンドとして使用するバケットに保存されているオブジェクトです。MainPageSuffix
プロパティを設定すると、https://www.example.com
が index.html
に移動します。
クリーンアップ
チュートリアルが終了したら、作成したリソースをクリーンアップして、割り当ての使用を停止し、課金されないようにできます。以下のセクションで、リソースを削除または無効にする方法を説明します。
プロジェクトを削除する
課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- Google Cloud コンソールで、[リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
ロードバランサとバケットの削除
プロジェクト全体を削除しない場合は、このチュートリアル用に作成したロードバランサとバケットを削除します。
- Google Cloud コンソールの [ロード バランシング] ページに移動します。
[ロード バランシング] ページに移動 example-lb
の横のチェックボックスをオンにします。- [削除] をクリックします。
- (省略可)
my-static-assets
バケットやexample-ssl
SSL 証明書など、ロードバランサと一緒に削除するリソースのチェックボックスをオンにします。 - [ロードバランサを削除] または [ロードバランサと選択したリソースを削除] をクリックします。
予約済みの IP アドレスを解放する
チュートリアルで使用した予約済み IP アドレスを削除するには:
Google Cloud コンソールで、[外部 IP アドレス] ページに移動します。
example-ip
の横にあるチェックボックスを選択します。[静的アドレスを予約] をクリックします。
確認ウィンドウで [削除] をクリックします。
次のステップ
- バケットを使用して静的ウェブサイトをホストする場合の設定例とヒントを確認する。
- 静的ウェブサイトをホストする際のトラブルシューティングを確認する。
- 動的ウェブサイトの静的アセットのホストについて学習する。
- 他の Google Cloud ウェブ配信ソリューションについて学習する。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud Storage のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Cloud Storage 無料トライアル