チェックポイント
Create and populate a Cloud Storage bucket
/ 5
Create the HTTP Load Balancer with Cloud CDN
/ 5
Caching Content with Cloud CDN
概要
このラボでは、バックエンド バケットに対して 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 プロジェクトとリソースセットを一定時間無料で利用できます。
-
Qwiklabs にシークレット ウィンドウでログインします。
-
ラボのアクセス時間(例:
1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。 -
準備ができたら、[ラボを開始] をクリックします。
-
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
-
[Google Console を開く] をクリックします。
-
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。 -
利用規約に同意し、再設定用のリソースページをスキップします。
タスク 1. Cloud Storage バケットを作成してデータを取り込む
Cloud CDN コンテンツの送信元となるバックエンドには、次の 2 種類があります。
- Google Compute Engine 仮想マシン(VM)インスタンス グループ
- Google Cloud Storage バケット
このラボでは、バックエンドとして Cloud Storage バケットを構成します。
一意の Cloud Storage バケットを作成する
- Cloud コンソールのナビゲーション メニュー()で、[Cloud Storage] > [バケット] をクリックします。
- [バケットを作成] をクリックします。
- 名前にグローバルに一意の値を入力し、[続行] をクリックします。
- [ロケーション タイプ] で [Region] を選択します。
- [ロケーション] で、地球の反対側、または少なくとも別の大陸にあるロケーションを選択します(これにより、Cloud CDN を有効にした場合と有効にしない場合とで、画像へのアクセスの違いがより明確になります)。
- [続行] をクリックし、[オブジェクトへのアクセスを制御する方法を選択する] をクリックします。
- [このバケットに対する公開アクセス禁止を適用する] をオフにして [きめ細かい管理] を選択し、[作成] をクリックします。
- ストレージ バケットの名前をメモしておきます(次のサブタスクで使用します)。これ以降は、この名前を
[your-storage-bucket]
と呼びます。
バケットに画像ファイルをコピーする
Cloud Storage の公開バケットから自分のバケットに画像をコピーします。
-
Google Cloud コンソールで、Cloud Shell をアクティブにするアイコン()をクリックします。
-
プロンプトが表示されたら、[続行] をクリックします。
-
Cloud Shell で次のコマンドを実行します。
[your-storage-bucket]
の部分は自分のバケットの名前に置き換えてください。
-
Cloud コンソールで [バケットを更新] をクリックし、画像がコピーされたことを確認します。
-
次のコマンドを使用して Cloud Storage 内の画像ファイルをウェブに公開します。
-
[公開アクセス] で [公開リンク] をクリックして、画像にアクセスできることを確認します。
-
Cloud Shell を終了します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 2. Cloud CDN を使用して HTTP ロードバランサを作成する
HTTP(S) ロード バランシングは、Cloud Storage バケット(バックエンド)への静的コンテンツの HTTP(S) リクエストに対してグローバルなロード バランシングを行います。バックエンドで Cloud CDN を有効にすると、Google ネットワークのエッジにあるロケーションのキャッシュにコンテンツが保存されるようになります。このロケーションは通常、バックエンドよりもはるかにユーザーに近い場所にあります。
HTTP ロードバランサの構成を開始する
- Cloud コンソールの ナビゲーション メニュー()で、[ネットワーク サービス] > [ロード バランシング] をクリックします。
- [ロードバランサを作成] をクリックします。
- [HTTP(S) ロード バランシング] で [構成を開始] をクリックします。
- [名前] に「cdn-lb」と入力し、[続行] をクリックします。
バックエンドを構成する
- [バックエンドの構成] をクリックします。
- [バックエンド サービスとバックエンド バケット] で、[バックエンド バケットを作成] をクリックします。
- [名前] に「cdn-bucket」と入力します。
- [Cloud Storage バケット] で [参照] をクリックします。
- バケットを選択し、[選択] をクリックします。
- [Cloud CDN を有効にする] を選択します。
- [作成] をクリックします。
フロントエンドを構成する
ホストとパスのルールで、トラフィックの転送方法を決定します。たとえば、動画のトラフィックと画像のトラフィックをそれぞれ異なるバックエンドに転送できます。ただし、このラボではホストとパスのルールは構成しません。
-
[フロントエンドの構成] をクリックします。
-
以下のように設定します。その他の値はデフォルト値のままにしてください。
プロパティ 値(値を入力するか、指定されたオプションを選択) プロトコル HTTP IP バージョン IPv4 IP アドレス エフェメラル ポート 80 -
[完了] をクリックします。
HTTP ロードバランサを確認して作成する
- [確認と完了] をクリックします。
- バックエンド バケットとフロントエンドを確認します。
- [作成] をクリックします。
ロードバランサの作成が完了するまで待ちます。 - ロードバランサの名前(cdn-lb)をクリックします。
- ロードバランサの IP アドレスをメモします(次のタスクで使用します)。これ以降は、これを
[LB_IP_ADDRESS]
と呼びます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 3. キャッシュへのバケット コンテンツの保存を確認する
バケットの HTTP ロードバランサを作成し、Cloud CDN を有効にしたところで、今度は Google のネットワークのエッジで画像がキャッシュに保存されることを確認します。
画像の HTTP リクエストの時間を計測する
画像がキャッシュに保存されたことを確認する 1 つの方法は、画像に対する HTTP リクエストの所要時間を計測することです。初回リクエストにかかる時間は長くなります。エッジ ロケーションから初めてコンテンツにアクセスして、そのロケーションのキャッシュにコンテンツを保存するためです。
- Google Cloud コンソールで、Cloud Shell をアクティブにするアイコン()をクリックします。
- プロンプトが表示されたら、[続行] をクリックします。
- ロードバランサの IP アドレスを環境変数に格納します。
- 次のコマンドを 3 回実行して、連続する 3 つの HTTP リクエストの所要時間を計測します。
出力は次のようになります(コピーしないでください。これは出力例です)。
Cloud CDN ログを調べる
前のステップで画像がキャッシュされたことを確認するもうひとつの方法は、Cloud CDN ログを調べることです。これらのログには、コンテンツがキャッシュに保存された日時と、キャッシュがアクセスされた日時に関する情報が記録されます。
- Cloud Console のナビゲーション メニュー()で、[ロギング] > [ログビューア] をクリックします。
- [リソース] フィルタから、[Cloud HTTP ロードバランサ] > [cdn-lb-forwarding-rule] > [cdn-lb] を選択します。
-
最初のログエントリ(先頭にあるエントリ)を展開します。
-
エントリ内で httpRequest を展開し、cacheLookup が true になっていて、cacheHit フィールドが存在しないことを確認します。
これは、この最初のリクエストではキャッシュに画像が含まれていなかったことを示しています。
-
jsonPayload を展開し、statusDetails フィールドに response_sent_by_backend が含まれていることを確認します。
これもまた、最初のリクエストで画像がバックエンド バケットから取得されたことを示しています。
-
このログエントリを閉じて、別のログエントリを展開します。
-
エントリ内で httpRequest を展開し、cacheHit が true であることを確認します。
これは、このリクエストではキャッシュに画像が含まれていたことを示しています。
-
jsonPayload を展開し、statusDetails フィールドの値が response_from_cache になっていることを確認します。
これもまた、このリクエストで画像がバックエンドではなくキャッシュから取得されたことを示しています。
タスク 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 つ = 非常に満足
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
マニュアルの最終更新日: 2022 年 9 月 14 日
ラボの最終テスト日: 2022 年 9 月 14 日
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。