読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud Skills Boost

Google Cloud コンソールでスキルを試す

Deploy and Monitor in Google Cloud for Azure Professionals

700 以上のラボとコースにアクセス

Hello Cloud Run [APPRUN](Azure)

ラボ 45分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

あなたは最近、Google Cloud を主要なクラウド サービス プロバイダ(CSP)として利用している IT 企業に、クラウド開発者として採用されました。そして、クラウドでサーバーレスのステートレス ウェブ アプリケーションを構築するよう指示されました。そのため、Google Cloud が提供する Cloud Run サービスを導入する必要があります。 懸案事項として、次のようなものがあります。

  • Cloud Run API の有効化
  • コンテナ イメージ ストレージ
  • サーバーレスのコンテナ化アプリのデプロイ
  • 費用削減のベスト プラクティス

あなたは以前の職場で Azure を利用しており、Azure App Service を使用してウェブ アプリケーションをホストしていました。Azure がインフラストラクチャの構成を管理してこれらのアプリケーションをサポートし、あなたは次の 2 つの方法のいずれかで Azure App Service にコードを実装します。

  • コード(FTP 接続を使用)
  • Docker コンテナ(コンテナ化イメージを使用)

App サービスを作成するために、カテゴリを指定して、アプリの演算能力やリソースなどの機能を定義しました。

イメージを作成し、Docker を使用してそれらを Azure Container Registry にアップロードしました。コードで使用したのと同じプロセスを適用して、これらのイメージをコンテナに実装しました。

スケールイン ルールやスケールアウト ルールなどのベスト プラクティスを適用して、アプリケーションに関連付けるコンピューティング リソースとインスタンスの数を決定し、費用の影響を最小限に抑えました。

Azure App Service でホストされるサーバーレスのコンテナ化アプリケーションは、次のようになります。

次に、Google Cloud にアプリケーションをデプロイする方法を確認します。

概要

Cloud Run は、マネージド型のコンピューティング プラットフォームで、HTTP リクエスト経由で呼び出し可能なステートレス コンテナを実行できます。Cloud Run はサーバーレスです。インフラストラクチャ管理が一切不要なため、最も重要な作業であるアプリケーションの構築に集中できます。

Cloud RunKnative で構築されており、フルマネージド型の Cloud Run でコンテナを実行するか、Cloud Run on GKE の Google Kubernetes Engine クラスタでコンテナを実行するかを選択できます。

このラボの目標は、シンプルなコンテナ化アプリケーション イメージをビルドし、Cloud Run にデプロイすることです。

目標

このラボでは、次のタスクの実行方法を学びます。

  • Cloud Run API を有効にする。
  • サーバーレス、ステートレス コンテナとしてデプロイできるシンプルな Node.js アプリケーションを作成する。
  • アプリケーションをコンテナ化し、Container Registry(現在は Artifact Registry と呼ばれています)にアップロードする。
  • コンテナ化したアプリケーションを Cloud Run にデプロイする。
  • 不要なイメージを削除し、追加のストレージ料金が発生しないようにする。

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

ラボを開始してコンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側のパネルには、このラボで使用する必要がある一時的な認証情報が表示されます。

  2. ユーザー名をコピーし、[Google Console を開く] をクリックします。 ラボでリソースが起動し、別のタブで [アカウントの選択] ページが表示されます。

    注: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
  3. [アカウントの選択] ページで [別のアカウントを使用] をクリックします。[ログイン] ページが開きます。

  4. [接続の詳細] パネルでコピーしたユーザー名を貼り付けます。パスワードもコピーして貼り付けます。

注: 認証情報は [接続の詳細] パネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。請求が発生する事態を避けるため、Google Cloud アカウントをお持ちの場合でも、このラボでは使用しないでください。
  1. その後次のように進みます。
  • 利用規約に同意してください。
  • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
  • 無料トライアルには登録しないでください。

しばらくすると、このタブで Cloud コンソールが開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。

Google Cloud Shell の有効化

Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。

Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

  2. [続行] をクリックします。

環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  • 次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list

出力:

Credentialed accounts: - @.com (active)

出力例:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project =

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: gcloud ドキュメントの全文については、 gcloud CLI の概要ガイド をご覧ください。

リファレンス

基本的な Linux コマンド

以下に、このラボの手順またはコードブロックに含まれている可能性のある、ごく基本的な Linux コマンドの参照リストを示します。

コマンド --> アクション . コマンド --> アクション
mkdirmake directory 新しいフォルダを作成します . cdchange directory 場所を別のフォルダに変更します
lslist ディレクトリ内のファイルとフォルダを一覧表示します . catconcatenate エディタを使用せずにファイルの内容を出力します
apt-get update パッケージ マネージャー ライブラリを更新します . ping ホストのネットワーク到達性をテストするためのシグナルを送信します
mvmove ファイルを移動します . cpcopy ファイルのコピーを作成します
pwdpresent working directory 現在の場所を再表示します . sudosuper user do 高度な管理者権限を与えます

