Slide 1

Slide 1 text

Amazon Aurora徹底比較 Provisioned vs Serverless 2023/10/23 color is クラウドLT大会vol.5 坪井 千春 1

Slide 2

Slide 2 text

自己紹介 名前: 坪井 千春 好きなAWSサービス: Amazon ECS(Amazon Elastic Container Service) 経歴: ・SIerとしてJAVAメインのアプリ担当を19年 ・直近6年程度AWSを利用 ・2022年4月からアプリを離れてAWSエンジニアとして活動 ・AWS Top Engineers受賞にチャレンジ 2

Slide 3

Slide 3 text

Amazon Auroraとは? • AWSが開発した独自のRDBエンジンで、RDSのひとつ • 2種類の互換DBを選択可能 • MySQL • PostgreSQL • 高機能高性能 • 通常の5倍のパフォーマンス • 最大128TBのストレージ • 最大15台のリードレプリカ • データはマルチAZで保存し高い耐障害性 3

Slide 4

Slide 4 text

Amazon Auroraは稼働方式3種類 Provisioned:サーバーを常時稼働させる従来方式 ServerlessV1:負荷に応じて起動停止/スケールアップダウンが自動化 ServerlessV2:V1の性能課題を解決し、より柔軟に使いやすく改善した方式 比較項目 Provisioned Serverless v1 Serverless v2 オートスケール △ ストレージのみ 〇 CPU+ストレージ 〇 CPU+メモリ+ストレージ クラスタ構成 〇 リードレプリカ △ 冗長構成不可だが自動再構成可能 〇 リードレプリカ コスト 〇 db.t4g.medium:0.113$/時間 インスタンスタイプにより時間料金固定 〇 1ACU:0.1$/時間 負荷に応じて可変 △ 1ACU:0.2$/時間 負荷に応じて可変 単体性能 〇 × バージョンが古く遅い △ 何故かレイテンシが少し遅い? 機能制約 〇 × 制約が多い 〇 各観点での評価(個人主観です) 4

Slide 5

Slide 5 text

オートスケールの違い • ServerlessではCPU負荷に応じたスケールアップ/ダウンを自動化 • 最小と最大を指定可能 • ServerlessV2はV1から改善 • メモリ量もトリガーにすることが可能 • 負荷の変化に対するオートスケールの反応が高速化(数十秒→数秒) • オートスケールの単位が細かく(2倍ずつ→0.5ACUずつ) 比較項目 Provisioned Serverless v1 Serverless v2 自動 拡張 CPU 無し あり あり メモリ 無し 無し あり ストレージ あり あり あり 起動/停止 手動 自動 手動 5

Slide 6

Slide 6 text

6 比較項目 Provisioned Serverless v1 Serverless v2 リードレプリカ 最大15台 利用不可 最大15台 グローバルデータベース 利用可 利用不可 利用可 フェイルオーバー 1分未満 10分未満 1分未満 クラスタ構成の違い Provisioned/Serverless v2 • リードレプリカで負荷分散が可能 • MySQLでは書き込み転送も可能 • 障害時にはリーダーをライターに高速フェイル オーバー • ProvisionedとServerless v2を混在可能 Serverless v1 • 冗長構成を取れないが、AZ障害時に別AZで自動で 再構成が可能 自動再構成 アプリ Write/Read Read Write転送

Slide 7

Slide 7 text

コストの違い 料金体系 Provisioned • インスタンスタイプにより固定料金 Serverless • 専用の単位ACUで最小と最大を指定 • 負荷に応じてACUをオートスケーリング • 性能:1ACU = 2GB ※CPUは非公開 • 料金(V1):1ACU = 0.1$/時間 • 料金(V2):1ACU = 0.2$/時間 比較 項目 Provisioned Serverless v1 Serverles s v2 設定 db.t4g.medi um 16ACU 16ACU メモリ 32GB 32GB 32GB 時間 単価 0.627$ 1.6$ 3.2$ (2.55倍) 同じスペックで常時稼働させた場合はProvisionedが低コスト (5.10倍) 7

Slide 8

Slide 8 text

コストの違い 負荷のスパイク時 Provisioned ピーク時のスペックで常時稼働 料金が常時一定 Provisioned Serverless CPU使用率 時 CPU使用率 時 8 Serverless オートスケールするため、 負荷の低い時間帯は低料金

Slide 9

Slide 9 text

