Cloud Run にシェルサービスをデプロイする
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Cloud Run サービスのデフォルト プロジェクトを設定するには:
gcloud config set project PROJECT_ID
PROJECT_ID は、このクイックスタートで作成したプロジェクトの名前に置き換えます。 ドメイン制限の組織のポリシーでプロジェクトの未認証呼び出しが制限されている場合は、プライベート サービスのテストの説明に従って、デプロイされたサービスにアクセスする必要があります。
サンプル アプリケーションを作成する
Shell アプリケーションを作成するには:
helloworld-shell
という名前の新しいディレクトリを作成し、そのディレクトリに移動します。mkdir helloworld-shell cd helloworld-shell
go.mod
ファイルを初期化して go モジュールを宣言します。前述の形式で
go.mod
ファイルを直接作成するか、次のようにプロジェクト ディレクトリから初期化できます。go mod init
script.sh
ファイルを作成し、次の内容を追加します。このシェル スクリプトをすべての受信リクエストに実行するために、このサンプルでは小規模な Go プログラムを使用して基本ウェブサーバーを起動し、
PORT
環境変数で定義されたポートをリッスンします。invoke.go
ファイルを作成し、次の内容を追加します。ソースファイルと同じディレクトリに
Dockerfile
という名前の新しいファイルを作成します。
これでアプリが完成し、デプロイできるようになりました。
ソースから Cloud Run にデプロイする
重要: 以下の説明では、このクイックスタートで使用するプロジェクトのオーナーロールまたは編集者ロールが付与されていることを前提としています。このロールが付与されていない場合は、Cloud Run のデプロイ権限、Cloud Build の権限、Artifact Registry の権限で必要な権限を確認してください。
ソースからのデプロイでは、ソースコードからコンテナ イメージが自動的にビルドされて、デプロイされます。
ソースからデプロイするには:
ソースコード ディレクトリで、次のコマンドを使用してソースからデプロイします。
gcloud run deploy
API を有効にするように求められたら、「y」と入力して有効にします。
ソースコードの場所を求められたら、Enter キーを押して現在のフォルダにデプロイします。
サービス名の入力を求められたら、Enter キーを押して、デフォルトの名前(
helloworld
など)を受け入れます。Artifact Registry API を有効にするか、Artifact Registry リポジトリの作成を許可するように求められたら、
y
キーを押して応答します。リージョンの入力を求められたら、任意のリージョン(
us-central1
など)を選択します。未認証の呼び出しを許可するように求められます。「
y
」と入力します。
デプロイが完了するまで少しお待ちください。正常に完了すると、コマンドラインにサービス URL が表示されます。
このサービス URL をウェブブラウザで開き、デプロイしたコンテナにアクセスします。
Cloud Run のロケーション
Cloud Run はリージョナルです。つまり、Cloud Run サービスを実行するインフラストラクチャは特定のリージョンに配置され、そのリージョン内のすべてのゾーンで冗長的に利用できるように Google によって管理されます。
レイテンシ、可用性、耐久性の要件を満たしていることが、Cloud Run サービスを実行するリージョンを選択する際の主な判断材料になります。一般的には、ユーザーに最も近いリージョンを選択できますが、Cloud Run サービスで使用されている他の Google Cloud サービスのロケーションも考慮する必要があります。使用する Google Cloud サービスが複数のロケーションにまたがっていると、サービスの料金だけでなくレイテンシにも影響することがあります。
Cloud Run は、次のリージョンで利用できます。
ティア 1 料金を適用
asia-east1
(台湾)asia-northeast1
(東京)asia-northeast2
(大阪)europe-north1
(フィンランド) 低 CO2europe-southwest1
(マドリッド)europe-west1
(ベルギー) 低 CO2europe-west4
(オランダ)europe-west8
(ミラノ)europe-west9
(パリ) 低 CO2me-west1
(テルアビブ)us-central1
(アイオワ) 低 CO2us-east1
(サウスカロライナ)us-east4
(北バージニア)us-east5
(コロンバス)us-south1
(ダラス)us-west1
(オレゴン) 低 CO2
ティア 2 料金を適用
asia-east2
(香港)asia-northeast3
(ソウル、韓国)asia-southeast1
(シンガポール)asia-southeast2
(ジャカルタ)asia-south1
(ムンバイ、インド)asia-south2
(デリー、インド)australia-southeast1
(シドニー)australia-southeast2
(メルボルン)europe-central2
(ワルシャワ、ポーランド)europe-west10
(ベルリン)europe-west12
(トリノ)europe-west2
(ロンドン、イギリス) 低 CO2europe-west3
(フランクフルト、ドイツ) 低 CO2europe-west6
(チューリッヒ、スイス) 低 CO2me-central1
(ドーハ)me-central2
(ダンマーム)northamerica-northeast1
(モントリオール) 低 CO2northamerica-northeast2
(トロント) 低 CO2southamerica-east1
(サンパウロ、ブラジル) 低 CO2southamerica-west1
(サンティアゴ、チリ) 低 CO2us-west2
(ロサンゼルス)us-west3
(ソルトレイクシティ)us-west4
(ラスベガス)
Cloud Run サービスをすでに作成している場合は、Google Cloud コンソールの Cloud Run ダッシュボードにリージョンが表示されます。
これで完了です。ソースコードから Cloud Run にコンテナ イメージをデプロイしました。Cloud Run は、受信したリクエストを処理するためにコンテナ イメージを自動的に水平方向にスケールアウトし、リクエスト数が減少するとスケールインします。料金は、リクエストの処理中に使用した CPU、メモリ、ネットワークに対してのみ発生します。
クリーンアップ
テスト プロジェクトを削除する
サービスが使用されていない場合、Cloud Run の料金は発生しませんが、コンテナ イメージを Artifact Registry に保存すると課金される場合があります。コンテナ イメージを削除するか、Google Cloud プロジェクトを削除してこのような料金が発生しないようにできます。Google Cloud プロジェクトを削除すると、そのプロジェクト内で使用されているすべてのリソースに対する課金が停止します。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
次のステップ
コードソースからコンテナをビルドし、リポジトリに push する方法については、以下をご覧ください。