imu-note
いむたろ
いむたろ
@imutaroh
新卒エンジニア / データ基盤 × AI

What — API と job の違い

  • コスト:1実行あたりの単価だけ見るとjobの方が高くなりやすい(実行のたびにサーバーを新しく立ち上げる必要があるから)。なので、インジェスチョンのように「たまに走る重い処理」は、常時待機のAPIを持つよりjobの方がコスト的にも実装されやすい
観点 API job
起動方法 HTTPリクエストで起動 実態はコマンド実行(今回はgcloudコマンド)
起動時間 一度立ち上げたら常に待機しているので即座に応答できる 毎回サーバーを立ち上げるので起動に時間がかかる
デバッグのしやすさ 1つのサーバーにいろんなデータのインジェスチョンのログが混ざるので追いづらい 実行ごとにサーバーが分かれるので、ログも実行単位で分かれて見やすい

How — 使い分け

  • 比較的小さいリクエストを大量に捌く場合(例:Xのようなサービス)→毎回サーバーを立ち上げると逆に遅いのでAPI
  • インジェスチョンのように時間がかかる処理→job実行
結論

インジェスチョンのように時間がかかる重い処理はjob実行で実装する。逆に、短くて大量のリクエストを捌くならAPI。社内データ基盤のインジェスチョン方針はjob実行。

関連