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

20220928 RDS Update

20220928 RDS Update

Hidehiko ASAHI

September 28, 2022
Tweet

More Decks by Hidehiko ASAHI

Other Decks in Technology

Transcript

  1. RDB の気になるアップデートと、 新しい Amazon RDS のマルチ AZ 配置オプション (RDS Multi-AZ

    Cluster)の使いどころ 株式会社野村総合研究所 保険ソリューション事業本部 保険デジタルアーキテクチャ推進部 朝日英彦 2022年9月28日
  2. Copyright© Nomura Research Institute, Ltd. All rights reserved. 1 ◼

    朝日 英彦 ⚫ 野村総合研究所 保険デジタルアーキテクチャ推進部 ⚫ 2022 APN AWS Top Engineer(Database) ◼ キャリア ⚫ 金融システムの大規模データベースのアーキテクチャデザイン・エンハンス ⚫ 保険系のシステムのアーキテクチャデザイン ◼ 資格(データベース関連) ⚫ AWS Certified Database Specialty (2022 APN AWS ALL Certified Engineer) ⚫ テクニカルエンジニア(データベース) ⚫ Microsoft Certified Database Administrator ⚫ Oracle Master Platinum 10g Database ⚫ Oracle Database Cloud Administrator Certified Professional ◼ 好きなAWSサービス ⚫ RDS Performance Insights 自己紹介
  3. Copyright© Nomura Research Institute, Ltd. All rights reserved. 4 ◼

    (2022/3/15) RDSの新規オプション(Multi-AZ DB Cluster)がGA@東京 ⚫ 最大 2 倍高速のトランザクションコミットレイテンシーを備えた新しい Amazon RDS マルチ AZ オプション ⚫ 2022/7/20 AWS BackupにMulti-AZ DB Clusterが対応 ◼ (2022/4/21) Aurora Serverless v2 がGA ⚫ データベースのワークロードを瞬時に数十万ものトランザクションにスケールが可能 ◼ (2022/4/26~28) MySQL, PostgreSQL, MariaDBにおいてM6i、R6iインスタンスがサポート ⚫ 最大 128 vCPU と 1,024 GiB RAM の新しいインスタンスサイズを持つ インスタンスがサポート ⚫ 4/6にOracle, 8/15にSQL Serverでもサポート ◼ (2022/4/29) IPv6のサポート(Auroraは 2022/8/17) ⚫ 新規および既存のVPC で Internet Protocol version 6 (IPv6) アドレスを使用することが可能に ◼ (2022/5/3) Performance Insightの拡充 ⚫ 任意の期間でのメトリクス表示が可能に。~24カ月のデータ保持が可能に(2022/7/6~) ◼ (2022/6/1) RDS から暗号化されたAmazon SNS トピックへのイベント発行が可能に ◼ (2022/8/22) RDSとEC2のワンクリック接続が可能に ◼ (2022/8/23) Amazon RDS for Oracle におけるマネージド機能の拡充 ⚫ マネージド型 Oracle Data Guard Switchover およびレプリカの自動バックアップのサポートを開始 ◼ (2022/9/6) Amazon RDS向けの AWS Controllers for Kubernetes (ACK)がGA ◼ (2022/9/14) RDS for Oracleにてm5d,r5dでインスタンスストアをSmart Flashとして利用可能に ◼ (2022/9/18) SQL Server向けのRDS Proxyが利用可能に 気になるデータベース関連のアップデート(RDBMSを中心に) RDS、Aurora のアップデートサマリ ・新規オプションやサーバレスの拡充 ・Auroraだけでなく、Oracle や SQL Serverへの機能追加も多数
  4. Copyright© Nomura Research Institute, Ltd. All rights reserved. 5 ◼

    (2022/4/7) RBAC のサポートを発表 ◼ (2022/4/19) 監査ログの新たな機能強化を発表 ⚫ Amazon CloudWatch を新しいログの送信先として追加することが可能に ◼ (2022/4/25) 大阪リージョンで RA3 インスタンスが利用可能に ◼ (2022/5/17) 新しいスナップショット分離レベルのサポートを開始 ⚫ プロビジョニングされたクラスターのデフォルトオプションとして SERIALIZABLE ⚫ サーバーレスデータウェアハウスのデフォルトのオプションとして SNAPSHOT ISOLATION ⚫ CREATE または ALTER DATABASE ISOLATION LEVEL SQL コマンドを使用して変更が可能 ◼ (2022/7/12) Amazon Redshift Serverless がGA ◼ (2022/7/12) Amazon Redshift の自動マテリアライズドビューの一般提供が開始 ⚫ 機械学習を使用してワークロードを継続的にモニタリングし、新しいマテリアライズドビューがワークロード に有効かどうかを判断 ◼ (2022/7/12) 行レベルセキュリティ (RLS) のサポートを開始 ⚫ テーブル内の行への詳細なアクセスの制御が可能に ◼ (2022/7/14) クラスターサイズ変更のパフォーマンスとクラスター復元の柔軟性を向上(RA3のみ) ⚫ クラスタサイズ変更時でも数分でクエリが処理可能に ⚫ 暗号化されていないスナップショットから暗号化されたクラスターの復元や暗号化キーの変更が可能に ◼ (2022/9/19) System Table/Views(STL/SVL)が7日間アクセス可能に 気になるデータベース関連のアップデート(RDBMSを中心に) Redshift のアップデートサマリ ・サーバレス ・RA3のインスタンスクラスや運用機能 の細かい追加が多数
  5. Copyright© Nomura Research Institute, Ltd. All rights reserved. 7 ◼

    (2022/3/15) RDSの新規オプション(Multi-AZ DB Cluster)がGA@東京 ⚫ 最大 2 倍高速のトランザクションコミットレイテンシーを備えた新しい Amazon RDS マルチ AZ オプション ⚫ 2022/7/20 AWS BackupにMulti-AZ DB Clusterが対応 RDS Multi-AZ DB Clusterの使いどころ RDS Multi-AZ DB Cluster とは? https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html • 2 つの読み取り可能なスタンバイ DB インスタンスを持つ Amazon RDS の高可用性の配置モード • 同じAWSのリージョンに 3 つの別々のアベイラビリティー ゾーンに 1 つのライター DB インスタンスと 2 つのリー ダー DB インスタンスを持つ • マルチ AZ DB インスタンスの配置と比較して、高可用性、 読み取りワークロードの容量の増加、および書き込みレイ テンシーの低減が提供される
  6. Copyright© Nomura Research Institute, Ltd. All rights reserved. 8 今日の目的

    RDS Multi-AZ DB Clusterの使いどころ ⚫RDS Multi-AZ Clusterの特徴や制限を理解する ⚫ユースケースに対して適切にRDSのオプションが選択できるようになる • Single, Multi-AZ, Multi-AZ Cluster, Aurora ⚫注意 • あくまでもベンチマーク結果を元にした個人の見解となります • システムの採用にあたってはそれぞれのシステム・負荷特性に応じての確認をお願いします
  7. Copyright© Nomura Research Institute, Ltd. All rights reserved. 9 (従来の)RDS

    Multi-AZ のアーキテクチャ概要 RDS Multi-AZ DB Clusterの使いどころ ◼ コミットの動作 ⚫ プライマリ→スタンバイへのデータ同期を EBS の同期レプリケーションで実施 (スタンバイインスタンスは読み取り不可(別途非同期のリードレプリカを作成することは可能)) https://pages.awscloud.com/rs/112-TZM-766/images/01_RDS_Architecture.pdf 読み取りはできない
  8. Copyright© Nomura Research Institute, Ltd. All rights reserved. 10 RDS

    Multi-AZ Clusterの特徴 RDS Multi-AZ DB Clusterの使いどころ ✓ 同等の x86 ベースのインスタンスと比べて、vCPU あたりのコストパフォーマンスが最大 40% 改善され、ロー カルストレージ (GB) が 50% 増加 コミットレイテンシーの改善 ✓ 従来型のRDS Multi-AZではすべての変更をレプリケートしていたが、トランザクションログのみをレプリケー ト 最適化されたレプリケーション ✓ Reader エンドポイントで均等にアプリケーション負荷分散が可能 読み取り可能なスタンバイインスタンス ✓ 従来型のRDS Multi-AZでは60秒だったのが、 35 秒 (これに加えて保留中のトランザクションログを適用 する時間) という速さでフェイルオーバー フェイルオーバーの高速化 https://aws.amazon.com/jp/blogs/news/amazon-rds-multi-az-db-cluster/
  9. Copyright© Nomura Research Institute, Ltd. All rights reserved. 11 RDS

    Multi-AZ DB Clusterのアーキテクチャ概要(コミットレイテンシーの改善) RDS Multi-AZ DB Clusterの使いどころ ◼ コミットの動作 ⚫ 少なくとも一つのスタンバイ側のSSD上への書き込みが完了する事 https://pages.awscloud.com/rs/112-TZM-766/images/2022_0408-DAT_Slide-Deck.pdf (日本語化は筆者にて実施) 少なくとも一つのスタンバイへのSSDへの書き込み が確認された後に、プライマリへコミットが返る データは非同期は非同期でEBSに移動され、 耐久性が高められる メモリキャッシュまたはAmazon EBSから 読み込みが行われる
  10. Copyright© Nomura Research Institute, Ltd. All rights reserved. 12 RDS

    の比較 RDS Multi-AZ DB Clusterの使いどころ ◼ あ https://aws.amazon.com/jp/rds/features/multi-az/ RDS Single RDS Multi-AZ (one standby) RDS Multi-AZ Cluster (two readable standbys) DBエンジン MySQL, PostgreSQL, MariaDB, Oracle, SQL Server MySQL, PostgreSQL, MariaDB, Oracle, SQL Server MySQL, PostgreSQL 追加の読み取り容量 • なし: 読み取り容量はプライマリに 制限されています • なし: スタンバイ DB インスタンス は、高可用性のためのパッシブ フェイルオーバーターゲットにす ぎません • 2 つのスタンバイ DB インスタンス がフェイルオーバーターゲットと して機能し、読み取りトラフィッ クを処理します • 読み取り容量は、プライマリから の書き込みトランザクションの オーバーヘッドによって決定され ます トランザクションコミットの 低いレイテンシー (より高いス ループット) • 1 つのスタンバイを備えた Amazon RDS マルチ AZ と比較し て、最大 2 倍高速なトランザク ションコミット 自動フェイルオーバー期間 • 使用不可: ユーザー、ユーザーが開 始したポイントインタイム復元オ ペレーションが必要になります。 • このオペレーションの完了には数 時間かかる場合があります • 最新の復元可能時間 (通常は直近 5 分以内) より後に発生したデータ更 新は利用できなくなります • 新しいプライマリが利用可能にな り、60 秒という速さで新しいワー クロードを処理できます • フェイルオーバー時間は書き込み スループットに依存しません • 新しいプライマリは、通常 35 秒未 満で新しいワークロードを提供す るために利用できます • フェイルオーバー時間はレプリカ ラグの長さに依存します AZ の停止に対するより高い回 復力 • なし: AZ に障害が発生した場合、 リスクデータの損失とフェイル オーバー時間 • AZ に障害が発生した場合、ワーク ロードは自動的に最新のスタンバ イにフェイルオーバーします • 障害が発生した場合、残りの 2 つ のスタンバイの 1 つが引き継ぎ、 プライマリからのワークロード (書 き込み) を処理します トランザクションコミットの より低いジッター • ジッターに関する最適化なし • 書き込みパスの障害の影響を受け やすい • 3 個中 2 個の書き込みクォーラムを 使用します: 最大 1 つの障害のある 書き込みパスの影響を受けにくい
  11. Copyright© Nomura Research Institute, Ltd. All rights reserved. 14 Amazon

    Aurora RDS Multi-AZ DB Clusterの使いどころ https://pages.awscloud.com/rs/112-TZM-766/images/D2-05.pdf
  12. Copyright© Nomura Research Institute, Ltd. All rights reserved. 15 Aurora

    のアーキテクチャ(おさらい) RDS Multi-AZ DB Clusterの使いどころ ◼ Database InstanceとStorage Nodeが切り離されており、 Storage Nodeは共有ストレージボリュームとして各AZに2 ノードずつ存在 https://pages.awscloud.com/rs/112-TZM-766/images/D2-05.pdf Aurora におけるI/Oの流れ
  13. Copyright© Nomura Research Institute, Ltd. All rights reserved. 16 Auroraの使いどころ(おさらい)

    RDS Multi-AZ DB Clusterの使いどころ ◼ Auroraを利用するか、RDSを利用するか? ① Auroraを使えないケース • DBエンジン • エンジンバージョン • ストレージエンジン(MySQLでMyISAMを利用したい場合) • インスタンスタイプ ② (Auroraも使えるけど)RDSを使うべきケース • DBエンジンの新機能をいち早く使いたい • 適用されないパラメーターが重要 • 安くしたい • 結果的に安くならないパターンもあるので要注意 https://dev.classmethod.jp/articles/developers-io-2019-in-osaka-aurora-or-rds/ ① ② RDS Multi-AZ ClusterはDBエンジンもバージョンも制限さ れているし、インスタンスタイプやパラメータ制限(※) もある 結局どこに使えば良いのだろう? ※RDS Multi-AZ Clusterの制限は末尾に付してます
  14. Copyright© Nomura Research Institute, Ltd. All rights reserved. 17 RDS、Aurora

    の比較 RDS Multi-AZ DB RDS Multi-AZ Cluster RDS Aurora DBエンジン MySQL, PostgreSQL, MariaDB, Oracle, SQL Server MySQL, PostgreSQL MySQL, PostgreSQL 性能 基準 1 つのスタンバイを備えた Amazon RDS マルチ AZ と比較して、最大 2 倍高速なトランザクションコミット PostgreSQL:10倍安定 ピークスループット 1.6倍 多数のクライアント 2.9倍 バージョン MySQL 5.6(非推奨), 5.7, 8.0 PostgreSQL 9.6, 10, 11, 12, 13, 14 MySQL 8.0.28 PostgreSQL 13.4、13.7 MySQL 5.6, 5.7, 8.0 PostgreSQL 10, 11, 12, 13, 14 利用可能vCPU数 ~128vCPU ~96vCPU ~128vCPU 料金 低(少ないVCPU、gp2)~高(多数の VCPU、io1)までのレンジで選択が可 能 中(最低でもr6gd.largeインスタンス、 io1が必要となる)~高(大規模インスタ ンス、io1)となり高めになる 低(少ないVCPU)~高(多数のVCPU)ま でのレンジで選択が可能 Auroraストレージはリクエストが少な ければ費用がかからない ストレージ 概要 gp2、io1等用途に合った選択が可能 io1のみ Aurora専用ストレージ サイズ ~64TiB (SQL Serverは20GiB~16TiB) ~64TiB ~128TiB スケーリング 自動 手動 自動 縮小 不可 不可 可能 フェイルオーバ 60-120秒 35秒+レプリカラグ 30秒程度 リードレプ リカ 数 5(非同期) 2(非同期)、追加不可 15(非同期) クロスリージョン 可能 (MS SQL Serverは不可) 不可 可能 その他機能 ― 未だ制限が多い、、 ・グローバルデータベース ・マルチマスター(MySQLのみ) ・アクティビティストリーム ・バックトラック ・クローン ・サーバレス RDS Multi-AZ DB Clusterの使いどころ ユーザマニュアル等より筆者にて編集
  15. Copyright© Nomura Research Institute, Ltd. All rights reserved. 18 性能検証(前提事項)

    RDS Multi-AZ DB Clusterの使いどころ ◼ RDBMSエンジン ⚫ PostgreSQL 13.4 ◼ 負荷ツール ⚫ pgbench(fillfactor 90、scale 10000、10分間、TPC-Bデフォルト) ◼ 対象のインスタンスタイプ ⚫ RDS Multi-AZ r6d.2xlarge(16vCPU) (リードレプリカ なし) ⚫ RDS Multi-AZ Cluster r6gd.2xlarge(16vCPU) (リードレプリカ 2(デフォルト)) ⚫ Aurora r6d.2xlarge(16vCPU) (リードレプリカ 1) ◼ Client-Serverは同一AZ ◼ 全てWriter-Nodeへの接続 ◼ RDSのストレージは io1 500GB(10,000 IOPS)、Auroraは 500GB(Auroraストレージ) ◼ 有効:拡張モニタリング、Performance Insight、暗号化、拡張モニタリング、自動バックアップ ◼ 無効:CloudWatch Logsへのログ転送 ◼ パラメータグループはデフォルト
  16. Copyright© Nomura Research Institute, Ltd. All rights reserved. 19 性能検証結果

    RDS Multi-AZ DB Clusterの使いどころ ◼ レイテンシには大きな差は出なかったが、TPS は並列実行数が少ないと10~20%程度 Multi-AZ Clusterが良い性能を出しているよ うに見受けられる ◼ AuroraではCPU Utilizationが100%近くま で上がっているのに対し、RDSはCPU自体の 利用率は~70%程度にとどまり、ストレージの IOPSがio1で設定した10,000IOPSで頭打 ちになっている様子が見受けられた (3,000IOPSにすると3-4割程度性能が 劣化することが確認できた)
  17. Copyright© Nomura Research Institute, Ltd. All rights reserved. 20 フェイルオーバ時間検証

    RDS Multi-AZ DB Clusterの使いどころ ◼ RDS Multi-AZ ClusterとAuroraにおいて、それぞれ手動でフェイルオーバを行い、Writer Node への書き込みが出来なくなってから再度書き込みができるまでの時間を計測し、フェイルオーバ時間の 測定を行った ⚫ PostgreSQL ⚫ 300GB ストレージ ⚫ ほぼ無風状態 ⚫ 2回ずつ実施した平均 ◼ 無風状態のため参考程度となるが、Multi-AZ Clusterはインスタンスサイズに影響されづらい傾向が 確認できた。(AuroraはCluster Cache Managementの仕組みで性能が落ちにくいようにして いる(※)) vCPU数 Multi-AZ r6d Multi-AZ Cluster r6gd Aurora r6d 2コア(large) 約46秒 約29秒 約10秒 8コア(2xlarge) 約40秒 約26秒 約48秒 (※)https://pages.awscloud.com/rs/112-TZM-766/images/D2-05.pdf
  18. Copyright© Nomura Research Institute, Ltd. All rights reserved. 21 まとめ(RDS

    Multi-AZ DB Clusterの使いどころ) RDS Multi-AZ DB Clusterの使いどころ ◼ RDS Multi-AZ DB Clusterの特徴として記載されている、コミットレイテンシ(性能面)とフェイル オーバ時間について確認を行った。 ◼ 同時実行数が比較的少ない場合(~200)においてはストレージ性能を上げていくことでMulti- AZ DB ClusterはAuroraよりも高いスループットが期待できることが確認できた。 ◼ Multi-AZ DB Clusterのフェイルオーバの時間は従来のRDSよりも高速に行われ、Auroraとそん色 ない短時間でのフェイルオーバが可能であることが確認できた。 ◼ AWSで改めてRDBを作成する、もしくはRDBへの移行を検討する際、同時接続数が少ないがその 中でスループットが必要となる場合にRDS Multi-AZ DB Clusterが選択肢に入ってくると考えてい る。 ◼ 今回は傾向を確認するためにpgbenchを利用したが、実際に利用を検討する際にはワークロード、 運用、そしてコストを考慮したテストを実施した上での選択が必要となる ⚫ Reader Nodeへの読み取り負荷を分散した場合や、高負荷状態でのフェイルオーバ等、今後機会があれ ば確認していきたい。
  19. Copyright© Nomura Research Institute, Ltd. All rights reserved. 22 RDS

    Multi-AZ Clusterの制限 項目 制限内容 バージョン MySQL バージョン 8.0.28 のみ PostgreSQL バージョン 13.4、13.7 のみ リージョン 米国東部(オハイオ)、米国東部(バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (シンガポール)、アジアパシフィック(シドニー)、 アジアパシフィック (東京)、欧州 (アイルランド) ストレージ プロビジョンド IOPS ストレージのみ 変更 シングル AZ DB インスタンス配置やマルチ AZ DB インスタンス配置をマルチ AZ DB クラスターに変更できない(シングル AZ DB インスタン ス配置またはマルチ AZ DB インスタンス配置のスナップショットをマルチ AZ DB クラスターに復元することは可能) マルチ AZ DB クラスタースナップショットはマルチ AZ DB インスタンス配置やシングル AZ 配置に復元することはできない マルチ AZ DB クラスターは DB インスタンスレベルでの変更をサポートされない 利用できない 機能 Amazon RDS プロキシ AWS Backup(2022/7より利用可能に) AWS CloudFormation マルチ AZ DB クラスタースナップショットデータを Amazon S3 バケットにエクスポートする、スナップショットのコピー IAM DB authentication Kerberos認証 AWS Secrets Manager との統合、ポートの変更(マルチ AZ DB クラスターを特定の時点に復元し、別のポートを指定することは可能) オプショングループ (追加の)リードレプリカ リザーブド DB インスタンス マルチ AZ DB クラスタースナップショットを Amazon S3 バケットから復元する 割り当てられる最大ストレージを設定してストレージのオートスケーリング(手動スケーリングは可能) DBクラスターの停止とスタート MySQLの制限 外部ターゲットデータベースへの複製はサポートされない 次のシステムストアドプロシージャのみがサポートされる(mysql.rds_rotate_general_log、mysql.rds_rotate_slow_log、 mysql.rds_show_configuration) PostgreSQL の制限 次の PostgreSQL エクステンションはサポートされない(aws_s3、pg_transport、 およびpglogical) アウトバウンドネットワークアクセスでのカスタム DNS サーバーの使用をサポートされない 論理的な複製はサポートされない https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html#multi-az-db-clusters-concepts.Limitations 付録:RDS Multi-AZ Clusterの制限 RDS Multi-AZ DB Clusterの使いどころ