Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Aurora徹底比較 Provisioned vs Serverless

Amazon Aurora徹底比較 Provisioned vs Serverless

20231023 color is クラウドLT大会vol.5の発表資料です。

Chiharu-Tsuboi

October 23, 2023
Tweet

More Decks by Chiharu-Tsuboi

Other Decks in Technology

Transcript

  1. 自己紹介 名前: 坪井 千春 好きなAWSサービス: Amazon ECS(Amazon Elastic Container Service)

    経歴: ・SIerとしてJAVAメインのアプリ担当を19年 ・直近6年程度AWSを利用 ・2022年4月からアプリを離れてAWSエンジニアとして活動 ・AWS Top Engineers受賞にチャレンジ 2
  2. Amazon Auroraとは? • AWSが開発した独自のRDBエンジンで、RDSのひとつ • 2種類の互換DBを選択可能 • MySQL • PostgreSQL

    • 高機能高性能 • 通常の5倍のパフォーマンス • 最大128TBのストレージ • 最大15台のリードレプリカ • データはマルチAZで保存し高い耐障害性 3
  3. 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
  4. オートスケールの違い • ServerlessではCPU負荷に応じたスケールアップ/ダウンを自動化 • 最小と最大を指定可能 • ServerlessV2はV1から改善 • メモリ量もトリガーにすることが可能 •

    負荷の変化に対するオートスケールの反応が高速化(数十秒→数秒) • オートスケールの単位が細かく(2倍ずつ→0.5ACUずつ) 比較項目 Provisioned Serverless v1 Serverless v2 自動 拡張 CPU 無し あり あり メモリ 無し 無し あり ストレージ あり あり あり 起動/停止 手動 自動 手動 5
  5. 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転送
  6. コストの違い 料金体系 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
  7. コストの違い 負荷のスパイク時 比較項目 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
  8. コストの違い 最小構成時 • 高機能高信頼性な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
  9. 単体性能の違い • ベンチマークツール(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
  10. 機能制限の違い (利用できない機能) < 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が有利
  11. まとめ • Amazon Auroraは3種類の稼働方式 • ユースケース • Provisioned • 安定した性能、高い可用性

    • ServerlessV1 • 使用頻度が低い、断続的、予測不可 • MySQLはサポート期限が2024/10なので注意 • ServerlessV2 • 断続的、予測不可、高い可用性 • サーバーレスも用途次第 • 利用するシステムの特性にあわせて最適な組み合わせを選択しま しょう 13
  12. 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