arrow_back

Caching Content with Cloud CDN

ログイン 参加
700 以上のラボとコースにアクセス

Caching Content with Cloud CDN

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

このラボでは、バックエンド バケットに対して Cloud コンテンツ配信ネットワーク(Cloud CDN)を構成して、キャッシュへの画像の保存を確認します。Cloud CDN は世界各地に分散された Google のエッジ拠点を使用して、HTTP(S) の負荷分散コンテンツをユーザーの近くでキャッシュに保存します。Google のネットワーク エッジのキャッシュにコンテンツを保存することで、コストを削減しながら、ユーザーにより速くコンテンツを配信できます。

Google の Cloud CDN キャッシュ サイトの最新のリストについては、https://cloud.google.com/cdn/docs/locations にあるドキュメントをご覧ください。

目標

このラボでは、次のタスクの実行方法について学びます。

  • Cloud Storage バケットを作成してデータを入力する
  • Cloud CDN を使用して HTTP ロードバランサを作成する
  • キャッシュへのバケット コンテンツの保存を確認する

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

タスク 1. Cloud Storage バケットを作成してデータを取り込む

Cloud CDN コンテンツの送信元となるバックエンドには、次の 2 種類があります。

  • Google Compute Engine 仮想マシン(VM)インスタンス グループ
  • Google Cloud Storage バケット

このラボでは、バックエンドとして Cloud Storage バケットを構成します。

一意の Cloud Storage バケットを作成する

  1. Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[Cloud Storage] > [バケット] をクリックします。
  2. [作成] をクリックします。
  3. 名前にグローバルに一意の値を入力し、[続行] をクリックします。
  4. [ロケーション タイプ] で [リージョン] を選択します。
  5. [リージョン] プルダウンで [] を選択します。
  6. [続行] をクリックし、[データのストレージ クラスを選択する] のデフォルト選択をそのままにします。
  7. [オブジェクトへのアクセスを制御する方法を選択する] をクリックします。
  8. [このバケットに対する公開アクセス禁止を適用する] チェックボックスをオフにして、[きめ細かい管理] を選択し、[作成] をクリックします。
注: [このバケットに対する公開アクセス禁止を適用する] チェックボックスがオフになっている場合でも、プロジェクトの組織のポリシーによってバケットの内容への公開アクセスが拒否される場合があります。
  1. ストレージ バケットの名前をメモしておきます(次のサブタスクで使用します)。これ以降は、この名前を [your-storage-bucket] と呼びます。

バケットに画像ファイルをコピーする

Cloud Storage の公開バケットから自分のバケットに画像をコピーします。

  1. Google Cloud コンソールで、Cloud Shell をアクティブにするアイコン(Cloud Shell)をクリックします。

  2. プロンプトが表示されたら、[続行] をクリックします。

  3. Cloud Shell で次のコマンドを実行します。[your-storage-bucket] の部分は自分のバケットの名前に置き換えてください。

gsutil cp gs://cloud-training/gcpnet/cdn/cdn.png gs://[your-storage-bucket]
  1. Cloud コンソールで [更新] をクリックし、画像がコピーされたことを確認します。

  2. 次のコマンドを使用して Cloud Storage 内の画像ファイルをウェブに公開します。

gsutil acl ch -u AllUsers:R gs://[your-storage-bucket]/cdn.png
  1. Cloud コンソールで [更新] をクリックし、[公開アクセス] 列に [インターネットに公開 URL をコピー] が表示されていることを確認します。

  2. [公開アクセス] で [URL をコピー] をクリックして、画像にアクセスできることを確認します。

  3. Cloud Shell を終了します。

exit

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Storage バケットを作成してデータを入力する

タスク 2. Cloud CDN を使用して HTTP ロードバランサを作成する

HTTP(S) ロード バランシングは、Cloud Storage バケット(バックエンド)への静的コンテンツの HTTP(S) リクエストに対してグローバルなロード バランシングを行います。バックエンドで Cloud CDN を有効にすると、Google ネットワークのエッジにあるロケーションのキャッシュにコンテンツが保存されるようになります。このロケーションは通常、バックエンドよりもはるかにユーザーに近い場所にあります。

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

  1. Cloud コンソールで、ページ上部の検索バーに「ネットワーク サービス」と入力し、[ネットワーク サービス ネットワーク管理ツール] オプションを選択します。
  2. [ロード バランシング] を選択し、[+ ロードバランサの作成] をクリックします。
  3. [ロードバランサのタイプ] で [アプリケーション ロードバランサ(HTTP / HTTPS)] を選択し、[次へ] をクリックします。
  4. すべての設定をデフォルトのままにして、[構成] をクリックします。
  5. [ロードバランサの名前] に「cdn-lb」と入力します。

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

ホストとパスのルールで、トラフィックの転送方法を決定します。たとえば、動画のトラフィックと画像のトラフィックをそれぞれ異なるバックエンドに転送できます。ただし、このラボではホストとパスのルールは構成しません。

  1. [フロントエンドの構成] をクリックします。

  2. 以下のように設定します。その他の値はデフォルト値のままにしてください。

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

バックエンドを構成する

  1. [バックエンドの構成] をクリックします。
  2. [バックエンド サービスとバックエンド バケット] プルダウンをクリックし、[バックエンド バケットを作成] をクリックします。
  3. [名前] に「cdn-bucket」と入力します。
  4. [Cloud Storage バケット] で [参照] をクリックします。
  5. バケットを選択し、[選択] をクリックします。
  6. [Cloud CDN を有効にする] チェックボックスをオンにします。
  7. 残りの設定はそのままにします。
  8. [作成] をクリックします。
  9. 作成したバックエンド バケットを選択し、[OK] をクリックします。
