
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Download the monolith code and build your container
/ 10
Create a kubernetes cluster and deploy the application
/ 20
Create a containerized version of orders and product Microservices
/ 20
Deploy the new microservices
/ 20
Create a containerized version of the Frontend microservice
/ 10
Deploy the Frontend microservice
/ 20
チャレンジラボでは、シナリオと一連のタスクが提供されます。手順ガイドに沿って進める形式ではなく、コース内のラボで習得したスキルを駆使して、ご自身でタスクを完了していただきます。タスクが適切に完了したかどうかは、このページに表示される自動スコアリング システムで確認できます。
チャレンジラボは、Google Cloud の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。
100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。
このラボは、「Google Cloud でのウェブサイトの構築」コースに登録している受講者を対象としています。準備が整ったらチャレンジを開始しましょう。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
あなたは、FancyStore, Inc. で新たな仕事を任されることになりました。
新しい業務内容は、既存の一体型のモノリシックな e コマース ウェブサイトを、論理的に分離された一連のマイクロサービスに切り分けることです。既存のモノリスコードは GitHub リポジトリに格納されています。このアプリをコンテナ化してリファクタリングすることが求められています。
これらのタスクを行うためのスキルや知識があるという前提であるため、手順ガイドは提供されません。
あなたは、チームリーダーに任命されました。前任チームはモノリス関連の業務によるストレスから離職し、現在ではまったく無関係な分野にいるそうです。あなたの業務は、ソースコードを取得してそれをもとにコンテナをビルドし(前任者の 1 人が Dockerfile を残してくれました)、GKE に push することです。
まずは、ソースコードが有効であることを確認するために、モノリスをビルド、デプロイ、テストします。次に、モノリスを構成しているサービスを、個々のマイクロサービス デプロイに切り分ける必要があります。
作業時には、以下の FancyStore, Inc. の規則に従う必要があります。
通常は team-resource の形式で命名する(たとえば、インスタンスには fancystore-orderservice1 のような名前を指定する)。
費用対効果の高いサイズのリソースを割り当てる。プロジェクトはモニタリングされており、リソースが過剰に使用されているプロジェクトは強制終了されます。
特に指示がない限り、マシンタイプは e2-medium
を使用する。
席に着いてノートパソコンを開くと、これらの作業を完了するための、次のようなリクエストが届いていました。それでは始めましょう。
新しいプロジェクトにログインして、Cloud Shell を開きます。
まずは、チームの git リポジトリのクローンを作成します。プロジェクトのルート ディレクトリに setup.sh というスクリプトがあります。このスクリプトを実行して、モノリス コンテナをビルドします。
setup.sh
スクリプトを実行した後、Cloud Shell で最新バージョンの Node.js が実行されていることを確認します。
ビルドして push できるプロジェクトがいくつか表示されます。
monolith
ディレクトリに格納されているモノリスビルドを Artifact Registry に push します。~/monolith-to-microservices/monolith
フォルダに格納されている Dockerfile を使用して、アプリケーション コンテナをビルドできます。
アプリケーション コンテナをビルドするには(同じモノリス フォルダにある)Cloud Build を実行して、これを Artifact Registry に push します。
次のようにアーティファクトに名前を付けます。
ヒント:
バージョンが「1.0.0」で名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
イメージを作成して Artifact Registry に格納したので、次はデプロイ先のクラスタを作成します。
すべてのリソースを
Cluster name:
Region:
Node count: 3
ヒント:
クラスタの名前が「
イメージをビルドし、作成したクラスタが稼働していることを確認できたので、次はアプリケーションをデプロイします。
ビルドしたイメージをクラスタにデプロイするとアプリケーションが稼働しますが、一般公開するまでアクセスはできません。アプリケーションはポート 8080 で稼働しますが、よりユーザー フレンドリーなポート 80 に公開する必要があります。
次の結果が表示されます。
ヒント:
デプロイの名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Fancy Store モノリシック アプリケーションをビルドしてデプロイできるようになったので、次はこれをマイクロサービスに分割していきましょう。
既存のモノリス ウェブサイトを GKE で稼働させることができたので、各サービスのマイクロサービスへの分割を開始する準備が整いました。通常、計画の段階を設けて、小さなまとまりに分割するサービスを選定します。このとき、ビジネス ドメインなどのアプリケーションの特定の部分ごとに分割するのが一般的です。
このチャレンジの目的を達成するために、ここでは少し話を先に進めて、モノリスを注文(Orders)、プロダクト(Products)、フロントエンド(Frontend)という一連のマイクロサービスに無事に分割できたと仮定します。コードが完成したので、次はサービスをデプロイする必要があります。
個別のコンテナに分割する必要があるサービスが 3 つあります。すべてのサービスをコンテナに移動する予定のため、各サービスについて次の情報を追跡する必要があります。
コンテナ化されたバージョンのマイクロサービスを作成する
コンテナ化する必要のあるサービスは以下のとおりです。
注文マイクロサービス |
|
プロダクト マイクロサービス |
|
ヒント: バージョンが「1.0.0」で名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
「
注文マイクロサービス |
|
プロダクト マイクロサービス |
|
注: 注文とプロダクトの両方のサービスを公開したら、それぞれの IP アドレスをメモに残しておいてください。この IP アドレスは後で必要になります。
http://ORDERS_EXTERNAL_IP/api/orders
http://PRODUCTS_EXTERNAL_IP/api/products
デプロイが正常に行われた場合は、各サービスで JSON 文字列が返されていることを確認できます。
ヒント: デプロイの名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
注文とプロダクトの両方のマイクロサービスを抽出したので、次はこれらをつなげるようにフロントエンド サービスを構成して、デプロイする必要があります。
nano
エディタを使用して、ローカル URL を新しいプロダクト マイクロサービスの IP アドレスに置き換えます。エディタを開くと、ファイルは以下のようになっています。
REACT_APP_PRODUCTS_URL
を新しい形式に置き換え、その際に IP アドレスを注文およびプロダクトのマイクロサービスのものにします。つまり、下記のようになります。Ctrl+O キー、Enter キーを押して nano
エディタでファイルを保存し、Ctrl+X キーを押してエディタを閉じます。
フロントエンド アプリをコンテナ化する前に再ビルドします。
「注文」および「プロダクト」のマイクロサービスをコンテナ化してデプロイし、これらをつなげるようにフロントエンドを構成しました。最終ステップでは、フロントエンドをコンテナ化してデプロイします。
Cloud Build を使用してフロントエンド サービスのコンテンツをパッケージ化し、これを Artifact Registry に push します。
この処理には数分かかることがあります。
ヒント: バージョンが「1.0.0」で名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
「注文」と「プロダクト」のマイクロサービスに対して行った手順と同様に、このコンテナをデプロイします。
Fancy Store のホームページには、新しいマイクロサービスを利用したプロダクトと注文のページへのリンクが表示されています。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 4 月 26 日
ラボの最終テスト日: 2023 年 12 月 5 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください