コンテンツに移動
サーバーレス

Cloud Scheduler とは

2023年5月31日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 5 月 13 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud Scheduler の利用をすぐに始めたい場合は、こちらのインタラクティブなチュートリアルをご覧ください。

新しいデータベースとパイプラインの設定を完了し、組織の大量のデータを定期的に処理できるようになったという事実に喜びを感じているあなた。清々しい気分です。

上司はあなたを評価し、今後も引き続きこの管理を任されることになりました。しかし、このプロジェクトを始めるときに上司が触れなかったことがありました。

あなたはすぐに、新たな週が始まる前にデータベースをバックアップし、パイプラインに正しくフィードされていることを確認するという、非常に手間のかかる作業で毎週末が潰れてしまう、という事実を認識するようになります。長時間、複数のインターフェースを駆使して、失敗のないことを確認し、失敗したら最初からやり直す、という作業です。

しかし、このような状況にいるのはあなただけではありません。多くの異なるタスクや依存関係を伴う大規模なオペレーションの管理は、開発者や企業が直面する最大の課題の一つです。  

手作業で時間がかかり、クラウド環境で起こっていることをすべて把握するのが難しいだけでなく、ボトルネックが発生してしまうことで、組織の IT のスケーリングを実に難しくしています。

これらの細かな管理タスクをあなたに代わって完了するようスケジューリングする方法さえあれば、あなたはより戦略的でインパクトのあるタスクに集中できるのです。  

さて、このブログ投稿のタイトルから、Google Cloud Scheduler(Cloud Scheduler)がフルマネージド型の信頼性の高いスケジュールリング サービスであることが推測できると思います。

このサービスを使用すると、定期的なメンテナンス、データ処理といったタスクやワークフローのトリガーとなるタスクをスケジューリングして自動化することができます。たとえば、データのバックアップ、更新、バッチ処理、アプリケーションのモニタリング、自動テスト、レポート作成などを定期的に行うことができます。さらに、失敗したジョブを指定した時点まで再実行するよう構成できる、インテリジェントな再試行メカニズムも備えています。

特定の日時、一定の間隔、cron 式やジョブなど、さまざまなスケジューリング オプションにも対応しています。

  • cron ジョブは、ソフトウェア開発業界(Linux や Unix の世界)で一般的に使用されているスケジューリング ツールで、デベロッパーはこれを使って特定の間隔や特定の日時にタスクをスケジューリングできます。これらの間隔は unix-cron に基づく形式を使用して指定します。

Cloud Scheduler を使用して、次のようなタスクを実行できます。

  • 定期的なデータ バックアップを簡単にスケジューリングし、システム障害やデータ損失発生時もデータを安全に保護

  • 特定の間隔で大量のデータを一括処理

  • アプリケーションのエラーやパフォーマンスの問題をモニタリングし、問題検出時にチームへ通知を送信

Cloud Scheduler は、スケジュールの決定、タスクの実行、結果の管理をすべて一元化された場所から行えるようにすることで、クラウド環境の管理を容易にするように設計されています。これにより、インフラストラクチャの制御と可視性が向上します。

さらに、Google の堅牢なインフラストラクチャにより信頼性が確保されたフルマネージド型であるため、次の点において安心してご利用いただけます。

  • スケジュール通りにジョブを実行

  • ニーズに合わせて自動的にスケールし、追加の構成不要で、1 日数件のタスクから一度に数千件のタスクまで、あらゆる規模のジョブに対応(容量制限の心配なし)

これらのプロセスを自動化することで、ヒューマン エラーのリスクを減らし、あなたの時間と精神的なエネルギーをより重要なタスクに集中させ、生産性と管理力を向上させることができます。

では、これはどのように機能するのでしょうか。

Cloud Scheduler は、特定の間隔で実行される、または特定の条件に基づくイベントによってトリガーされるジョブを開発者が作成できるようにすることで機能します。

ジョブは、Cloud Scheduler UI、コマンドライン インターフェース使用して、または API を介して作成できます。

  • Cloud Scheduler はさまざまな方法でジョブをトリガーでき、現在は HTTP/HTTPS リクエストや Pub/Sub メッセージなど幅広いタイプのジョブに対応しています。また、Cloud Functions や Cloud Run を使ってカスタムのジョブタイプを定義することもでき、クラウド環境でのあらゆるタイプのタスクの実行を可能にする優れた柔軟性を提供します。

ジョブを作成したら、そのジョブを実行するスケジュールを指定するだけで、残りは Cloud Scheduler が処理してくれます。指定した時間や間隔で自動的にタスクをトリガーし、確実かつ一貫して実行されるようにします。  

  • 前述したように、スケジュールは Unix の cron 式を使って秒、分、時、日、月、曜日を指定してスケジュールを作成できます。

次に、スケジューラーは指定したターゲット ロケーションでジョブをトリガーします。これには、任意のウェブサービスやアプリケーションが考えられます。リクエストにはパラメータやデータを含めることができます。ターゲット ロケーションでリクエストが処理され、必要なタスクが実行されます。

  • たとえば、BigQuery からのデータ インポートを実行するジョブをスケジューリングしたい場合は、ファイル ロケーションとインポートしたデータのターゲット ロケーション(この場合はクラウド ストレージ)を指定するジョブを作成できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/cloud_scheduler_1.max-800x800.jpg

ジョブの実行後、Cloud Scheduler はジョブのステータスや結果に関する詳細な情報を提供します。この情報はログに保存され、Google Cloud コンソール、API、サードパーティのツールを使ってアクセスできます。  特に、Cloud Logging と Cloud Monitoring を設定すると、スケジュールされたジョブのステータスやパフォーマンスをリアルタイムで可視化したり、ジョブ実行のモニタリング、問題のトラブルシューティング、パフォーマンスの最適化が可能になり、便利です。

どれもこれも素晴らしい話だけど、実現するには、あなたの週末の代わりに高額の費用がかかるのでは、とお考えなら……いいえ、かかりません。Cloud Scheduler は、実行されたタスクに対してのみ支払いが発生する費用対効果の高いソリューションです。月に 3 件までのジョブを無料で提供する枠もあります(プロジェクト レベルではなく、アカウント レベル)。

https://storage.googleapis.com/gweb-cloudblog-publish/images/cloud_scheduler_2.max-2000x2000.jpg

 Cloud Scheduler を使用して、以下のスケジューリングが可能です。

  • データベース、ファイル システム、その他のデータソースのデータ バックアップ - 組織の重要なデータが定期的にバックアップされ、災害時に復元可能

  • VM インスタンスの起動 / 停止、一時ファイルの削除、未使用リソースのクリーンアップなどのリソース管理タスク - リソース使用の最適化、費用の削減に有用

  • Google Cloud 内外のさまざまなシステム間でデータを移動および変換するデータ パイプライン タスク。

基本的に、Cloud Scheduler は単なるジョブ スケジューリング ツールではありません。その柔軟性と他の Google Cloud サービスとのインテグレーションにより、複雑なワークフローのオーケストレーション、リソースの管理、タスクの自動化を実現し、あなたの週末を救うパワフルなツールとなります。

Cloud Scheduler を実際に使ってみたい方は、最初のジョブを無料で実行できるこちらのインタラクティブなチュートリアルを今すぐご覧ください。


- デベロッパーリレーションズ エンジニア Debi Cabrera
投稿先