ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

Hello Cloud Run [APPRUN](AWS)

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

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

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

あなたは以前の職場で AWS を利用していたため、AWS Fargate がコンテナ化環境をサーバーレスでプロビジョニングできることを理解しています。コンテナの起動、スケーリング、モニタリングなどのタスクは AWS Fargate によって処理されるので、開発者はアプリケーション コードの作業に集中して、コンテナ化されたアプリケーションのデプロイ、管理、スケールを簡単に行うことができます。また、AWS Fargate では、コンテナを Amazon Elastic Container Service(Amazon ECS)と Amazon Elastic Kubernetes Service(Amazon EKS)のどちらにでもデプロイできます。つまり、開発者はニーズに合ったオーケストレーション オプションを選択できます。

次の図は、AWS Fargate に基づくサーバーレスのコンテナ化アプリケーションを表しています。

AWS の図

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

概要

Cloud Run のロゴ

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 Skills の認証情報は使用しないでください。請求が発生する事態を避けるため、Google Cloud アカウントをお持ちの場合でも、このラボでは使用しないでください。
  1. その後次のように進みます。
  • 利用規約に同意します。
  • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
  • 無料トライアルには登録しないでください。

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

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

Google Cloud Shell の有効化

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

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

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

    ハイライト表示された Cloud Shell アイコン

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

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

Cloud Shell ターミナルでハイライト表示されたプロジェクト 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 サービスが表示されるはずです。

helloworld サービスが表示された [Cloud Run] タブ

タスク 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 と AWS Fargate はどちらも、開発者がコンテナ化されたアプリケーションをスケーラブルで費用対効果の高い方法で実行できるようにするサーバーレス コンピューティング サービスです。しかし、この 2 つのサービスにはいくつかの相違点があります。

主な類似点と相違点は次のとおりです。

類似点:

  • Google Cloud Run と AWS Fargate はどちらもサーバーレス コンピューティング サービスです。つまり、開発者は基盤となるインフラストラクチャについて心配することなく、コードの記述に集中できます。
  • どちらのサービスもコンテナ化によってアプリケーションをパッケージ化してデプロイします。
  • どちらのサービスもデプロイ形式として Docker コンテナをサポートしています。
  • どちらのサービスも、需要に応じて自動的にスケールアップまたはスケールダウンできます。

相違点:

  • AWS Fargate では、ユーザーが Kubernetes などによるコンテナ オーケストレーションを構成、管理する必要がありますが、Google Cloud Run では、コンテナ オーケストレーションがプラットフォームによって管理されます。
  • Google Cloud Run がスタンドアロンのサービスであるのに対し、AWS Fargate はコンテナ サービスの Amazon ECS または Amazon EKS に対するプロビジョニング サービスです。
  • AWS でサーバーレスのコンテナ化環境をデプロイするためには、Amazon ECS や Amazon EKS などのオーケストレーション サービスと AWS Fargate を組み合わせた統合が必要になります。一方、Google Cloud では、Cloud Run のみを使用するだけで済みます。

ラボを終了する

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

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

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

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

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

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

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

始める前に

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

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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