🦕

ACU(Aurora Capacity Unit)ってなに?

2022/09/01に公開

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 インスタンスを設定できます。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations

インスタンスタイプによってメモリ容量が変わる為、例として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は対応していません

https://blog.serverworks.co.jp/aurora-serverless-v2-ga

Discussion