STERFIELD

2023/06/24

Google Cloud サービス間の連携:Cloud Run と Cloud Scheduler

Google Cloud サービス間の連携:Cloud Run と Cloud Scheduler

はじめに

この記事は、クラウド上でアのプリケーションに興味の人や Google Cloud のサービスを使用して自動化されたタスクのスケジューリングと実行を行いたいと考えている人のために、Google Cloud のサービスである Cloud Run と Cloud Scheduler の連携方法と Google Cloud サービス間の認証について解説します。

1. Cloud Run と Cloud Scheduler の概要

Cloud Run

Cloud Run は、開発者のウェブアプリケーションやサービスを手軽にオンラインに持っていくための Google Cloud のサービスです。

  • 手間がかからない: 開発者はアプリケーションに集中でき、面倒なインフラストラクチャの管理は Google に任せられます。これにより、時間を省け、本当に重要な開発作業に集中できます。
  • 低コスト: Cloud Run は、サービスにトラフィックがあるときだけ課金されます。つまり、アプリケーションが使われていないときはお金をかけずに済むので、コストを抑えられます。
  • 自動スケールアップ: アプリケーションに多くのユーザーがアクセスようになっても、Cloud Run は自動でスケールアップして対応します。これにより、あなたはサービスの拡大を気にせずに済みます。
  • 色々なプログラミング言語に対応: Cloud Run はコンテナを使うため、あなたが好きなプログラミング言語を自由に使うことができます。これにより、あなたは柔軟にアプリケーションを開発することができます。

Cloud Scheduler

Cloud Scheduler は、定期的なジョブのスケジューリングと実するためのサービスです。cron のような構文を使用してジョブのスケジュールを設定し、指定した時間にジョブをトリガーできます。Cloud Scheduler は、HTTP リクエストや Pub/Sub メッセージの送信など、さまざまなアクションをトリガーできます。

  • 高い信頼性: ジョブの実行が保証され、高い耐障害性を持っています。スケジュールされたジョブの実行を保証します。
  • 柔軟性: HTTP、Pub/Sub、App Engine など、さまざまなターゲットに対してジョブを実行できます。
  • 簡単な管理: ウェブベースのコンソールやコマンドラインを使用してジョブを簡単に管理できます。

2. Google Cloud

サービス間の認証方法

Google Cloud のサービス間で情報をやり取りする際には、認証が必要です。サービスアカウントを使用して認証情報を設定することで、異なるサービス間で安全な通信を確立できます。

⚠️ 注意: テストやデモ目的ではサービスアカウントのキーを直接使用することは問題ありませんが、本番環境では使用しないでください。サービスアカウントキーはシークレットな情報であり、適切に管理する必要があります。適切な管理が行われない場合、セキュリティリスクが高まり、不正アクセスを許す可能性があります。使用する前に、サービスアカウントキーの管理に関するベストプラクティスを理解してください。(https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys?hl=ja)

3. Cloud Run と Cloud Scheduler の連携方法

サービスアカウントの作成と認証

  1. Cloud Scheduler と Cloud Run の間で認証情報をやり取りするために、Google Cloud のサービスアカウントを作成します。
  2. サービスアカウントに Cloud Run Invoker の役割を付与し、Cloud Scheduler から Cloud Run サービスを呼び出す権限を与えます。

Cloud Run のセットアップ

  1. Google Cloud コンソールにログインし、「Cloud Run」を開きます。
  2. 「サービスを作成」をクリックし、サービス名、リージョン、認証方法を設定します。
  3. 必要なアプリケーションのイメージをコンテナイメージとしてアップロードします。
  4. 必要に応じて、環境変数やメモリ制限などのコンテナの詳細設定をします。
  5. 全ての設定が完了したら、「デプロイ」をクリックしてサービスをデプロイします。
  6. デプロイ後に表示される Cloud Run のエンドポイント URL をコピー・保存します。これは外部からサービスにアクセスするための URL です。

Cloud Scheduler のセットアップ

  1. Cloud Scheduler コンソールにアクセスし、「ジョブの作成」ボタンをクリックします。
  2. ジョブの設定を行い、トリガーとなるスケジュールを設定します。例えば、毎日午前 9 時にジョブを実行する場合は 0 9 * * * という cron 構文を使用します。
  3. Cloud Run サービスの URL を指定し、ジョブが実行されるときに HTTP リクエストがその URL に送信されるように設定します。
  4. [Auth ヘッダー] リストでトークンタイプを選択します。通常は OIDC を使用しますが、\*.googleapis.com ホストの Google API は例外で OAuth(アクセス)トークンが使用されます。
  5. [サービス アカウント] でクライアント サービス アカウントのメールアドレスを指定します。

まとめ

以上で、Cloud Run と Cloud Scheduler の連携および認証設定が完了しました。これにより、Cloud Scheduler が定期的に Cloud Run のサービスを自動的にトリガーできます。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい