「相応にCPU依存処理が速くなる」
AWSに手堅くデータを保存するならやはりAmazon Auroraです。はてなで開発運用しているGigaViewerでもAurora for MySQLを主なRDBとして使っています。
先日、インスタンスタイプをr6gからr8gに更新し、インスタンスサイズを2/3に削減しました。この際のパフォーマンス変化の実績を共有します。
AWSからのリリースでは、インスタンスの世代が更新されると一定水準の高速化が見込める旨が提示されています。これの実際はどういうものなのか? のサンプルとして参考になれば幸いです。
この記事は
id:koudenpa が書いたSRE連載の2026年2月号です。1月号は
id:masayosuのEKS + Karpenter で GPUノードを構築した話でした。
理論値のパフォーマンス向上
r6gからr8gへの2世代更新は以下のようなアナウンスがされています。
Amazon Aurora が新たな AWS リージョンで R7g データベースインスタンスのサポートを開始 - AWS
Graviton3 インスタンスを使用すると、Aurora のパフォーマンスが Graviton2 インスタンスと比較して最大 30% 向上します
Amazon Aurora が新たな AWS リージョンで R8g データベースインスタンスのサポートを開始 - AWS
Graviton4 ベースのインスタンスは、Amazon Aurora データベースの同等サイズの Graviton3 ベースのインスタンスと比較して、パフォーマンスが最大 40%、オンデマンド料金の料金/パフォーマンスが最大 29% 向上します。
r6gを100%とすると130%x140%で最大182%パフォーマンスが向上するようです。
r6g to r8g、サイズ2/3 実績
概ね以下の通りでした。
- CPU依存の処理は相応に高速化した
- サイズ(=コア数)2/3でもCPU使用率は低下した
- CPU依存以外の性能は微増減した
重め(実行時間10ms以上が目安)のクエリのレイテンシは20~40%程度減少、高速化しました。
インスタンスのサイズは2/3にしたのですが、同様の負荷下でのCPU使用率は減少しました。 変更前を100とすると、概ね75程度です。 サイズを2/3としていることも考慮する(サイズが同じだったらCPU使用率は更に2/3の50程度になるはず)と「最大182%パフォーマンスが向上」と言っても差し支えないCPU能力の向上と言えそうです。

CPU依存以外の要素は、メトリクスで確認する限りでは顕著な変化はありませんでした。
備考として
CPU依存の処理が多く顕著に高速化しているのはDB、アプリケーション設計としては最適化が不足している部分なので、設計面での改善の余地は大いにあります*1。
インスタンスサイズを減らすと相応にCPUコア数やメモリ量が減るので、同時処理数やバッファ量などが足らなくなり性能悪化することもあり得ます。 我々のユースケースではこれらは大きな問題となりませんでしたが、サイズの見直しに当たっては総合的な処理能力を検討(可能なら検証)する必要があります。
コストパフォーマンス
インスタンスの世代を上げ、サイズを下げると速度向上とコスト削減効果を期待できます。
- r6gとr8gでは単価はr8gが高い
- 2/3のサイズではRIの割引率を考慮してもr8gが安い
- これで総合的なCPU処理能力は向上が見込める
Amazon Aurora の料金からRIの料金を抜粋:
| インスタンス名 | RI の実質的な時間単位の料金 | オンデマンドと比較した費用節減 | オンデマンド料金 |
|---|---|---|---|
| db.r8g.large | USD 0.210 | 37% | USD 0.3330 |
| db.r8g.xlarge | USD 0.420 | 37% | USD 0.6660 |
| db.r8g.2xlarge | USD 0.839 | 37% | USD 1.3320 |
| db.r8g.4xlarge | USD 1.678 | 37% | USD 2.6640 |
| db.r8g.8xlarge | USD 3.357 | 37% | USD 5.3280 |
| db.r8g.12xlarge | USD 5.035 | 37% | USD 7.9920 |
| db.r8g.16xlarge | USD 6.713 | 37% | USD 10.6560 |
| db.r8g.24xlarge | USD 10.070 | 37% | USD 15.9840 |
| db.r8g.48xlarge | USD 20.140 | 37% | USD 31.9680 |
| db.r6g.large | USD 0.174 | 44% | USD 0.3130 |
| db.r6g.xlarge | USD 0.348 | 44% | USD 0.6270 |
| db.r6g.2xlarge | USD 0.696 | 44% | USD 1.2530 |
| db.r6g.4xlarge | USD 1.393 | 44% | USD 2.5060 |
| db.r6g.8xlarge | USD 2.786 | 44% | USD 5.0120 |
| db.r6g.12xlarge | USD 4.178 | 44% | USD 7.5180 |
| db.r6g.16xlarge | USD 5.571 | 44% | USD 10.0240 |
2/3のサイズではr8gの方が安い:
- db.r6g.12xlarge -> db.r8g.8xlarge: USD 4.178 -> 3.357
- db.r6g.16xlarge -> db.r8g.12xlarge: USD 5.571 -> 5.035
所感
インスタンスの世代を上げると性能も上がる。 本当のことさ!
*1:改善したい人は是非入社してください