TL;DR
- Aurora Serverless v2のメモ書き
About
Aurora Serverless v2とAurora Provisioned Instanceの違い
- プロビジョンド済みAuroraはインスタンスタイプと台数での課金体系
- 定常的に使用されるワークロードに適している
- Aurora Serverless v2はスケーラビリティに優れており、ACUという独自の課金体系
- 特定の時間にスケールアップ/ダウン・スケールアウト/インを行うことで必要なキャパシティを調達することが可能
- Aurora Capacity Unit(ACU)は時間単位で確保するマシンスペック
- 同一のAuroraクラスターにProvisioned InstanceとServerless v2を同居させることが可能
- 例えばWriterはProvisioned Instance、ReaderはServerless v2のような形が可能
ACU
- Aurora Capacity Unit
- Aurora Serverless固有の課金体系
- メモリー/CPU/ネットワークを含む料金
- 0~256ACUまで設定可能
- 1ACUにつき2GiB
- 実質的な最小値は0.5の1GiB
- 0の場合コールドスタンバイ状態になる。
コールドスタンバイ
- 最小ACUを0に設定することが可能
- 使用されていない時間は課金されない
- 再接続
- 24時間以内に再接続を行うと15秒かかる
- 24時間以上ACU0の状態だとdeeper sleepモードになり、接続に30秒かかる
- ref: Scaling to Zero ACUs with automatic pause and resume for Aurora Serverless v2 - Amazon Aurora
- ACU0にならないケース条件もある
- コネクションが張られていること
- ACU0に対応しているバージョンを使用していること
- RDSプロキシが有効化されていること
- ストレージ費用はACU0の状態でも課金される
オートスケール
- Aurora Serverless v2は構築時にACUの最小値と最大値を設定し、その値の範囲内でオートスケールを行ってくれる
- 最小ACUが大きいほどスケールアップの速度が上がる
- 数百から数千へのトランザクションが1秒未満でスケールアップが行われる
- スケールダウンは段階的にゆっくりと行われる
スケジューリングオートスケール
- 時間ベースでのオートスケール(Scheduled Scaling)は未対応
- EventBridge Schedulerで対応可能
- e.g.
- 夜間は低いACUでも問題ないが、特定の時間(例えばゲームアプリのイベントのタイミング)にスケジューリングを行いたい場合はEventBridge Schedulerで一定以上のACUに設定することが可能
- Aurora Serverless v2のオートスケールの性質上、最小ACUが大きいほどスケールアップの速度が上がるため事前に最小ACUを上げることで高速なオートスケールを有効に活用可能
max connection
- ACUに依存
- 0.5最小の場合2,000
- コネクション数はDBのMemoryに依存、ACUを増加させることでコネクション数は増加。
- 式は以下
LEAST({DBInstanceClassMemory/9531392},5000)
.
料金
- 前提として、ACUはメモリー/CPU/ネットワークを含む料金で、Provisioned Instanceはネットワークの料金や容量がかかる
- 今回はProvisioned Instanceはインスタンス台のみとするため、実際は増加する
1h | 1m | |
---|---|---|
ACU 0.5 | 0.075 | 54.75 |
ACU 1 | 0.15 USD | 112.22 |
db.r7g.large | 0.333 | 243.09 |
db.t4g.medium | 0.113 | 82.49 |
Refs
- ACU(Aurora Capacity Unit)ってなに?
- Aurora Serverless v2 の働き - Amazon Aurora
- リクルートが『スタディサプリ』で Amazon Aurora Serverless v2 を採用。コストを最適化しつつ Aurora の管理工数を大幅削減 | Amazon Web Services ブログ
- 【レポート】スパイクにもすぐにオートスケールするようになったAmazon Aurora Serverless v2のDeep Dive #reinvent #EMB023 | DevelopersIO
所感
Aurora Serverless v2の強みはやはり強力なオートスケールだと実感。
最小ACUに応じてスケールアップの速度が変わる点は考慮すべき点であり、開発環境の夜間停止などをさせたい際にもACU0にする条件を認識する必要がある。