Querier

Google Cloud PlatformのCloud Runについて完全解説 | 特徴・料金・環境変数の設定・IP制限・Terraformでの管理など

2023.07.06に公開 | 2023.07.07に更新

Querier運営

@querier_io@querierinc

「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。

管理画面の構築もWeb上で完結
エンジニアのためのローコードツール

Querierについて詳しく見る

みなさんこんにちは。
今回は、Google Cloud Platformのサービスの1つであるCloud Runについて解説していきます。この記事ではCloudRunの特徴、料金体系、Terraformでの管理方法などを深掘りしていきます。

Cloud Runの特徴やメリット・デメリット

Cloud RunはGoogleが提供するフルマネージド型のサーバレスプラットフォームです。Dockerコンテナを使用してアプリケーションをパッケージ化し、そのコンテナをCloud Runにデプロイすることで、自動的にスケールアウト・インを行うHTTPサーバとして実行できます。

メリット

  1. フルマネージド: サーバの管理、設定、更新などを手動で行う必要がありません。これにより開発者はコードの開発に集中することができます。
  2. 自動スケーリング: トラフィックが増えた時に自動的にスケールアウトし、トラフィックが減った時にはスケールインします。これによりリソースの利用効率が高まります。
  3. リクエスト単位の課金: 使用したリソースの量だけ課金され、未使用時間は課金されません。コスト効率が高いです。

デメリット

  1. 長期間のバックグラウンド処理には向かない: CloudRunはHTTPリクエストに応答する形式で動作するため、長時間実行が必要なバッチ処理などには向いていません。
  2. 制限されたリソース: 各コンテナの利用可能なCPUとメモリは制限されています。大規模な計算タスクには不向きかもしれません。

どのような人におすすめか

CloudRunは以下のようなシチュエーションの開発者におすすめです。

  • 管理負荷を減らし、開発に集中したい人
  • トラフィックの変動が大きく、自動スケーリングを必要とする人
  • HTTPベースの軽量なマイクロサービスを運用したい人

逆に、以下のようなケースでは他のGCPの製品(GCE, GKEなど)の検討もおすすめします。

  • 長時間にわたるバックグラウンド処理が必要な場合
  • 大規模な計算リソースを必要とするアプリケーションを運用する場合

Cloud Runの料金、無料枠はある?

Cloud Runの料金は主に次の2つの要素に基づいて計算されます。

  1. リクエスト数: これはHTTPリクエストの数に基づきます。リクエストが増えれば増えるほど料金が増加します。
  2. リソース使用量: これはコンテナが消費したCPU時間、メモリ使用量、およびネットワーク使用量に基づきます。これらのリソース使用量が増えれば増えるほど料金が増加します。

また、Cloud Runは一定の範囲内の利用について無料枠を提供しています。

  • 最初の200万のリクエストは無料
  • 毎月CPU使用量は180,000 vCPU-secondsが無料
  • 毎月メモリ使用量は360,000 GiB-secondsが無料
  • 毎月出力ネットワークは1GBが無料

ただし、これらの無料枠はCloud Runの全サービスに対して共通の使用量としてカウントされます。また、無料枠の使用が終わった後の利用は課金対象となります。

具体的な料金はリージョンや使用リソースによって異なりますので、詳細な料金情報や無料枠については、Google Cloudの公式ドキュメントをご確認ください。

Cloud RunとCloud Run for Anthosとの違い

Cloud RunとCloud Run for AnthosはどちらもGCPのサーバレスコンテナ実行サービスですが、主な違いは運用環境と拡張性です。

Cloud Runはフルマネージドのサービスで、ユーザーはバックエンドのインフラストラクチャについて考える必要がありません。

一方、Cloud Run for Anthosは、Anthos上での運用を前提としています。これにより、マルチクラウドやオンプレミス環境での運用が可能となります。

Cloud RunをTerraformで管理する方法

TerraformはInfrastructure as Code (IaC)ツールであり、様々なクラウドリソースをコードベースで管理することが可能です。

以下にCloud Runのサービスを作成・管理するためのTerraformの基本的なサンプルコードを示します。

provider "google" {
  project = "your-gcp-project-id"
  region  = "us-central1"
}

