Aurora Serverless 少し調べたことのまとめ
|2分
概要
Aurora Serverless v2 は、Amazon Aurora におけるオンデマンドの自動スケーリング型データベース構成。
スケーリング単位(ACU)
- Aurora Serverless v2 は ACU(Aurora Capacity Unit) を単位としてスケール
- 1 ACU ≒ 約 2 GiB メモリ + CPU + ネットワーク
スケーリング方式
- 最小 ACU 〜最大 ACU の範囲内で連続的・段階的にスケーリング
- 最小 0.5 ACU 単位で増減可能
- スケーリングは高頻度・無停止で行われる
クラスター構成
- ライター + 複数リーダーを持つクラスタ構成
- 各ノード(ライター・リーダー)が個別にスケール
- 最大15台のリーダーを追加可能
ACU 設定注意点
-
- 最小容量(Min ACU)設定は以下に影響
- スケールアップ速度(大きいほど速い)
- キャッシュ保持(小さすぎるとキャッシュ消える)
- スパイク耐性
- 小さすぎると:
- スケール遅い
- キャッシュミス増える
- パフォーマンス悪化
-
- 最大容量(Max ACU)はワークロードピークに合わせて設定
- 小さすぎると:
- スケール上限に到達
- パフォーマンス劣化
- 大きすぎると:
- コスト上振れリスク
重要メトリクス
- ServerlessDatabaseCapacity
- 現在のDBインスタンスのキャパシティ(ACU: Aurora Capacity Unit)
- 「今どれくらいスケールしているか(実サイズ)」= 実際に使っているスペックそのもの
- スケールの動きを把握する / 最小・最大ACU設定が適切か判断する / コストと性能のバランスを見る
- ACUUtilization
- 最大ACUに対する現在の使用率(%)
- 「上限に対してどれくらい余裕があるか」
- スケール上限に張り付いていないか確認する / 最大ACUの見直し判断 / リーダー追加の判断
- CPUUtilization
- 最大ACUに基づいたCPU使用率
- 「CPUがどれくらい詰まっているか(スケール判断に使われる指標)」
- CPUボトルネックの検知 / スケールアップ判断 / 読み取り負荷分散の必要性判断
- FreeableMemory
- 最大スケール時に利用可能な未使用メモリ量
- 「あとどれくらいメモリ余裕があるか(上限ベース)」
- メモリ枯渇の検知 / 最大ACU引き上げ判断 / リーダー追加判断
- TempStorageIOPS
- ローカル一時ストレージのIOPS(読み書き回数)
- 「一時ディスクをどれだけ叩いているか」
- クエリのspillや一時テーブル多用の検知 / 異常なスケール原因の調査
- TempStorageThroughput
- ローカル一時ストレージのデータ転送量(バイト)
- 「一時ディスクにどれだけデータが流れているか」
- I/O負荷の分析 / クエリ実行計画の問題特定 / 想定外の負荷増加の検知
- NetworkReceiveThroughput / NetworkTransmitThroughput など
- DBインスタンスのネットワークスループット(送受信)
- 「どれくらい通信しているか」
- ネットワークボトルネックの検知 / アプリ or ストレージ起因の負荷切り分け / 異常スケールの補助分析
参考資料
Powered byzenn-dev/zenn-editor

さとう
ソフトウェアエンジニアとして色々開発をしてきました。今はアプリケーション開発からは離れ、クラウド系のお仕事をしています。 ※投稿内容は個人の見解であり、所属組織や団体とは関係ありません。