ACU(Aurora Capacity Unit)ってなに?
Aurora Serverless v2 を調べている時に急に出てきた単語「ACU」
AWS公式ドキュメントだと理解している前提で話しが進められてビビったので調べてみました
ACUとは
ACUとはAurora Serverless で用いられている、Aurora 容量単位の事を指します
1ACU あたり約2ギビバイト(GiB)のメモリ、対応するCPU、ネットワークが組み合わせられます
ざっくりと下記のイメージで考えています
- Aurora Serverless の処理性能はACU単位で決まる
- 通常のAuroraインスタンス の処理性能はインスタンスサイズ/タイプで決まる
Aurora Serverless v2の場合は最小-最大で設定したACU間を負荷に合わせて自動でスケールします
- Aurora Serverless v2の設定可能な容量
- 最小容量: 0.5ACU
- 最大容量: 128ACU
キャパシティ計算
「ACUは分かったから、今のAuroraのインスタンスサイズと同じキャパシティにするにはどうしたら良いんだ」と思っている人が多いかと思います
この計算は単純で、基本的にインスタンスに割り当てられるメモリと vCPU の比率は一定です
そのため、インスタンスクラスのメモリ容量とACUのメモリ容量の値を合わせる形で算出できます
例えば、クラスターのワークロードが高い場合に db.r6g.4xlarge DB インスタンスクラスを使用するとします。その DB インスタンスクラスのメモリは 128 GiB です。したがって、ACU の最大設定を 64 に指定すると、ほぼ同じ容量にスケールアップできる Aurora Serverless v2 DB インスタンスを設定できます。
インスタンスタイプによってメモリ容量が変わる為、例としてdb.r5 を表にしました
インスタンスタイプ | メモリ (GiB) | 対応するACU |
---|---|---|
db.r5.large | 16 | 8 |
db.r5.xlarge | 32 | 16 |
db.r5.2xlarge | 64 | 32 |
db.r5.4xlarge | 128 | 64 |
db.r5.8xlarge | 256 | 128 |
Aurora Serverless v2 の最大容量が128ACU なので
Aurora Serverless v2 1台あたりの最大キャパシティ ≒ 8xlarge
にざっくりなりそうです
もしそれ以上のキャパシティが必要な場合は、
Aurora Serverless v2 の台数を追加するしか方法はなさそうです
尚、現在(2022/09/01) Aurora Serverless v2 はまだレプリカの Auto Scalingは対応していません
Discussion