ロードバランサへのバックエンド バケットの追加

バックエンド バケットでは、Google Cloud Storage バケットHTTP(S) 負荷分散とともに使用できます。

ロードバランサのバックエンドとしての Cloud Storage バケットの使用

外部 HTTP(S) ロードバランサは、URL マップを使用して、指定された URL からのトラフィックをバックエンド サービスまたはバックエンド バケットに送信します。一般的なユースケースは次のとおりです。

  • データなどの動的コンテンツに対するリクエストをバックエンド サービスに送信します。
  • 画像などの静的コンテンツに対するリクエストをバックエンド バケットに送信します。

次の図では、ロードバランサが /static/eu/ のパスを含むトラフィックを europe-north リージョンの Cloud Storage バケットに送信しています。他のすべてのリクエストは、us-east リージョンの Cloud Storage バケットに送信されます。

Cloud Storage へのトラフィックの分散(クリックして拡大)
Cloud Storage へのトラフィックの分散(クリックして拡大)

このドキュメントでは、外部 HTTP(S) ロードバランサを作成して静的コンテンツのリクエストを Cloud Storage バケットにルーティングする方法について説明します。バックエンド バケットを使用してロードバランサを構成した後、/static/eu で始まる URL パスへのリクエストは europe-north Cloud Storage バケットに送信され、その他のリクエストはすべて us-east Cloud Storage バケットに送信されます。

始める前に

  1. gcloud または gsutil ユーティリティを使用する場合は、クイックスタート: gsutil ツールの使用の手順に従って、これらのツールをインストールします。
  2. デフォルトのプロジェクトを設定します

    Console

    a. Google Cloud Console のホームページに移動します。
    Google Cloud のホームページに移動する

    b. Google Cloud の右側にあるプルダウン メニューでプロジェクトを選択します。

    gcloud または gsutil

         gcloud config set project [PROJECT_ID]
        

    または

         gsutil config set project [PROJECT_ID]
        
    • [PROJECT_ID] - このガイドで使用するプロジェクトです。

Cloud Storage バケットを 2 つ作成する

Console

  1. Cloud Console で、Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. [バケットを作成] をクリックします。
  3. 以下のフィールドの値を設定します。その他のフィールドはデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 バケットごとに、グローバルに一意の名前を入力します。入力した名前が一意でない場合、別の名前を試すように促すメッセージが表示されます。
    ロケーション タイプ リージョン
    ロケーション 1 つのバケットに対して us-east1 を選択します。
    もう 1 つのバケットには europe-north1 を選択します。
    デフォルトのストレージ クラス 標準
    アクセス制御 きめ細かい管理
  4. [作成] をクリックします。

  5. 新たに作成された Cloud Storage バケットの名前をメモします。次のステップは、この名前を BUCKET_1_NAMEBUCKET_2_NAME とします。

gsutil

    gsutil mb -p project-id -c standard -l us-east1 -b on gs://BUCKET_1_NAME
    
    gsutil mb -p project-id -c standard -l europe-north1 -b on gs://BUCKET_2_NAME
    

Cloud Storage バケットにグラフィック ファイルをコピーする

一般公開の Cloud Storage バケットから独自の Cloud Storage バケットにグラフィック ファイルをコピーします。

  1. Cloud Shell で次のコマンドを実行します。バケット名の変数は Cloud Storage バケット名に置き換えます。

        gsutil cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_1_NAME/static/us/
        
        gsutil cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET_2_NAME/static/eu/
        
  2. Cloud Console で、[バケットを更新] をクリックして、グラフィック ファイルがコピーされたことを確認します。

Cloud Storage バケットを公開する

    gsutil iam ch allUsers:objectViewer gs://BUCKET_1_NAME
    
    gsutil iam ch allUsers:objectViewer gs://BUCKET_2_NAME
    

バックエンド バケットを使用して HTTP ロードバランサを作成する

HTTP ロードバランサの構成プロセスを開始する

  1. Google Cloud Console で [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. [HTTP(S) 負荷分散] で [構成を開始] をクリックします。
  3. [インターネットから自分の VM へ] を選択します。
  4. [名前] を http-lb に設定します。

バックエンドを構成する

  1. [バックエンドの構成] をクリックします。
  2. [バックエンド サービスとバックエンド バケット] で、[バックエンド サービスとバックエンド バケットの作成または選択] をクリックし、[バックエンド バケット]、[バックエンド サービスを作成] の順にクリックします。
  3. [名前] を backend-bucket1 に設定します。
  4. [Cloud Storage バケット] で [参照] をクリックします。
  5. BUCKET_1_NAME を選択して、[選択] をクリックします。
  6. [作成] をクリックします。

この手順を繰り返して backend-bucket2 を作成し、BUCKET_2_NAME を選択します。

ホストルールとパスマッチャーを構成する

ホストルールとパスマッチャーは、外部 HTTP(S) ロードバランサの URL マップの構成要素です。

  1. [ホストとパスのルール] をクリックします。
  2. backend-bucket1 の場合、デフォルトのホストとパスは変更できません。これは、一致しないすべてのリクエストが backend-bucket1 に転送されることを意味します。
  3. backend-bucket2 の場合は、[ホスト] フィールドに「*」を入力します。
  4. backend-bucket2 の場合は、[パス] フィールドに「/static/eu/*」を入力します。

    ホスト パス バックエンド
    不一致すべて(デフォルト) 不一致すべて(デフォルト) backend-bucket1
    * /static/eu/* backend-bucket2
  5. [作成] をクリックします。

フロントエンドを構成する

  1. [フロントエンドの構成] をクリックします。
  2. 以下のオプションが次の値で構成されていることを確認します。

    プロパティ
    値(値を入力するか、指定されたオプションを選択)
    プロトコル
    HTTP
    ネットワーク サービス階層
    プレミアム
    IP バージョン
    IPv4
    IP アドレス
    エフェメラル
    ポート
    80
  3. [完了] をクリックします。

構成の確認

  1. [確認と完了] をクリックします。
  2. バックエンド バケットホストとパスのルールフロントエンドを確認します。
  3. [作成] をクリックします。
  4. ロードバランサの作成が完了するまで待ちます。
  5. ロードバランサの名前(http-lb)をクリックします。
  6. ロードバランサの IP アドレスをメモします(次のタスクで使用します)。次のタスクでは ip-address とします。

バックエンド バケットへのトラフィックの送信

ロードバランサが構成されたので、ロードバランサの IP アドレスにトラフィックを送信できるようになりました。

Console

  1. Google Cloud Console で [負荷分散] ページに移動します。
    [負荷分散] ページに移動
  2. http-lb をクリックして、作成したロードバランサを展開します。
  3. [バックエンド] セクションで、バックエンド バケットが正常であることを確認します。 バックエンド バケットの横に緑色のチェックマークが表示されます。それ以外の場合は、最初にページを再読み込みしてみてください。Cloud Console で、バックエンドが正常と表示されるまでに時間がかかることがあります。
  4. バックエンド バケットが良好な状態であることが Cloud Console に表示されたら、ロードバランサのテストを行います。ウェブブラウザで https://ip-address/static/eu/two-dogs.jpg と https://ip-address/static/us/three-cats.jpg を開きます。ここで、ip-addressロードバランサの IP アドレスです。グラフィック ファイルを含むコンテンツのページがブラウザに表示されます。

gcloud/ curl の使用

curl コマンドを使用して、URL からのレスポンスをテストします。ip-address は、ロードバランサの IPv4 アドレスで置き換えます。

    curl https://ip-address/static/eu/two-dogs.jpg
    
    curl https://ip-address/static/us/three-cats.jpg
    

次のステップ