
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 end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create cluster and deploy an app
/ 40
Migrate to an Optimized Nodepool
/ 20
Apply a Frontend Update
/ 20
Autoscale from Estimated Traffic
/ 20
チャレンジラボでは、シナリオと一連のタスクが提供されます。手順ガイドに沿って進める形式ではなく、コース内のラボで習得したスキルを駆使して、ご自身でタスクを完了していただきます。タスクが適切に完了したかどうかは、このページに表示される自動スコアリング システムで確認できます。
チャレンジラボは、Google Cloud の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。
100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。
このラボは、「Optimize Costs for Google Kubernetes Engine」コースに登録している受講者を対象としています。準備が整ったらチャレンジを開始しましょう。
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
あなたは、OnlineBoutique のオンライン ショップを運営するチームの Google Kubernetes Engine リーダー管理者です。
チームのサイトを Google Kubernetes Engine にデプロイする準備はできていますが、コストを抑えつつパフォーマンスを向上させる方法を依然として模索しています。
OnlineBoutique アプリを GKE にデプロイし、コスト最適化のために推奨されているいくつかの構成変更を行う必要があります。
デプロイ時に従う必要があるガイドラインは次のとおりです。
e2-standard-2(vCPU 2 個、8 GB メモリ)
のマシンサイズから始めます。release-channel
を使用するようにクラスタを設定します。アプリケーションをデプロイするには、
小規模なクラスタから開始し、ノードが 2 つのみのゾーンクラスタを作成します。
ショップをデプロイする前に、dev
と prod
の 2 つの環境に合わせて、クラスタ上のリソースを分離するために複数の名前空間を設定します。
その後、次のコマンドを使用して、アプリケーションを dev
名前空間にデプロイします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
クラスタのノードプールに変更を加える必要があるという結論に達しました。
custom-2-3584 をマシンタイプとして、
ノード数を「2」に設定します。
新しいノードプールの設定が完了したら、default-pool
を閉鎖してドレインし、アプリケーションの Deployment を新しいノードプールに移行します。
Deployment が正常に移行されたら、default-pool を削除します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
すべてのデプロイが完了しました。今度は、開発チームから今回のリリース前に土壇場での更新を push するように要求されていますが、問題ありません。ダウンタイムを発生させることなく実行できます。
フロントエンド Deployment に Pod Disruption Budget を設定します。
onlineboutique-frontend-pdb という名前を付けます。
Deployment の min-availabilit を「1」に設定します。
これで、チームの更新を適用できます。チームはホームページのバナーに使用されるファイルを変更し、更新された Docker イメージを提供しました。
フロントエンド Deployment を編集し、更新されたイメージに変更します。
Deployment の編集時に、ImagePullPolicy を Always に変更します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
OnlineBoutique のショップのトラフィックが急増するマーケティング キャンペーンが予定されています。通常、予測されるトラフィックの急増に対応するために、事前に追加のリソースをスピンアップします。ただし、トラフィックの急増が想定よりも大きい場合は、夜中に起こされて、負荷を処理するためにより多くのリソースをスピンアップすることになるかもしれません。
また、追加のリソースを必要以上に実行することは避けたいと考えています。コストを削減し、潜在的な心配の種を減らすために、負荷が急増し始めたときに自動的にスケールするように Kubernetes Deployment を構成できます。
トラフィックの急増に対応するため、水平 Pod 自動スケーリングをフロントエンド Deployment に適用します。
ターゲット CPU の割合を 50 としてスケーリングします。
Pod のスケーリングを最小 1 から最大
Deployment のスケーリング中にユーザーがダウンタイムを経験しないようにする必要もあります。
スケーリング中にダウンタイムが発生しないようにするには、ターゲット CPU の割合を 50% として、Deployment をスケールするように設定します。これにより、自動スケーリング中に負荷を処理するための十分なスペースが確保されます。
Deployment を最小 1 Pod から最大
しかし、トラフィックの急増が現在プロビジョニングしているコンピューティング リソースを超えた場合はどうなるでしょうか。コンピューティング ノードを追加する必要が生じる場合があります。
そこで次に、クラスタが必要に応じて追加のコンピューティング ノードを自動的にスピンアップできることを確認します。ただし、自動スケーリングで処理できるのは、スケールアップだけではありません。
先を見越して、ノードの最小数とノードの最大数の両方を構成します。こうすると、クラスタはトラフィックが多いときにノードを追加し、トラフィックが少ないときにノードの数を減らすことができます。
クラスタ オートスケーラーを、最小 1 ノードから最大 6 ノードの間でスケールするように更新します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
幸いなことに、OnlineBoutique は負荷生成ツールが組み込まれた設計になっています。現在、dev インスタンスは、同時接続ユーザーが最大 10 名のショップのトラフィックをシミュレートしています。
loadgenerator
Pod から負荷生成ツールを実行します。YOUR_FRONTEND_EXTERNAL_IP は、frontend-external サービスの IP に置き換えてください。recommendationservice
がクラッシュしているか、少なくとも需要の増加に非常に苦戦していることがわかります。
フロントエンド サービスに水平 Pod 自動スケーリングを適用すると、負荷テスト中にアプリケーションを利用できるようになりますが、他のワークロードをモニタリングすると、特定のリソースに対して一部のワークロードが大幅に push されていることがわかります。
ラボの時間がまだ残っている場合は、他のワークロードをいくつか調べて、リソースのメトリックが適切になるように自動スケーリングを適用し、ワークロードを最適化してみてください。
ノードの自動プロビジョニングを使用してリソースの使用率をさらに最適化できるか確認することもできます。
これで完了です。このラボでは、OnlineBoutique アプリを Google Kubernetes Engine にデプロイし、コスト最適化のために推奨されているいくつかの構成変更を行いました。また、トラフィックの急増に対応するために、フロントエンドとレコメンデーション サービスの Deployment に水平 Pod 自動スケーリングを適用しました。さらに、適切なリソース指標に自動スケーリングを適用して、他のサービスを最適化しました。
このセルフペース ラボは、「Optimize Costs for Google Kubernetes Engine」スキルバッジ コースの一部です。このコースを完了すると成果が認められて上のようなバッジが贈られます。獲得したバッジを履歴書やソーシャル プラットフォームに掲載し、#GoogleCloudBadge を使用して成果を公表しましょう。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 4 月 29 日
ラボの最終テスト日: 2024 年 4 月 29 日
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
One lab at a time
Confirm to end all existing labs and start this one