アイドル状態の GPU に費用を払う必要はありません。コンピューティングリソースをジャストインタイムでプロビジョニングし、ワークロードを処理し、終了させます。これにより、設備投資はジョブごとの運用コストに変わります。

あなたのワークロードはバースト性があります。コンテンツがアップロードされたときに急増する動画エンコーディングジョブ、4時間8つの GPU を必要としその後何も必要としない MLトレーニングの実行、ビジネスイベントによってトリガーされるバッチ推論ジョブ、または一晩実行されるレンダリングパイプラインなどです。あなたは過剰なプロビジョニング(時間の80%はアイドル状態のリソースに支払っている)か、不足したプロビジョニング(ピーク時にジョブが何時間もキューに入っている)のどちらかの状態です。GPUワークロードにとって「スケール・トゥ・ゼロ」を非現実的にするコールドスタートペナルティなしに、必要なときに必要なコンピューティングを正確にプロビジョニングし、ジョブが完了したらそれを解放するアーキテクチャが必要です。
Explore more design patterns and system architectures
バッチ処理が多い、または定期的なワークロードを持つMicrocosmWorksのクライアントは、on-offスケーリングを導入後、通常60〜80%のクラウドコスト削減が見られます。これは、コンピューティングリソースが24時間365日ではなく、アクティブな処理ウィンドウ中にのみ実行されるためです。私たちは実際の使用状況のテレメトリに基づいてスケーリングポリシーを設計します。例えば、毎日4時間実行されるデータ処理パイプラインは、フル24時間ではなく、その4時間分のみを支払います。当社のアーキテクトがディスカバリーフェーズ中にお客様のワークロードパターンを分析し、実装が開始される前に正確な削減額を予測します。
プリウォームされたノードプール上のコンテナ化されたアプリケーションの場合、コールドスタート時間は2〜3秒ですが、特殊な GPU インスタンスや大規模なモデルの読み込みを必要とするワークロードの場合、5〜10分かかることがあります。MicrocosmWorks は、この遅延を最小限に抑えるためにいくつかの手法を使用します。私たちは、過去のトラフィックパターンとスケジュールされたイベントを使用して、予期される需要の前にリソースを起動する予測スケーリングを実装しています。また、レイテンシーに敏感なワークロードに対しては、コンテナイメージの事前プルとウォームプール予約を利用しています。いかなるコールドスタートも許容できないアプリケーションの場合、需要が発生した際に積極的にスケールアップする最小限のウォームベースラインを維持しています。
MicrocosmWorksは、キューの深さ、CPU使用率、またはカスタムアプリケーションメトリクスによってトリガーされる積極的なスケールアップポリシーと、スラッシングを回避するためのクールダウン期間を含むより段階的なスケールダウンポリシーを組み合わせた、リアクティブなオートスケーリングを実装しています。スケールアップイベント中には、システムが需要を1つのインスタンスずつ追いかけるのではなく、継続的な成長を予測できるように、オーバープロビジョニングバッファを設定します。フラッシュセールやバイラルイベントのような真に予測不能なスパイクに対しては、お客様のマーケティングまたは運用カレンダーからのイベント駆動型トリガーを使用して、事前にキャパシティをプロビジョニングします。
MicrocosmWorksは、Aurora Serverless、Neon、PlanetScaleのようなserverless databaseサービスを利用して、データベースにon-off scalingを適用します。これらのサービスは、アイドル時にcomputeをゼロにスケールし、ストレージは永続的で即座に利用可能な状態を保ちます。serverless databaseを利用できないstatefulなワークロードの場合、クエリ負荷に基づいてレプリカを追加・削除するread-replica scalingを実装し、最小限のprimary instanceを常に稼働させます。このハイブリッドアプローチにより、クライアントはシャットダウンおよび再起動サイクル中のデータベース状態管理の複雑さなしに、data tierのスケーリングによるコストメリットを得られます。
MicrocosmWorks は、Grafana または Datadog のダッシュボードを使用して、インスタンス数、スケーリングイベントのレイテンシー、失敗したスケーリング試行、およびリアルタイムでの目標キャパシティと実際のキャパシティのギャップを追跡する包括的なスケーリングの可観測性を展開しています。スケーリングの失敗、スケーリング上限が低すぎることを示唆する持続的な高使用率、および暴走スケーリングを示すコスト異常に対して、マルチチャネルアラートを設定します。当社のランブックには、クラウドプロバイダーのインスタンス制限に達する、または特定の可用性ゾーンでキャパシティ不足エラーに遭遇するなどの一般的な障害モードに対する自動修復が含まれています。
オンオフスケーリングアーキテクチャは、ウォーム/コールドプーリング、ジョブキュー駆動型プロビジョニング、および自動ティアダウンを介してコンピューティングリソースを管理します。ウォームプールは、すぐに使用できる少数の事前初期化されたインスタンスを維持します。コールドプールは、需要がウォームプールを超える場合に、スポット/プリエンプティブルインスタンスから追加の容量をプロビジョニングします。ジョブオーケストレーターは、利用可能なインスタンスに作業をルーティングし、進行状況を監視し、スポットインスタンスの停止時の再試行を処理し、キューが空になったときにスケールダウンをトリガーします。このパターンは、コールドスタート(コンテナプル + モデルロード)に3〜10分かかる GPUワークロードにとって特に重要です。
このシステムは、受信する作業リクエストをバッファリングするジョブキュー(SQS、Redis、またはカスタム)を中心にしています。スケーリングコントローラーはキューの深さを監視し、最初にウォームプールから、次にコールドプール(スポットインスタンス)からインスタンスをプロビジョニングします。各ワーカーインスタンスはキューからジョブをプルし、ワークロード(エンコーディング、トレーニング、推論)を実行し、完了を報告し、プールに戻るか終了します。チェックポイントマネージャーは、中間状態を S3 に保存することでスポットインスタンスの停止を処理し、別のインスタンスで最初からやり直すことなくジョブを再開できるようにします。
| レイヤー | 技術 |
|---|---|
| コンピューティング | AWS EC2 Spot (G5/P4), GCP Preemptible (A2/L4), RunPod Serverless, Modal |
| オーケストレーション | Kubernetes (Karpenter for autoscaling), AWS Batch, custom job orchestrator |
| ジョブキュー | AWS SQS, BullMQ (Redis), Temporal, Celery |
| ストレージ | S3 (チェックポイント, モデルアーティファクト), NVMe (モデルキャッシュ), EFS (共有ワークスペース) |
| モニタリング | CloudWatch/Prometheus (キューの深さ, インスタンスの利用率, ジョブのレイテンシー), カスタムコストダッシュボード |
| 使用すべきケース | 避けるべきケース |
|---|---|
| ワークロードがバースト性を持つ — ピーク需要が平均需要の5倍以上 | トラフィックが安定しており予測可能である — 適切なサイズのリザーブドインスタンスの方が安価 |
| アイドル時に費用がかかる GPU/高計算ジョブ | ワークロードがサーバーレス(Lambda)に適した軽量な CPU処理である |
| ジョブがコールドプールプロビジョニングのための1〜5分のコールドスタートを許容できる | 1秒未満のジョブ開始レイテンシーが要求される — 常時稼働のインフラストラクチャが必要 |
| コスト最適化が主要な懸念事項であり、スポット料金が60〜90%の節約を提供する | スポットインスタンスの割り込みが、チェックポイントで軽減できないデータ損失を引き起こす場合 |
MW は「ジョブごとのコスト」の視点からオンオフスケーリングを設計しています。異なるスケーリング戦略にわたる1単位の作業(1つの動画、1回のトレーニング実行、1回のバッチ推論)を処理する総コストをモデル化し、必要なレイテンシー SLA でコストを最小化する戦略を選択します。私たちの実装には、ジョブごとのコスト、インフラストラクチャの利用率、およびスポットインスタンスによる節約を示すリアルタイムコストダッシュボードが含まれています。リザーブドインスタンスと比較して動画処理コストを70%削減したオンオフ GPUインフラストラクチャや、4時間のトレーニング実行のために64個の GPU をプロビジョニングし自動的に解放する MLトレーニングクラスターを構築してきました。
セキュリティは、ローンチ後に付け加える機能ではありません。それはアーキテクチャの特性であり、システムがそのために設計されたか、されなかったかのどちらかです。