Cloud SchedulerとCloud Run(Internal)の直接連携による効率的な定期処理の実装

2023/11/10に公開

概要

https://cloud.google.com/run/docs/securing/ingress?hl=ja#settings

しれっとCloud Schedulerが追加されていた。。。

Google Cloud Platform(GCP)において、Cloud Schedulerが直接Cloud Run(Internal)をトリガーできるようになりました。これにより、以前必要だったCloud Pub/Subを経由するステップを省略し、短時間で完了する定期処理をより簡単に行えるようになります。

従来のアーキテクチャ

以前のフロー

従来、Cloud SchedulerからCloud Runを実行する際には以下の手順が必要でした。

  1. Cloud Scheduler: 定期的なスケジュールを設定。
  2. Cloud Pub/Sub: Cloud Schedulerからのリクエストを受け取り、Cloud Runへ中継。
  3. Cloud Run: 実際の処理を実行。

このフローでは、Cloud Pub/Subが中間層として機能していました。

問題点

  • 追加の設定と管理が必要
  • システムの複雑性が増加
  • Cloud Run側でPubSubに対応した実装が必要

新しいアーキテクチャ

改善されたフロー

Cloud Schedulerが直接Cloud Runをトリガーできるようになったことで、プロセスは以下のように単純化されました。

  1. Cloud Scheduler: 定期的なスケジュールを設定。
  2. Cloud Run: 直接トリガーされ、処理を実行。

利点

  • より少ない設定と管理
  • システムの単純化
  • Cloud Runでは単純なAPIエンドポイントを実装すればいい

結論

Cloud SchedulerとCloud Runの直接連携により、GCP上での短時間で完了する定期的な処理がすぐに実装できるようになりました。

  • Cloud Schesuler -> Cloud Runに実装したAPIで短時間の定期処理を実行
  • Cloud Schesuler -> Cloud Run Jobsに実装した長時間の定期処理を実行

Discussion