Slide 1

Slide 1 text

Aurora Serverless v2 コスト戦略の羅針盤 k-jun / 熊谷 圭遵

Slide 2

Slide 2 text

k-jun / 熊谷 圭遵 2 入社: 2020年度(新卒) 職種: インフラエンジニア 趣味: ウクレレ ボードゲーム

Slide 3

Slide 3 text

● Aurora Serverless v2 ACU 増加速度 検証のアップデート ● Aurora Serverless v2 の 導入検討 のコスト面を紹介 はじめに 3

Slide 4

Slide 4 text

Table of Contents 1. Aurora Serverless v2 の紹介 2. Aurora Serverless v2 の性能 4 3. Aurora Serverless v2 のコスト 4. Aurora Serverless v2 の懸念点

Slide 5

Slide 5 text

1. Aurora Serverless v2 の紹介 5

Slide 6

Slide 6 text

Amazon Aurora 用の オンデマンドオートスケーリング 設定 Aurora Serverless v1 と Amazon Aurora の ハイブリッド Aurora Serverless v2 とは...? 6

Slide 7

Slide 7 text

Aurora Serverless v2 の仕組み 7 db.serverless = Aurora Serverless v2 の DB インスタンスクラス Aurora Capacity Units (ACU) = Serverless v2 スケーリング単位

Slide 8

Slide 8 text

2. Aurora Serverless v2 の性能 8

Slide 9

Slide 9 text

性能検証 in 2022-06-16 9 DeNA Engineer Blog で ACU 増加速度 検証を公開 新サービス Aurora Serverless v2 の検証とその評価

Slide 10

Slide 10 text

無風状態からの ACU 増加 ● 5-15 秒の無反応期間 ACU 増加は二段階 ● 急激(5-7 /sec) ● 緩やか(0.05-0.15 /sec) 性能検証 in 2022-06-16 10

Slide 11

Slide 11 text

無風状態からの ACU 増加 ● 3-4 秒の無反応期間 ACU 増加は二段階 ● 急激(5-7/sec) ● 緩やか(0.05-0.15/sec) 性能検証 in 2023-03-02 11

Slide 12

Slide 12 text

3. Aurora Serverless v2 のコスト 12

Slide 13

Slide 13 text

Aurora Serverless v2 のコストメリットは ケースバイケース コスト戦略の 羅針盤 = Aurora Serverless v2 コスト優位境界面 vs Aurora Provisioned 13

Slide 14

Slide 14 text

vs Aurora Provisioned (db.r5.2xlarge) 14 db.r5.2xlarge、db.serverless (32 ACU) それぞれの月額コスト 約 4.6 倍 (ap-northeast-1)、約 3.3 倍 (us-east-1) のコスト比率

Slide 15

Slide 15 text

db.r5.2xlarge で DB 構築 1日に 25% - 75% で負荷変動 スパイクに備えて 25% 余剰 コストグラフ in db.r5.2xlarge 15

Slide 16

Slide 16 text

オンデマンドなオートスケール ● コスト削減領域 = ■ ● コスト増加領域 = ■ ap-northeast-1 の場合 ■ + ■ > ■ × 4.6 で v2 優位 us-east-1 の場合 ■ + ■ > ■ × 3.3 で v2 優位 コストグラフ in db.serverless 16

Slide 17

Slide 17 text

コストグラフ in db.serverless 17 2状態で理想化 ● Busy = 最大リソース使用 ● Lazy = 最小リソース使用 変数定義 ● offpeak = Lazy(h) / 24h ● loadgap = Busy(%) - Lazy(%) ● buffer = 100% - Busy(%)

Slide 18

Slide 18 text

0 < offpeak(O) < 1、0 < loadgap(L) < 0.8 、buffer(B) = 0.2 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 vs Aurora Provisioned (db.r5.2xlarge in tokyo) 18 L=0.79 L=0.69 L=0.59 L=0.49 L=0.39 L=0.29 L=0.19 L=0.09 L=0.01 O=0.01 O=0.1 O=0.2 O=0.3 O=0.4 O=0.5 O=0.6 O=0.7 O=0.8 O=0.9 O=0.99

Slide 19

Slide 19 text

vs Aurora Provisioned (db.r5.2xlarge in tokyo) 0 < offpeak(O) < 1、0 < loadgap(L) < 1 、buffer(B) = 0 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 19 L=0.99 L=0.89 L=0.79 L=0.69 L=0.59 L=0.49 L=0.39 L=0.29 L=0.19 L=0.09 L=0.01 O=0.01 O=0.1 O=0.2 O=0.3 O=0.4 O=0.5 O=0.6 O=0.7 O=0.8 O=0.9 O=0.99

