LuftのElasticityへの道 - Part 2: クエリ履歴を使ったオートスケーリング
(engineering.ab180.co)> 自社開発データベースであるLuftの弾力性(elasticity)を改善するため、クエリ履歴を活用したコストベースのオートスケーラーを実装した経験を共有します。
- 以前の作業でShared Storageアーキテクチャへ移行したものの、実質的な効果を得るには効率的なオートスケーリングシステムが必要だった。
- Kubernetesを離れ、AWS SDKを活用したSelf-managedクラスター方式へ移行し、停止したインスタンスを再開する方式を実装して、スケーリング時間を10秒台に短縮した。
- 遅行指標であるメトリクス(CPU/メモリ使用量)に依存する従来のオートスケーリング手法の代わりに、クエリ履歴を活用したコスト予測モデルを開発した。
- クエリ正規化(canonicalization)によって類似クエリを識別し、クエリの履歴を使ってコストを計算するコスト関数を実装することで、正確なリソース予測が可能になった。
- オーバープロビジョニングなしで必要なときにだけリソースを割り当てることで、インスタンスコストを約40%削減し、重いクエリも処理できる弾力的なシステムを構築した。
まだコメントはありません。