13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PolarDBなどのデータベースに関するTipsを記事投稿しよう by Alibaba CloudAdvent Calendar 2023

Day 9

Serverless RDB対決:AWS Aurora Serverless v2 vs Alibaba Cloud PolarDB Serverless、予想外の結果に驚愕!

Last updated at Posted at 2023-12-19

はじめに

2022年4月 AWS Aurora Serverless v2が一般提供開始されました。

AWS Aurora Serverless v1に打ちのめされたエンジニアでも、理想的なServerless RDBを再度夢見て、v2に期待した方も多いでしょう。

そしてAlibaba Cloudも PolarDB Serverlessをリリースしています。

そこで、Serverless RDB同士で価格と性能を比較してみました。

先に結論を言うと、Alibaba Cloudが飛び抜けて高い性能(12倍)になりました。価格性能比だと24倍です。マジか?

AWS Aurora Serverless v2ってどうなの?

Aurora Serverless v2のコストはAurora Capacity Unit(ACU)で計算されます。
ACUはCPUと2GBメモリに対応する性能です。

オンデマンドインスタンスのdb.t3.smallの性能が1 ACU相当だそうです。

1ACUのRDBを1ヶ月使うケースでオンデマンドとServerlessを比較してみます。

種別 月コスト 1時間コスト
オンデマンド db.t3.small 6700円 $0.063
Serverless v2 1.0 ACU 21000円 $0.20
リザーブドインスタンス db.t3.small(1年分前払い) 4900円 $0.046

Serverless v2高いですね!

1日を通して負荷変動がない場合、オンデマンドインスタンスのほうが安くなります。リザープドインスタンスを使えばさらに安くすることができます。

Serverless v2のメリットは?

スケーラビリティに優れることです。

最小0.5ACUから、128ACUまで、自動でスケールするように設定ができます。

Screenshot 2023-12-19 at 11.56.25.png

そのため、

  • トラフィックの波がある場合のコストダウン
  • バーストトラフィックへの対応

などがメリットになります。

しかし、Serverless v2をキープするだけでも0.5ACU = 10000円/月以上かかるので、ちゃんと見積もりが必要です。

多くの場合、オンデマンドでRDBを建てた方が安上がりになるでしょう。

というわけで、現在のAWS Aurora Serverless v2はもう一歩だと思っています。

Alibaba Cloud PolarDB Serverless

では、ここでAWSではなく、Alibaba Cloudの説明に移ってみます。

Alibaba CloudのPolarDBはMySQL、PostgreSQLと100%互換のRDBです。AWSと同じくServerlessタイプが提供されています。

polar

AWSと似ていて、PCUという基準で性能を設定できます。PCUは

A PCU is equivalent to one CPU core and 2 GB of memory.

ということが書いてあるので、AWSのACUとそっくり(2GBとか)です。

Alibaba Cloud PolarDB Serverless のコスト

最小構成

リードレプリカを1、1PCUの設定で$0.098/hが最低コストです。
(リードレプリカを0すれば$0.049/hになりますが冗長性が下がります)

ただし、最小PCUは1に設定した場合、最大PCUは2以上(最小+1以上)しか設定できません。

最大構成

リードレプリカを7、32PCUにしたら $12.544/h になります。

Alibaba Coudは、スクリーンショットのようにリソース作成前にコストを提示してくれます。ここは素敵です。

しかし、それ以外に詳細な料金を調べようとするとWebから見つけられなかったり、料金計算ツールでも項目がなかったりするので改善して欲しいところです。

AWS Aurora Serverless v2 vs Alibaba Cloud PolarDB Serverless

AWS 1ACU = Alibaba Cloud 1PCU と見なして、値段を比較してみます。

種別 月コスト 1時間コスト
AWS Aurora Serverless v2 1ACU 21000円 $0.2
Alibaba Cloud PolarDB Serverless 1PCU 10400円 $0.098

この時点では、Alibaba Cloudが半額ぐらいに見えますね。

RDBに限らず、AWSとAlibaba Cloudを比べると、いつもAlibaba Cloudが安いです。負けないように下げているんでしょうね。

AWS 1ACU vs Alibaba Cloud 1PCU

じゃぁ、AWS 1ACU vs Alibaba Cloud 1PCUで性能は同じなのか?

ここが違うと価格比較の意味がないので、性能を比較してみます。

AWS Aurora Serverless v2 条件

  • デフォルトの設定(MySQL)
  • 最小ACUを1
  • 最大ACUを1

Alibaba Cloud PolarDB Serverless 条件

  • デフォルトの設定(MySQL)
  • 最小PCUを1
  • 最大PCUを2 (1が設定できないから)

ベンチマーク方法

AWSはEC2で、Alibaba CloudはECSでインスタンスを立てて、sysbenchでOLTP(オンライントランザクション処理)のベンチマークをする。

コマンドは以下のような感じです。

% sysbench --tables=3 --table_size=10000 --threads=3 --time=10 oltp_read_write run
//接続設定は省略

どちらも2コアCPUのUbuntu22インスタンスから打ち込みました。また、どちらもaptでインストールしたsysbenchを使いました。

AWS Aurora Serverless v2の結果

SQL statistics:
    queries performed:
        read:                            3108
        write:                           888
        other:                           444
        total:                           4440
    transactions:                        222    (21.69 per sec.)
    queries:                             4440   (433.82 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          10.2323s
    total number of events:              222

Latency (ms):
         min:                                   46.76
         avg:                                  136.85
         max:                                  501.77
         95th percentile:                      303.33
         sum:                                30380.62

Threads fairness:
    events (avg/stddev):           74.0000/0.82
    execution time (avg/stddev):   10.1269/0.08

Alibaba Cloud PolarDB Serverlessの結果

SQL statistics:
    queries performed:
        read:                            73556
        write:                           21016
        other:                           10508
        total:                           105080
    transactions:                        5254   (524.76 per sec.)
    queries:                             105080 (10495.24 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          10.0106s
    total number of events:              5254

Latency (ms):
         min:                                    2.96
         avg:                                    5.71
         max:                                   57.06
         95th percentile:                       24.83
         sum:                                30023.70

Threads fairness:
    events (avg/stddev):           1751.3333/50.15
    execution time (avg/stddev):   10.0079/0.00

ベンチマーク結果まとめ

vs

これはマジか???

比較できないぐらい差が開いてるぞ?

Alibaba Cloud PolarDB Serverlessのほうは最大PCUが2でした。

以下のモニタリンググラフを見る限り、何かしらPCUが反応しているようです。瞬間的に2PCUになったかもしれません。大きく勝っているので2PCUだった、としましょう。

Screenshot 2023-12-19 at 19.34.20.png

そのためAlibaba CloudのTotalスコアは、AWSの12倍となりました。

つまり価格性能比では24倍ぐらいAlibaba Cloudが勝ってます。マジか?

まとめ

ベンチマークに著しい差が出てしまいました。

AWS側の数値が低いというより、Alibaba Cloud側の数値がとても高いです。

これなら、多くのケースでAlibaba Cloud PolarDB Serverlessはコストダウンに繋がるのではないでしょうか。

Auto ScalingするServerless RDBがあればバーストトラフィックが怖くなくなるので、エンジニアは夜もよく寝られそうです。

業務ではServerless RDBの導入はまだでしたが、もう使えそうですね。


識者の方、ベンチマーク大差の理由や、ベンチマークが悪いなど、わかる方がいたら教えてください!

13
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?