タスク 1. Cloud Run API を有効にして、シェル環境を構成する

  1. Cloud Shell で、Cloud Run API を有効にします。
gcloud services enable run.googleapis.com
  1. 認証情報を使用する許可を求められた場合は、許可してください。成功すると次のようなメッセージが表示されます。
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully. 注: コンソールの [API とサービス] セクションでこの API を有効にすることもできます。
  1. コンピューティング リージョンを設定します。
gcloud config set compute/region {{{ project_0.default_region| "Region" }}}
  1. LOCATION 環境変数を作成します。
LOCATION="{{{ project_0.default_region| "Region" }}}"

タスク 2. サンプル アプリケーションを作成する

このタスクでは、HTTP リクエストに応答する Express ベースのシンプルな Node.js アプリケーションをビルドします。

  1. Cloud Shell で、helloworld という名前の新しいディレクトリを作成し、そのディレクトリにビューを移動します。
mkdir helloworld && cd helloworld
  1. 次に、いくつかのファイルを作成して編集します。ファイルの編集には、viemacnano を使用します。または、Cloud Shell で [エディタを開く] ボタンをクリックして、コードエディタを使用します。

  2. package.json ファイルを作成し、次の内容を追加します。

nano package.json { "name": "helloworld", "description": "Simple hello world sample in Node", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Google LLC", "license": "Apache-2.0", "dependencies": { "express": "^4.17.1" } }

上のファイルで最も重要な点は、スクリプトを開始するコマンドと、Express ウェブ アプリケーション フレームワークへの依存関係が含まれていることです。

  1. CTRL+X キー、Y キーの順に押し、package.json ファイルを保存します。

  2. 次に、同じディレクトリに index.js ファイルを作成し、次の行をコピーします。

nano index.js const express = require('express'); const app = express(); const port = process.env.PORT || 8080; app.get('/', (req, res) => { const name = process.env.NAME || 'World'; res.send(`Hello ${name}!`); }); app.listen(port, () => { console.log(`helloworld: listening on port ${port}`); });

このコードは、PORT 環境変数で定義されたポートをリッスンする基本的なウェブサーバーを作成します。これでアプリは完成しました。このアプリをコンテナ化し、Container Registry にアップロードします。

  1. CTRL+X キー、Y キーの順に押し、index.js ファイルを保存します。
注: Cloud Run を使い始める際に使用できる言語は、他にも多数あります。Go、Python、Java、PHP、Ruby、シェル スクリプトなどの手順については、クイックスタート ガイドをご覧ください。

タスク 3. アプリをコンテナ化して Artifact Registry にアップロードする

  1. サンプルアプリをコンテナ化するには、ソースファイルと同じディレクトリに Dockerfile という名前の新しいファイルを作成し、次の内容を追加します。
nano Dockerfile # Node.js 12 の公式の軽量イメージを使用します。 # https://hub.docker.com/_/node FROM node:12-slim # app ディレクトリを作成してそのディレクトリに移動します。 WORKDIR /usr/src/app # アプリケーション依存関係マニフェストをコンテナ イメージにコピーします。 # package.json と package-lock.json の両方(利用可能な場合)がコピーされるようにワイルドカードを使用します。 # これを最初にコピーしておくと、コードを変更するたびに npm install を再実行する必要がなくなります。 COPY package*.json ./ # 本番環境の依存関係をインストールします。 # package-lock.json を追加した場合、「npm ci」に切り替えることでビルドを高速化します。 # RUN npm ci --only=production RUN npm install --only=production # ローカルコードをコンテナ イメージにコピーします。 COPY . ./ # コンテナの起動時にウェブサービスを実行します。 CMD [ "npm", "start" ]
  1. CTRL+X キー、Y キーの順に押し、Dockerfile ファイルを保存します。

  2. 次に、Dockerfile を含むディレクトリから次のコマンドを実行し、Cloud Build を使用してコンテナ イメージをビルドします(注: このコマンドの $GOOGLE_CLOUD_PROJECT 環境変数には、ラボのプロジェクト ID が含まれています)。

gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld

Cloud Build は GCP 上でビルドを行うサービスで、一連のビルドステップを実行します。各ビルドステップが Docker コンテナで実行されてアプリケーション コンテナ(またはその他のアーティファクト)が生成され、Cloud Registry に push されます。そのすべてを 1 つのコマンドで実行できます。

Cloud Registry への push が完了すると、イメージ名(gcr.io/[PROJECT-ID]/helloworld)を含む SUCCESS メッセージが表示されて、イメージが Artifact Registry に保存されます。このイメージは必要に応じて再利用できます。

  1. 現在のプロジェクトに関連付けられているすべてのコンテナ イメージを一覧表示するには、次のコマンドを使用します。
gcloud container images list
  1. Cloud Shell からローカルでアプリケーションを実行してテストするには、次のように、標準の docker コマンドを使用してアプリケーションを開始します。
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Cloud Shell ウィンドウで、ウェブでプレビューアイコンをクリックし、[ポート 8080 でプレビュー] を選択します。

ブラウザ ウィンドウが開いて「Hello World!」というメッセージが表示されるはずです。または、curl localhost:8080 を使用することもできます。

注: docker コマンドでリモート コンテナ イメージを pull できない場合は、gcloud auth configure-docker を実行してみてください。

タスク 4. Cloud Run にデプロイする

  1. コンテナ化されたアプリケーションを Cloud Run にデプロイするには次のコマンドを使用します。実際のプロジェクト ID を追加してください。
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION

上記のコマンドの allow-unauthenticated フラグを使用すると、サービスが公開されアクセス可能になります。

  1. プロンプトが表示されたら、Enter キーを押して service name を確認します。

デプロイが完了するまで少しお待ちください。

成功すると、コマンドラインにサービス URL が表示されます。

Service [helloworld] revision [helloworld-00001-xit] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-h6cp412q3a-uc.a.run.app

ブラウザ ウィンドウでこのサービス URL を開くと、デプロイしたコンテナにアクセスできます。

これで完了です。コンテナ イメージにパッケージ化されたアプリケーションが Cloud Run にデプロイされました。Cloud Run は、受信したリクエストを処理するためにコンテナ イメージを自動的に水平方向にスケーリングします。リクエスト数が減少すると、スケールダウンします。実際の環境で使用した場合、料金は、リクエストの処理中に使用した CPU、メモリ、ネットワークに対してのみ発生します。

このラボでは gcloud コマンドラインを使用しましたが、Cloud Run は Cloud コンソールでも使用できます。

  • ナビゲーション メニューの [サーバーレス] セクションで [Cloud Run] をクリックすると、サービスのリストに helloworld サービスが表示されるはずです。

タスク 5. クリーンアップ

サービスが使用されていない場合、Cloud Run の料金は発生しませんが、ビルドしたコンテナ イメージが保存されていると課金される場合があります。

  1. 課金されないようにするには、GCP プロジェクトを削除してプロジェクト内のすべてのリソースへの課金を停止するか、次のコマンドを使用して helloworld イメージを削除します。
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. 続行するかどうかを確認するプロンプトが表示されたら、「Y」と入力して Enter キーを押します。

  2. この Cloud Run サービスを削除するには次のコマンドを使用します。

gcloud run services delete helloworld --region={{{ project_0.default_region| "Region" }}}
  1. 続行するかどうかを確認するプロンプトが表示されたら、「Y」と入力して Enter キーを押します。

お疲れさまでした

このラボはこれで完了です。

Google Cloud Run と Azure App Service はどちらもサーバーレス コンピューティング サービスであり、デベロッパーは費用対効果に優れたスケーラブルな方法でコンテナ化アプリケーションを実行できます。しかし、この 2 つのサービスの間にはいくつかの相違点があります。

2 つのサービスの主な類似点と相違点は次のとおりです。

類似点:

  • Google Cloud Run と Azure App Service はどちらもフルマネージドのコンピューティング サービスです。つまり、ほとんどのインフラストラクチャはクラウド プロバイダが管理します。
  • どちらのサービスもコンテナ化を使用してアプリケーションをパッケージ化します。
  • どちらのサービスもデプロイ形式として Docker コンテナをサポートしています。
  • どちらのサービスも Python、.NET、Java、Ruby、Node.js、PHP をサポートしています。
  • どちらのサービスも、需要に応じて自動的にスケールアップまたはスケールダウンできます。
  • どちらのサービスでも、対応するコマンドライン インターフェース(CLI)で「build」コマンドを実装します。

相違点:

  • Cloud Run の有効化は Azure とは異なり、Azure では、コードを作成してアップロードできるようにするには、App Service のインスタンスを作成する必要があります。
  • Cloud Run でコンテナ化イメージをアップロードするには、1 つのコマンドライン命令ですべてのステップを実行できます。Azure では、まず Azure Container Registry を作成してからイメージをアップロードする必要があります。
  • 自動化のデプロイ方法はそれぞれのサービスで異なります。Cloud Run では、自動化はデフォルトで有効になっています。Azure では、自動化を手作業で有効にするか、それを自動的に行うようにスケーリング ルールを確立する必要があります。
  • どちらのサービスもほとんどの一般的なプログラミング言語に対応していますが、Google Cloud Run は GO などの特定の言語もサポートしています。Azure App Service でも同様にサポートしていますが、アプリケーションは .NET Core で実行されます。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

前へ 次へ

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
プレビュー