resource "google_cloud_run_service" "default" {
  name     = "sample-cloudrun"
  location = "us-central1"

  template {
    spec {
      containers {
        image = "gcr.io/cloudrun/hello"
      }
    }
  }

  traffic {
    percent         = 100
    latest_revision = true
  }
}


上記のサンプルでは、google_cloud_run_serviceリソースを使用してCloud Runサービスを作成しています。

namelocationはそれぞれサービスの名前とデプロイするリージョンを指定します。

templateブロック内でコンテナのイメージを指定します。この例では、Googleが提供するサンプルイメージ gcr.io/cloudrun/helloを使用しています。

最後のtrafficブロックでは、新しくデプロイされたリビジョンにすべてのトラフィック(100%)がルーティングされるように設定しています。

このサンプルコードを実行することで、Cloud Runサービスが作成されます。また、Terraformを使用することで、Cloud Runの設定変更や削除もコードベースで行うことが可能です。

詳細な設定方法はTerraformの公式ドキュメントをご確認ください。

Cloud Runに環境変数を設定する方法

以下の手順でCloud Runに環境変数を設定することが可能です。

  1. GCPコンソールからCloud Runのダッシュボードを開きます。
  2. 環境変数を設定したいサービスを選択します。
  3. 「編集」をクリックして、環境変数のセクションに移動します。
  4. キーと値のペアで環境変数を設定します。
  5. 「デプロイ」をクリックして、設定を保存します。

詳細な設定方法はGCPの公式ドキュメントをご確認ください。

Cloud RunでIP制限はできる?

Cloud RunにおけるIP制限はGoogle Cloud Armorを利用して設定することが可能です。以下にその詳細な手順を示します。

  1. Google Cloud Consoleにログインし、左上のナビゲーションメニューから「Network Services > Cloud Armor」を選択します。
  2. 「Create Policy」ボタンをクリックします。
  3. 新しいセキュリティポリシーの名前を入力し、「Create」ボタンをクリックします。
  4. 作成したセキュリティポリシーを選択し、「Add rule」をクリックします。
  5. ルール名を入力し、アクションに「Allow」または「Deny」を選択します。次に、IPアドレスの範囲を入力します(例: 192.0.2.0/24)。このIP範囲は、許可または拒否するクライアントのIP範囲です。
  6. 「Create」をクリックしてルールを作成します。
  7. Cloud Armorのセキュリティポリシーが作成されたら、左上のナビゲーションメニューから「Compute > Cloud Run」を選択します。
  8. IP制限を適用したいCloud Runサービスを選択し、「Edit & deploy new revision」をクリックします。
  9. 「Show optional settings」をクリックし、「Security」セクションで作成したCloud Armorのセキュリティポリシーを選択します。
  10. 「Deploy」をクリックして設定を保存します。


これにより、指定したIP範囲からのアクセスのみを許可するか、またはそのIP範囲からのアクセスを拒否する設定がCloud Runに反映されます。

詳細な設定方法はGCPの公式ドキュメントをご確認ください。

さいごに

本記事では、Googleが提供するCloud Runについて詳しく解説しました。その特徴、メリット、デメリット、料金体系、Terraformを使った管理方法、そしてCloud Runでの環境変数の設定とIP制限の方法について詳しく説明しました。

Cloud Runはその自動スケーリングやリクエスト単位の課金など、特にWebアプリケーションやマイクロサービスの開発者にとって有用な特徴を多数持っています。一方で、長期のバックグラウンド処理や大規模な計算タスクには向かないという点も理解しておくべきです。

最適なツール選択はプロジェクトの要件によります。本記事が皆様のCloud Runを理解し、適切に活用する一助となれば幸いです。

「Querier(クエリア)」は社内向け管理画面を圧倒的な速さで、かつビジネスのスケールに合わせて柔軟に構築することができるローコードツールです。

最新の記事

2〜3ヶ月と見積もっていた開発期間を、クエリアを導入することでわずか1週間に短縮できました

2012年5月創業のフルカイテン株式会社。 「在庫をフル回転させる」をコンセプトに、機械学習を駆使したSaaS『FULL KAITEN』を提供し、在庫問題の解決に取り組む。

more

管理画面の構築もWeb上で完結
エンジニアのためのローコードツール

Querierについて詳しく見る