コストの違い 負荷のスパイク時 比較項目 Provisioned Serverless v1 Serverless v2 性能設定 db.r6g.xlarge 最小1 最大16ACU 最小1 最大16ACU 時間 単価 22時間分 0.627$ 0.1$×1=0.1$ 0.2$×1=0.2$ 2時間分 0.1$×16=1.6$ 0.2$×16=3.2$ 月額料金 (為替1$=150円) 69,973円/月 25,110円/月 50,220円/月 例えば • 常時稼働する必要がある • 1日のうち2時間程度の高負荷 • 使われるタイミングはユーザ次第で不定 スパイクかつタイミング不定な場合はServerlessが低コスト ※東京リージョン、I/Oやストレージ料金は除外 9

Slide 10

Slide 10 text

コストの違い 最小構成時 • 高機能高信頼性なAuroraを使いたい! • でもアクセス量はそんなに無い • 最低料金で使いたいけどどれがいい? 比較項目 Provisioned Serverless v1 Serverless v2 最小性能 db.t4g.medium 最低0(停止) 最大1.0ACU 最低0.5 最大1.0ACU vCPU 2 0~1?(推測) 0.5~1.0?(推測) メモリ 4GB 0~2GB 1~2GB 料金単価 0.113USD/時間 0~0.1USD/時間 0.1~0.2USD/時間 月額料金 (為替1$=150円) 12,611円/月 0~11,160円/月 11,320~22,320円/月 ※東京リージョン、MySQL8.0、バーストしない場合を想定、I/Oやストレージ料金は除外 さらにRIで半額にも 10 最低金額はServerless コスパはProvisioned

Slide 11

Slide 11 text

単体性能の違い • ベンチマークツール(Sysbench)を利用し性能を実際に測定 • スペックは同じメモリ量で固定化 条件 測定結果 稼働方式 設定 性能 秒間トランザ クション CPU使用率 Provisioned db.r6g.xlarge vCPU:4 メモリ:32GB 603 (+13%) 67% (-14%) ServerlessV2 ACU:16固定 メモリ:32GB 533 81% Provisioned ServerlessV2 • メモリが同じでもProvisionedが13%高性能 • ServerlessV2は内部のインスタンスが旧世代である可能性(r5等) 11

Slide 12

Slide 12 text

機能制限の違い (利用できない機能) < ServerlessV1> • Aurora Global Database • Aurora レプリカ • AWS Identity and Access Management (IAM) データベース認証 • Aurora でのバックトラック < ServerlessV2 > • データベースアクティビティストリーム (DAS) • Aurora PostgreSQL のクラスターキャッシュ管理 <Provisioned> 特有の制限は無し • データベースアクティビティストリーミング • Kerberos 認証 • Performance Insights • RDS Proxy • AWS Management Console でログを表示する 12 公式ドキュメントより https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html 最新機能はProvisionedが有利

Slide 13

Slide 13 text

まとめ • Amazon Auroraは3種類の稼働方式 • ユースケース • Provisioned • 安定した性能、高い可用性 • ServerlessV1 • 使用頻度が低い、断続的、予測不可 • MySQLはサポート期限が2024/10なので注意 • ServerlessV2 • 断続的、予測不可、高い可用性 • サーバーレスも用途次第 • 利用するシステムの特性にあわせて最適な組み合わせを選択しま しょう 13

Slide 14

Slide 14 text

詳細 今回発表した内容の詳細は下記の記事で紹介しております。 Qiita ■Amazon Aurora Serverless v2とそれ以外を比較(v1/v2/Provisioned) https://qiita.com/Chiharu_Tsuboi/items/3fc311ad34e6fd3dedb7 ■Amazon Aurora Serverless v2とそれ以外を実測して比較(v1/v2/Provisioned) https://qiita.com/Chiharu_Tsuboi/items/eff226c20a48be5fb7af 14

Slide 15

Slide 15 text

ご清聴ありがとうございました 15

Slide 16

Slide 16 text

APPENDIX:サポート期限 • ProvisionedはOSSの最新に追従 • Serverless v1は更新されない雰囲気 • Serverless v2はProvisionedに遅れてサポート サポートバージョ ン Provisioned Serverless v1 Serverless v2 期限 MySQL 5.7 〇 〇 × 2024年10月31日 MySQL 8.0 〇 × 〇 現状期限無し PostgreSQL 11 〇 〇 × 2024年1月31日 PostgreSQL 12 〇 × × 2025年2月28日 PostgreSQL 13 〇 〇 〇 2026年1月31日 PostgreSQL 14 〇 × 〇 2027年1月31日 PostgreSQL 15 〇 × 〇 2028年1月31日 公式ドキュメント:Amazon Aurora メジャーバージョンが利用可能な期間 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.VersionPolicy.html 16