arrow_back

Cloud CDN

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Cloud CDN

Lab 40分 universal_currency_alt クレジット: 5 show_chart 中級
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP217

Google Cloud セルフペース ラボ

概要

このラボでは、バックエンド バケットの Google 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 のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

  2. 出力は次のようになります。

出力:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

Cloud Storage バケットを作成してデータを入力する

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

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

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

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

  1. Cloud Console のナビゲーション メニューから [Cloud Storage] > [ブラウザ] をクリックします。

  2. [バケットを作成] をクリックします。

  3. 以下のフィールドの値を設定します。その他のフィールドはデフォルト値のままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 グローバルに一意の名前を入力します。
    入力した名前が一意でない場合、別の名前を試すように促すメッセージが表示されます。
    ロケーション タイプ Multi-region
    ロケーション お客様の所在地から非常に遠い場所を選択します。
  1. [作成] をクリックします。

  2. ストレージ バケットの名前をメモしておきます(次のステップで使用します)。これ以降は、この名前を [your-storage-bucket] と呼びます。

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

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

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

gsutil cp gs://cloud-training/gcpnet/cdn/cdn.png gs://[your-storage-bucket]

[承認] をクリックします。

  1. [バケットの詳細] ページで [更新] をクリックして、画像がバケットにコピーされたことを確認します。

refresh_bucket.png

バケットを公開する

公開オブジェクト専用の Cloud Storage バケットを作成することをおすすめします。

  1. [バケットの詳細] ページで、[権限] タブをクリックします。
  2. [追加] をクリックします。
  3. [新しいメンバー] に「allUsers」と入力して、プルダウン メニューからそれを選択します。
  4. ロールとして [Cloud Storage] > [Storage オブジェクト閲覧者] を選択します。
  5. [保存] をクリックします。
  6. [一般公開アクセスを許可] をクリックします。
  7. [オブジェクト] タブをクリックします。
  8. [公開アクセス] の [URL をコピー] をクリックし、新しいブラウザタブを開いて URL を貼り付け、画像にアクセスできることを確認します。

cdn.png

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

Cloud CDN を使用して HTTP ロードバランサを作成する

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

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

  1. Cloud Console のナビゲーション メニューmainmenu.png)から [ネットワーク サービス] > [Cloud Load Balancing] を選択し、[ロードバランサを作成] をクリックします。

  2. [HTTP(S) 負荷分散] で [構成を開始] をクリックします。

  3. [インターネットから自分の VM へ] をオンにし、[続行] をクリックします。

  4. [名前] を cdn-lb に設定します。

バックエンドを構成する

  1. [バックエンドの構成] をクリックします。
  2. [バックエンド サービスとバックエンド バケット] の [バックエンド サービスとバックエンド バケットの作成または選択] プルダウン メニューをクリックして、[バックエンド バケット]、[バックエンド バケットを作成] の順にクリックします。
  3. [名前] を cdn-bucket に設定します。
  4. [Cloud Storage バケット] で、[参照] をクリックします。
  5. バケットをクリックして、[選択] をクリックします。
  6. [Cloud CDN を有効にする] をオンにします。
  7. [静的コンテンツをキャッシュする] がデフォルトでオンになっています。このラボでは [クライアント有効期間]、[デフォルトの有効期間]、[最大有効期間] をすべて [1 分] に設定します。
  8. [作成] をクリックします。

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

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

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

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

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

  1. [確認と完了] をクリックします。

  2. バックエンド バケットフロントエンドを確認します。

    review_finalize.png

  3. [作成] をクリックし、ロードバランサが作成されるのを待ちます。

  4. ロードバランサの名前(cdn-lb)をクリックします。

  5. ロードバランサの IP アドレスをメモします(次のタスクで使用します)。これ以降は、これを [LB_IP_ADDRESS] と呼びます。

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

キャッシュへのバケット コンテンツの保存を検証する

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

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

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

  1. Cloud Shell でロードバランサの IP アドレスを環境変数に保存します。

export LB_IP_ADDRESS=<ロードバランサの IP アドレスを入力します>
  1. 次のコマンドを実行して、連続する 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
  1. ログを得るために、コマンドを数回繰り返し実行します。

for i in {1..3};do curl -s -w "%{time_total}\n" -o /dev/null http://$LB_IP_ADDRESS/cdn.png; done

Cloud CDN ログを調べる

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

  1. Cloud Console のナビゲーション メニューから [ロギング] > [ログ エクスプローラ] を選択します。

  2. [リソース] フィルタから [Cloud HTTP ロードバランサ] > [cdn-lb-forwarding-rule] > [cdn-lb] の順に選択し、[追加] をクリックします。

  3. [クエリを実行] をクリックします。

  1. 最初のログエントリ(最上部)を展開します。

  2. エントリ内で httpRequest を展開し、cacheLookuptrue になっていて、cacheHit フィールドが存在しないことを確認します。これは、この最初のリクエストではキャッシュに画像が含まれていなかったことを示しています。

  3. jsonPayload を展開し、statusDetails フィールドに response_sent_by_backend が含まれていることを確認します。これもまた、最初のリクエストでは、画像がバックエンド バケットから取得されたことを示しています。

  4. 展開したログエントリを閉じて、クエリ結果の最下部のログエントリを展開します。

  5. そのエントリ内で httpRequest を展開し、cacheLookupCacheHittrue になっていることを確認します。 これは、このリクエストではキャッシュに画像が含まれていたことを示しています。

  6. jsonPayload を展開し、statusDetails フィールドに response_from_cache が含まれていることを確認します。これもまた、このリクエストでは画像がバックエンドではなくキャッシュから取得されたことを示しています。

お疲れさまでした

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

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

Networking_125.png

クエストを完了する

このセルフペース ラボは、Qwiklabs の「Network Performance and Optimization」クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください

次のラボを受講する

Network Tiers - Optimizing Netwok Spend」に進んでクエストを続けるか、以下のおすすめのラボをご確認ください。

次のステップと詳細情報

Cloud CDN の基本コンセプトについては、Cloud CDN のドキュメントをご覧ください。

マニュアルの最終更新日: 2021 年 5 月 26 日
ラボの最終テスト日: 2021 年 5 月 26 日

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