チェックポイント
Create a Kubernetes Engine cluster
/ 50
Deploy the sample
/ 50
Awwvision: Kubernetes クラスタから Cloud Vision API を使用する
GSP066
概要
この Awwvision ラボでは、Kubernetes と Cloud Vision API を使用して、Reddit の /r/aww サブレディットの画像を Vision API で分類(ラベル付け)して結果をウェブアプリで表示する方法について学びます。
Awwvision には次の 3 つのコンポーネントがあります。
- シンプルな Redis インスタンス。
- ラベルとそれに関連付けられた画像を表示するウェブアプリ。
- Reddit の画像を抽出して Vision API で分類するワーカー。複数のワーカー インスタンス間のタスクの調整には Cloud Pub/Sub を使用します。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
タスク 1. Kubernetes Engine クラスタを作成する
このラボでは、Google Cloud のコマンドライン ツールである gcloud を使用して、Kubernetes Engine クラスタを設定します。ノードはいくつでも指定できますが、少なくとも 1 つ必要です。Pub/Sub と Vision API にアクセスを許可するために cloud-platform スコープを使用します。
- Cloud Shell で次のコマンドを実行して、
ゾーンにクラスタを作成します。
- その後、次のコマンドを実行してクラスタを起動します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。Kubernetes クラスタが正常に作成されている場合は、評価スコアが表示されます。
- 次のコマンドを実行して、作成したコンテナの認証情報を使用するよう指定します。
-
kubectl
コマンドライン ツールを使用して、問題が生じていないことを確認します。
タスク 2. 仮想環境を作成する
Python 仮想環境を使用して、パッケージのインストール先をシステムとは別の場所にします。
-
virtualenv
環境をインストールします。
- 仮想環境をビルドします。
- 仮想環境をアクティブにします。
タスク 3. サンプルを追加する
- 次のコマンドを実行して、プロジェクトにサンプルデータを追加します。
タスク 4. サンプルをデプロイする
- Cloud Shell で、複製した cloud-vision リポジトリの
python/awwvision
ディレクトリに移動します。
-
awwvision
ディレクトリでmake all
を実行し、すべての内容のビルドとデプロイを行います。
このプロセスの一環として、Docker イメージがビルドされ、Google Container Registry のプライベート コンテナ レジストリにアップロードされます。
また、テンプレートから yaml
ファイルが生成され、対象のプロジェクトに固有の情報が指定されます。そしてこのラボで使用する Kubernetes リソース(redis
、webapp
、worker
)が、生成されたファイルを使ってデプロイされます。
タスク 5. クラスタ上の Kubernetes リソースを確認する
デプロイが完了したら、Kubernetes リソースが稼働していることを確認します。
- まず、次のコマンドを実行して Pod を一覧表示します。
次のような結果が表示されます(Pod 名は異なります)。すべての Pod のステータスが「Running」になるまで、次のコマンドを実行しないようにしてください。
- 次に、次のコマンドを実行して Deployment を一覧表示します。
各 Deployment に指定されているレプリカの数と、使用されているイメージが表示されます。
- デプロイが完了したら、次のコマンドを実行し、webapp サービスの外部 IP アドレスを取得します。
割り当てられた外部 IP が出力に表示されるまでに数分かかることがあります。次のような結果が表示されます(IP の値は異なります)。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。サンプルアプリが正常にデプロイされている場合は、評価スコアが表示されます。
タスク 6. 新しいウェブアプリにアクセスしてクローラを開始する
-
awwvision-webapp
サービスの外部 IP をコピーして新しいブラウザタブに貼り付けると、対象のウェブアプリが表示されます。表示されたら [Start the Crawler] をクリックします。 -
続いて [GO BACK] をクリックすると、/r/aww サブレディットの画像が表示されます。これらの画像は、Vision API のラベルで分類されています。重複して分類されている画像もありますが、それは複数のラベルが検出されたことを示しています。なお、ページを表示したときにクローラがまだ終了していなかった可能性もあるため、少し時間をおいてページを再読み込みしてみましょう。
結果は次のようになります。
タスク 7. 理解度チェック
以下の問題に取り組み、今回のラボで学習した内容の理解を深めましょう。正解を目指して頑張ってください。
お疲れさまでした
Kubernetes と Cloud Vision API を使用して、Reddit の /r/aww サブレディットから取得した画像を分類し、結果をウェブ アプリケーションで表示しました。
クエストを完了する
このセルフペース ラボは、「Integrate with Machine Learning APIs」と「Advanced ML: ML Infrastructure」のクエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、このラボが含まれるクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能な全クエストについては、Google Cloud Skills Boost カタログをご覧ください。
次のラボを受講する
ML API に関する別のラボ(「Kubernetes を使用した負荷分散のテスト」など)をお試しください。
次のステップと詳細情報
詳しくは、Coursera の ML コースにご登録ください。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2023 年 10 月 6 日
ラボの最終テスト日: 2023 年 10 月 9 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。