2023/06/24
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 の連携方法
サービスアカウントの作成と認証
- Cloud Scheduler と Cloud Run の間で認証情報をやり取りするために、Google Cloud のサービスアカウントを作成します。
- サービスアカウントに Cloud Run Invoker の役割を付与し、Cloud Scheduler から Cloud Run サービスを呼び出す権限を与えます。
Cloud Run のセットアップ
- Google Cloud コンソールにログインし、「Cloud Run」を開きます。
- 「サービスを作成」をクリックし、サービス名、リージョン、認証方法を設定します。
- 必要なアプリケーションのイメージをコンテナイメージとしてアップロードします。
- 必要に応じて、環境変数やメモリ制限などのコンテナの詳細設定をします。
- 全ての設定が完了したら、「デプロイ」をクリックしてサービスをデプロイします。
- デプロイ後に表示される Cloud Run のエンドポイント URL をコピー・保存します。これは外部からサービスにアクセスするための URL です。
Cloud Scheduler のセットアップ
- Cloud Scheduler コンソールにアクセスし、「ジョブの作成」ボタンをクリックします。
- ジョブの設定を行い、トリガーとなるスケジュールを設定します。例えば、毎日午前 9 時にジョブを実行する場合は
0 9 * * *
という cron 構文を使用します。 - Cloud Run サービスの URL を指定し、ジョブが実行されるときに HTTP リクエストがその URL に送信されるように設定します。
- [Auth ヘッダー] リストでトークンタイプを選択します。通常は OIDC を使用しますが、
\*.googleapis.com
ホストの Google API は例外で OAuth(アクセス)トークンが使用されます。 - [サービス アカウント] でクライアント サービス アカウントのメールアドレスを指定します。
まとめ
以上で、Cloud Run と Cloud Scheduler の連携および認証設定が完了しました。これにより、Cloud Scheduler が定期的に Cloud Run のサービスを自動的にトリガーできます。
Author Profile
スターフィールド編集部
SHARE