![](https://cdn.qwiklabs.com/assets/labs/start_lab-f45aca49782d4033c3ff688160387ac98c66941d.png)
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you restart it, you'll have to start from the beginning.
- On the top left of your screen, click Start lab to begin
Create and populate a Cloud Storage bucket
/ 50
Create the HTTP Load Balancer with Cloud CDN
/ 50
このラボでは、バックエンド バケットの 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 にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [ユーザー名] を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [パスワード] を確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
[承認] をクリックします。
出力は次のようになります。
出力:
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
Cloud CDN コンテンツの送信元となるバックエンドには、次の 2 種類があります。
このラボでは、Cloud Storage バケットをバックエンドとして構成します。
Cloud Console のナビゲーション メニューから [Cloud Storage] > [ブラウザ] をクリックします。
[バケットを作成] をクリックします。
以下のフィールドの値を設定します。その他のフィールドはデフォルト値のままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
名前 | グローバルに一意の名前を入力します。 入力した名前が一意でない場合、別の名前を試すように促すメッセージが表示されます。 |
ロケーション タイプ | Multi-region |
ロケーション | お客様の所在地から非常に遠い場所を選択します。 |
[作成] をクリックします。
ストレージ バケットの名前をメモしておきます(次のステップで使用します)。これ以降は、この名前を [your-storage-bucket]
と呼びます。
Cloud Storage の公開バケットから自分のバケットに画像をコピーします。
Cloud Shell で次のコマンドを実行します。[your-storage-bucket]
の部分は自分のバケットの名前に置き換えてください。
gsutil cp gs://cloud-training/gcpnet/cdn/cdn.png gs://[your-storage-bucket]
[承認] をクリックします。
公開オブジェクト専用の Cloud Storage バケットを作成することをおすすめします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
HTTP(S) 負荷分散は、Cloud Storage バケット(バックエンド)への静的コンテンツの HTTP(S) リクエストに対してグローバルな負荷分散を行います。バックエンドで Cloud CDN を有効にすることにより、Google ネットワークのエッジにあるロケーションのキャッシュにコンテンツが保存されるようになります。このロケーションは通常、バックエンドよりもはるかにユーザーに近い場所にあります。
Cloud Console のナビゲーション メニュー()から [ネットワーク サービス] > [Cloud Load Balancing] を選択し、[ロードバランサを作成] をクリックします。
[HTTP(S) 負荷分散] で [構成を開始] をクリックします。
[インターネットから自分の VM へ] をオンにし、[続行] をクリックします。
[名前] を cdn-lb
に設定します。
cdn-bucket
に設定します。[フロントエンドの構成] をクリックします。
以下のように設定します。その他の値はデフォルト値のままにします。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
プロトコル | HTTP |
IP バージョン | IPv4 |
IP アドレス | エフェメラル |
ポート | 80 |
[完了] をクリックします。
[確認と完了] をクリックします。
バックエンド バケットとフロントエンドを確認します。
[作成] をクリックし、ロードバランサが作成されるのを待ちます。
ロードバランサの名前(cdn-lb)をクリックします。
ロードバランサの IP アドレスをメモします(次のタスクで使用します)。これ以降は、これを [LB_IP_ADDRESS]
と呼びます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
バケットの HTTP ロードバランサを作成し、Cloud CDN を有効にしたところで、今度は Google のネットワークのエッジで画像がキャッシュに保存されることを確認します。
画像がキャッシュに保存されたことを確認する 1 つの方法は、画像の HTTP リクエストの時間を計測することです。初回リクエストにかかる時間は長くなります。コンテンツはエッジ ロケーションから初めてアクセスされたときに、そのロケーションのキャッシュに保存されるからです。
Cloud Shell でロードバランサの IP アドレスを環境変数に保存します。
export LB_IP_ADDRESS=<ロードバランサの IP アドレスを入力します>
次のコマンドを実行して、連続する 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
ログを得るために、コマンドを数回繰り返し実行します。
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 Console のナビゲーション メニューから [ロギング] > [ログ エクスプローラ] を選択します。
[リソース] フィルタから [Cloud HTTP ロードバランサ] > [cdn-lb-forwarding-rule] > [cdn-lb] の順に選択し、[追加] をクリックします。
[クエリを実行] をクリックします。
最初のログエントリ(最上部)を展開します。
エントリ内で httpRequest を展開し、cacheLookup が true
になっていて、cacheHit フィールドが存在しないことを確認します。これは、この最初のリクエストではキャッシュに画像が含まれていなかったことを示しています。
jsonPayload を展開し、statusDetails フィールドに response_sent_by_backend
が含まれていることを確認します。これもまた、最初のリクエストでは、画像がバックエンド バケットから取得されたことを示しています。
展開したログエントリを閉じて、クエリ結果の最下部のログエントリを展開します。
そのエントリ内で httpRequest を展開し、cacheLookup と CacheHit が true
になっていることを確認します。 これは、このリクエストではキャッシュに画像が含まれていたことを示しています。
jsonPayload を展開し、statusDetails フィールドに response_from_cache
が含まれていることを確認します。これもまた、このリクエストでは画像がバックエンドではなくキャッシュから取得されたことを示しています。
このラボでは、HTTP ロードバランサを構成し、チェックボックスをオンにするだけで Cloud CDN を有効にすることにより、バックエンド バケットの Cloud CDN を構成しました。画像に数回アクセスして、Cloud CDN ログを調べることにより、キャッシュへのバケット コンテンツの保存を確認しました。画像への初回アクセス時は、エッジ ロケーションのキャッシュにまだ画像が含まれていないため、長めの時間がかかりました。他のすべてのリクエストでは、Cloud Shell インスタンスに最も近いエッジ ロケーションのキャッシュから画像が供給されたため、時間が短縮されました。
Google Cloud CDN キャッシュ サイトの最新のリストについては、ドキュメント(https://cloud.google.com/cdn/docs/locations)をご覧ください。
このセルフペース ラボは、Qwiklabs の「Network Performance and Optimization」クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください。
「Network Tiers - Optimizing Netwok Spend」に進んでクエストを続けるか、以下のおすすめのラボをご確認ください。
Cloud CDN の基本コンセプトについては、Cloud CDN のドキュメントをご覧ください。
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。