Cloud CDN は、[Cloud CDN を有効にする] をオンにするだけで有効になります。

HTTP ロードバランサを確認して作成する

  1. [確認と完了] をクリックします。
  2. バックエンド バケットフロントエンドを確認します。
  3. [作成] をクリックします。
    ロードバランサの作成が完了するまで待ちます。
  4. ロードバランサの名前(cdn-lb)をクリックします。
  5. ロードバランサの IP アドレスをメモします(次のタスクで使用します)。これ以降は、これを [LB_IP_ADDRESS] と呼びます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud CDN を使用して HTTP ロードバランサを作成する

タスク 3. キャッシュへのバケット コンテンツの保存を確認する

バケットの HTTP ロードバランサを作成し、Cloud CDN を有効にしたところで、今度は Google のネットワークのエッジで画像がキャッシュに保存されることを確認します。

画像の HTTP リクエストの時間を計測する

画像がキャッシュに保存されたことを確認する 1 つの方法は、画像に対する HTTP リクエストの所要時間を計測することです。初回リクエストにかかる時間は長くなります。エッジ ロケーションから初めてコンテンツにアクセスして、そのロケーションのキャッシュにコンテンツを保存するためです。

  1. Google Cloud コンソールで、Cloud Shell をアクティブにするアイコン(Cloud Shell)をクリックします。
  2. プロンプトが表示されたら、[続行] をクリックします。
  3. ロードバランサの IP アドレスを環境変数に格納します。
export LB_IP_ADDRESS=<ロードバランサの IP アドレスを入力>
  1. 次のコマンドを 3 回実行して、連続する 3 つの HTTP リクエストの所要時間を計測します。
for i in {1..3};do curl -s -w "%{time_total}\n" -o /dev/null http://$LB_IP_ADDRESS/cdn.png; done

出力は次のようになります(コピーしないでください。これは出力例です)。

1.234357 0.009600 0.006652 この出力例では、2 番目と 3 番目のリクエストの所要時間が 1 番目のリクエストの 1% 未満です。これは、画像が最初のリクエスト時にキャッシュに保存され、以降のリクエストではエッジ ロケーションからアクセスされたことを意味しています。ストレージ バケットをどれほど遠くに配置したか、また最も近いエッジ ロケーションがどこなのかによって、表示される結果は異なります。

Cloud CDN ログを調べる

前のステップで画像がキャッシュされたことを確認するもうひとつの方法は、Cloud CDN ログを調べることです。これらのログには、コンテンツがキャッシュに保存された日時と、キャッシュがアクセスされた日時に関する情報が記録されます。

Cloud CDN ロギングがアルファ版のうちは、以下の手順を想定どおりに進められない可能性があります。 手順 2~4 で選択した内容が表示されるまでに、数分かかるか、ページの更新が必要になる場合があります。
  1. Cloud コンソールで、ページ上部の検索バーに「ロギング」と入力し、[ロギング リアルタイム ロギング管理および分析] オプションを選択します。
  2. [リソースの種類] フィルタで、[アプリケーション ロードバランサ] を選択します。
  3. 次に、[アプリケーション ロードバランサ] 選択項目の下までスクロールし、[転送ルール名] 領域を見つけて [cdn-lb-forwarding-rule] を選択します。
  4. 次に、[cdn-lb-forwarding-rule] 選択項目の下までスクロールし、[URL マップ名] 領域を見つけて [cdn-lab] を選択します。
Cloud CDN ログを選択できるようになるまでに数分かかる場合があります。
  1. 最初のログエントリ(最上部)を展開します。

  2. エントリ内で httpRequest を展開し、cacheLookuptrue になっていて、cacheHit フィールドが存在しないことを確認します。

    これは、この最初のリクエストではキャッシュに画像が含まれていなかったことを示しています。

  3. jsonPayload を展開し、statusDetails フィールドに response_sent_by_backend が含まれていることを確認します。

    これもまた、最初のリクエストで画像がバックエンド バケットから取得されたことを示しています。

  4. このログエントリを閉じて、別のログエントリを展開します。

  5. エントリ内で httpRequest を展開し、cacheHittrue であることを確認します。

    これは、このリクエストではキャッシュに画像が含まれていたことを示しています。

  6. jsonPayload を展開し、statusDetails フィールドの値が response_from_cache になっていることを確認します。

    これもまた、このリクエストで画像がバックエンドではなくキャッシュから取得されたことを示しています。

最初のリクエスト時に画像がバックエンドから取得されたことは、Cloud CDN ログではっきりとわかります。この最初のリクエストにより、画像がエッジ ロケーションのキャッシュに保存され、その後のすべてのリクエストでは画像はキャッシュから取得されました。

タスク 4. まとめ

このラボでは、HTTP ロードバランサを構成し、Cloud CDN を有効にして、バックエンド バケットの Cloud CDN を構成しました。Cloud CDN は、チェックボックスをオンにするだけで有効になります。次に、画像に数回アクセスして Cloud CDN ログを調べ、キャッシュへのバケット コンテンツの保存を確認しました。画像への初回アクセス時は、エッジ ロケーションのキャッシュにまだ画像が保存されていないため、アクセスするのに長めの時間がかかりました。他のすべてのリクエストでは、Cloud Shell インスタンスに最も近いエッジ ロケーションのキャッシュから画像が取得されたため、時間が短縮されました。

Google の Cloud CDN キャッシュ サイトの最新のリストについては、https://cloud.google.com/cdn/docs/locations にあるドキュメントをご覧ください。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

マニュアルの最終更新日: 2024 年 5 月 14 日

ラボの最終テスト日: 2024 年 5 月 14 日

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。