
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
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% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。
このラボは、「Build a Website on 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 で最新バージョンの NodeJS が実行されていることを確認します。
構築して push できるプロジェクトがいくつか表示されます。
(monolith
ディレクトリに格納されている)モノリスビルドを Google Container Registry(GCR)に push します。~/monolith-to-microservices/monolith
フォルダに格納されている Dockerfile を使用して、アプリケーション コンテナを構築できます。
アプリケーション コンテナを構築するには(同じモノリス フォルダにある)Cloud Build を実行して、これを GCR に push します。
次のようにアーティファクトに名前を付けます。
ヒント:
バージョンが「1.0.0」で名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
画像を作成して Container Registry に格納したので、次はクラスタを作成してデプロイします。
すべてのリソースを
Cluster name:
Region:
Node count: 3
ヒント:
クラスタの名前が「
イメージを作成し、作成したクラスタが稼働していることを確認できたので、次はアプリケーションをデプロイします。
作成したイメージをクラスタにデプロイする必要があります。これによってアプリケーションが稼働しますが、一般公開するまでこのアプリケーションにはアクセスできません。アプリケーションはポート 8080 で稼働していますが、よりユーザー フレンドリーなポート 80 に公開する必要があります。
次の結果が表示されます。
ヒント:
デプロイの名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Fancy Store モノリシック アプリケーションを構築してデプロイできるようになったので、次はこれをマイクロサービスに分割していきましょう。
既存のモノリス ウェブサイトを GKE で稼働させることができたので、各サービスのマイクロサービスへの分割を開始する準備が整いました。通常、プランニング業務では小さなまとまりに分割するサービスの選定を行います。ビジネス ドメインなどのアプリケーションの特定の部分が対象となります。
このチャレンジの目的を達成するために、ここでは少し話を先に進めて、モノリスを「注文」、「プロダクト」、「フロントエンド」という一連のマイクロサービスに無事に分割できたと仮定します。コードが完成したので、次はサービスをデプロイする必要があります。
独自のコンテナに分割する必要があるサービスが 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 を使用してフロントエンド サービスのコンテンツをパッケージ化し、これを Google Container Registry に push します。
この処理には数分かかることがありますので、少々お待ちください。
ヒント: バージョンが「1.0.0」で名前が「
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
「注文」と「プロダクト」のマイクロサービスに対して行った手順と同様に、このコンテナをデプロイします。
Fancy Store のホームページには、新しいマイクロサービスを利用したプロダクトと注文のページへのリンクが表示されています。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセルフペース ラボは、「Build a Website on Google Cloud」スキルバッジ クエストの一部です。完了すると成果が認められて上のようなバッジが贈られます。獲得したバッジを履歴書やソーシャル プラットフォームに記載し、#GoogleCloudBadge を使用して成果を公表しましょう。
このスキルバッジは、Google Cloud の「インフラストラクチャのモダナイゼーション」ポートフォリオの一部です。20 件を超える他のスキルバッジ クエストをカタログで検索して登録し、学習を続けてください。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2023 年 12 月 5 日
ラボの最終テスト日: 2023 年 12 月 5 日
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