Slide 20

Slide 20 text

0 < offpeak(O) < 1、0 < loadgap(L) < 0.5、buffer(B) = 0.5 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 vs Aurora Provisioned (db.r5.2xlarge in tokyo) 20 L=0.49 L=0.39 L=0.29 L=0.19 L=0.09 L=0.01 O=0.01 O=0.1 O=0.2 O=0.3 O=0.4 O=0.5 O=0.6 O=0.7 O=0.8 O=0.9 O=0.99

Slide 21

Slide 21 text

0 < offpeak(O) < 1、0 < loadgap(L) < 0.8 、buffer(B) = 0.2 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 vs Aurora Provisioned (db.r5.2xlarge in tokyo) 21 L=0.79 L=0.69 L=0.59 L=0.49 L=0.39 L=0.29 L=0.19 L=0.09 L=0.01 O=0.01 O=0.1 O=0.2 O=0.3 O=0.4 O=0.5 O=0.6 O=0.7 O=0.8 O=0.9 O=0.99

Slide 22

Slide 22 text

0.7 ≦ offpeak(O) < 1、0.49 ≦ loadgap(L) < 0.8、buffer(B) = 0.2 vs Aurora Provisioned (db.r5.2xlarge in tokyo) 22 L = 0.79 -$130.2 $233.9 $597.9 $925.5 L = 0.69 -$452.7 -$134.8 $183.2 $469.3 L = 0.59 -$775.3 -$503.4 -$231.6 $13.1 L = 0.49 -$1097.9 -$872.1 -$646.3 -$443.1 O = 0.7 O = 0.8 O = 0.9 O = 0.99

Slide 23

Slide 23 text

vs Aurora Provisioned (db.r5.2xlarge in tokyo) 0.7 ≦ offpeak(O) < 1、0.49 ≦ loadgap(L) < 0.8、buffer(B) = 0.2 O = 0.9、L ≒ 0.7、B = 0.2 の状態で約 18 % のコスト削減が可能 23 L = 0.79 -$130.2 $233.9 $597.9 $925.5 L = 0.69 -$452.7 -$134.8 $183.2 (約 18%) $469.3 L = 0.59 -$775.3 -$503.4 -$231.6 $13.1 L = 0.49 -$1097.9 -$872.1 -$646.3 -$443.1 O = 0.7 O = 0.8 O = 0.9 O = 0.99

Slide 24

Slide 24 text

O = 0.9、L ≒ 0.7、B = 0.2 ● 8 倍のリクエスト量 ● 144 分のピーク期間 ex) ● ソーシャルゲーム ● オークションサービス ● etc… vs Aurora Provisioned (db.r5.2xlarge in tokyo) 24

Slide 25

Slide 25 text

コスト戦略の羅針盤 25 Aurora Serverless v2 のコストメリットは ケースバイケース offperk、loadgap、buffer の 羅針盤 である程度の判断は付く

Slide 26

Slide 26 text

4. Aurora Serverless v2 の懸念点 26

Slide 27

Slide 27 text

vs Aurora Provisioned (AWS Graviton2) 27 db.r6g (AWS Graviton2) は db.r5 より性能・コスト共に優れる QPS: db.serverless (32 ACU) × α = db.r6g.2xlarge

Slide 28

Slide 28 text

性能検証 (db.serverless vs db.r6g.2xlarge) 28 インスタンスクラス: db.serverless (32 ACU)、db.r6g.2xlarge レコード数: 10^5、10^7、10^9 の計 6 パターンで 10 回平均

Slide 29

Slide 29 text

性能検証 (db.serverless vs db.r6g.2xlarge) $ sysbench … --tables=$TABLES --table-size=$TABLE_SIZE oltp_common prepare $ sysbench … --tables=$TABLES --table-size=$TABLE_SIZE --threads=$THREADS --time=$TIME --db-ps-mode=disable $TESTCASE run 29 Name Instance Class TABLES TABLE_SIZE TESTCASE TIME THREADS provisioned-105 db.r6g.2xlarge 1 10^5 oltp_read_write 180 128 serverless-105 db.serverless (32 ACU) 1 10^5 oltp_read_write 180 128 provisioned-107 db.r6g.2xlarge 1 10^7 oltp_read_write 180 128 serverless-107 db.serverless (32 ACU) 1 10^7 oltp_read_write 180 128 provisioned-109 db.r6g.2xlarge 1 10^9 oltp_read_write 180 128 serverless-109 db.serverless (32 ACU) 1 10^9 oltp_read_write 180 128

Slide 30

Slide 30 text

QPS: 1.09 - 1.27 倍の性能差、α = 1.20 コスト: 約 5.1 倍 (ap-northeast-1)、約 3.7 倍 (us-east-1) vs Aurora Provisioned (db.r6g.2xlarge) 30

Slide 31

Slide 31 text

0 < offpeak(O) < 1、0 < loadgap(L) < 0.8 、buffer(B) = 0.2 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 vs Aurora Provisioned (db.r6g.2xlarge in tokyo) 31 L=0.79 L=0.69 L=0.59 L=0.49 L=0.39 L=0.29 L=0.19 L=0.09 L=0.01 O=0.01 O=0.1 O=0.2 O=0.3 O=0.4 O=0.5 O=0.6 O=0.7 O=0.8 O=0.9 O=0.99

Slide 32

Slide 32 text

0.7 ≦ offpeak(O) < 1、0.49 ≦ loadgap(L) < 0.8、buffer(B) = 0.2 vs Aurora Provisioned (db.r6g.2xlarge in tokyo) 32 L = 0.79 -$463.7 -$26.8 $410.0 $803.2 L = 0.69 -$850.7 -$469.2 -$87.6 $255.7 L = 0.59 -$1237.8 -$911.5 -$585.3 -$291.7 L = 0.49 -$1624.9 -$1353.9 -$1083.0 -$839.1 O = 0.7 O = 0.8 O = 0.9 O = 0.99

Slide 33

Slide 33 text

0.7 ≦ offpeak(O) < 1、0.49 ≦ loadgap(L) < 0.8、buffer(B) = 0.2 O = 0.9、L ≒ 0.7、B = 0.2 の状態で約 10 % のコスト増加 vs Aurora Provisioned (db.r6g.2xlarge in tokyo) 33 L = 0.79 -$463.7 -$26.8 $410.0 $803.2 L = 0.69 -$850.7 -$469.2 -$87.6 (約 10%) $255.7 L = 0.59 -$1237.8 -$911.5 -$585.3 -$291.7 L = 0.49 -$1624.9 -$1353.9 -$1083.0 -$839.1 O = 0.7 O = 0.8 O = 0.9 O = 0.99

Slide 34

Slide 34 text

0.89 ≦ offpeak(O) < 1、0.69 ≦ loadgap(L) ≦ 0.79 、buffer = 0.2 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 vs Aurora Provisioned (db.r6g.2xlarge in tokyo) 34 L=0.79 L=0.78 L=0.77 L=0.76 L=0.75 L=0.74 L=0.73 L=0.72 L=0.71 L=0.70 L=0.69 O=0.89 O=0.90 O=0.91 O=0.92 O=0.93 O=0.94 O=0.95 O=0.96 O=0.97 O=0.98 O=0.99

Slide 35

Slide 35 text

0.89 ≦ offpeak(O) < 1、0.69 ≦ loadgap(L) ≦ 0.79 、buffer = 0.2 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 vs db.r6g.2xlarge + Reserved Instance 35 L=0.79 L=0.78 L=0.77 L=0.76 L=0.75 L=0.74 L=0.73 L=0.72 L=0.71 L=0.70 L=0.69 O=0.89 O=0.90 O=0.91 O=0.92 O=0.93 O=0.94 O=0.95 O=0.96 O=0.97 O=0.98 O=0.99

Slide 36

Slide 36 text

0.89 ≦ offpeak(O) < 1、0.69 ≦ loadgap(L) ≦ 0.79 、buffer = 0.2 ■ = Aurora Provisioned 優位 ■ = Aurora Serverless v2 優位 vs db.r6g.2xlarge + Reserved Instance 36 80 倍 40 倍 27 倍 20 倍 16 倍 13 倍 11 倍 10 倍 9 倍 8 倍 7 倍 158 min 144 min 130 min 115 min 101 min 86 min 72 min 58 min 43 min 29 min 14 min

Slide 37

Slide 37 text

おわりに Aurora Serverless v2 の ACU 無反応期間 が 5-15 秒 から 3-4 秒 に! 2022-06-16 の検証結果より約 70% 短縮!まさしくマネージドサービスによる恩恵! 37 ほぼ全てのケースで db.r6g 系統に軍配があがる... 5.1 倍のベースコストが響いている... コスト削減 “のみ” を目的として導入するのは難しい、今後の価格改定に期待! Aurora Serverless v2 で コスト削減 は かなり厳しい