1.1K Views
December 18, 23
スライド概要
JAWS-UG 名古屋 2023 年 AWS re:Invent の復習 2023/12/18
Qiita や Zenn でいろいろ書いてます。 https://qiita.com/hmatsu47 https://zenn.dev/hmatsu47 MySQL 8.0 の薄い本 : https://github.com/hmatsu47/mysql80_no_usui_hon Aurora MySQL v1 → v3 移行計画 : https://zenn.dev/hmatsu47/books/aurora-mysql3-plan-book
RDS / Aurora 関連アップデート (re:Invent 2023 版) JAWS-UG 名古屋 2023 年 AWS re:Invent の復習 2023/12/18 まつひさ(hmatsu47)
自己紹介…は書く時間がなかったのでスキップ 松久裕保(@hmatsu47) ● https://qiita.com/hmatsu47 2
本日のネタは ● re:Invent 2023 期間の RDS / Aurora 関連アップデート ○ ① RDS for Db2(GA) ○ ② Aurora Limitless Database(申請制プレビュー) ○ ③ Data API(Aurora Serverless v1)と AppSync の連携強化(GA?) ○ ④ RDS / Aurora で Redshift との Zero-ETL 統合(プレビュー) ■ Aurora PostgreSQL(15.4) ■ RDS for MySQL(8.0.28 〜) 3
re:Invent 2023 期間外のアップデートは ● 今回は時間がないので省略 ○ バージョンアップ作業支援(Blue / Green 機能強化など) ○ ベクトル検索(pgvector for RDS / Aurora PostgreSQL) ○ Optimized Reads / Writes のサポート範囲拡大 ○ サポートバージョン・リージョン・インスタンスファミリー ○ その他(Aurora I/O-Optimized、Aurora MySQL ローカル書き込み転送、 Aurora Global Database for PostgreSQL の 書き込み転送サポート etc.) 4
① RDS for Db2 ● RDS が IBM の RDBMS(Db2)に対応 ● 以下、製品情報・ユーザーガイドより ○ https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Db2.html ○ Db2 Standard Edition / Advanced Edition に対応 ○ バージョン 11.5 に対応(2023/11/27 時点 : 11.5.9.0) ○ RDS for Custom 非対応(のはず) 5
② Aurora Limitless Database ● Aurora をシャーディングして Multi-Writer 対応に ○ 榊原さんから発表があった(はずな)のでざっくり ■ ルータ層・シャード層分離 ■ シャードキー指定により シャードを自動分割 ○ 申請制プレビュー中 ■ PostgreSQL 版提供中 ■ MySQL 版も準備中 出典 : https://aws.amazon.com/jp/blogs/aws/join-the-preview-amazon-aurora-limitless-database/ 6
Limitless Database : Time Sync Service に依存 ● re:Invent 期間の半月近く前にひっそり(?)と発表が ○ Amazon Time Sync Service がマイクロ秒単位の正確な時間のサ ポートを開始(2023/11/16) ■ https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-time-sync-service-mi crosecond-accurate-time/ 7
③ Data API(Serverless v1)と AppSync の連携強化 ● Data API : Aurora Serverless v1 に HTTPS アクセス ● AppSync : サーバーレス GraphQL & Pub / Sub API ● JavaScript リゾルバーで SQL を作成することが容易に ○ https://aws.amazon.com/jp/about-aws/whats-new/2023/11/aws-appsync-aurora-cl usters-rds-data-api/ ■ https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-rds-js.html ○ 以前の手順を扱った記事がサーバーワークスのブログにあった ■ https://blog.serverworks.co.jp/appsync-aurora-serverless 8
ところで Aurora Serverless v1 の未来は? ● Aurora MySQL 3(MySQL 8.0 互換)は非対応 ○ Aurora MySQL 2(MySQL 5.7 互換)は来秋 EoL ● Aurora PostgreSQL は 11・13 に対応 ○ PostgreSQL 13 は 3 年前のバージョン ○ しかし Aurora Serverless v1 で対応したのはつい最近(2023/5) ■ https://aws.amazon.com/jp/about-aws/whats-new/2023/05/amazon-aurora-serverless-v1 -postgresql-13/ ■ Aurora Serverless v1 は PostgreSQL only で存続するつもり? 9
④ RDS / Aurora で Redshift との Zero-ETL 統合 ● 複雑な ETL の設定なしにニアリアルタイムデータ連携 ● Aurora PostgreSQL と RDS for MySQL が新たに追加 ○ Aurora PostgreSQL 15.4(オハイオリージョンでのプレビュー版を使用) ○ RDS for MySQL 8.0.28 以降(各リージョンで DB は GA 版、Redshift は プレビュー版(preview_2023 トラック)を使用 ○ Aurora MySQL(3.05.0 〜)は 2023/11 に GA ■ プレビュー時とは対応バージョンが異なる点に注意 10
Aurora MySQL の Zero-ETL 統合では ● enhanced binary log 設定が必須 ○ https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.settin g-up.html ■ Aurora zero-ETL integrations with Amazon Redshift require specific values for the DB cluster parameters that control replication. Specifically, Aurora MySQL requires enhanced binlog (aurora_enhanced_binlog), and Aurora PostgreSQL requires enhanced logical replication (aurora.enhanced_logical_replication). 11
Aurora MySQL enhanced binary log とは ● Aurora での binlog 処理の遅さを改善する機能 ○ https://aws.amazon.com/jp/blogs/database/introducing-amazon-aurora-mysql-enh anced-binary-log-binlog/ ○ Aurora MySQL ではストレージ構造の制約で binlog 処理が遅い ■ ネットワークレイテンシの影響大 ■ 特にクラッシュリカバリ時の復旧が劇遅になることがあった ○ データ領域とは別ストレージ領域に binlog を記録・処理並列化 12
Aurora MySQL enhanced binary log とは ● Aurora での binlog 処理の遅さを改善する機能 ○ https://aws.amazon.com/jp/blogs/database/introducing-amazon-aurora-mysql-enh anced-binary-log-binlog/ ○ Aurora MySQL ではストレージ構造の制約で binlog 処理が遅い ■ ネットワークレイテンシの影響大 ■ 特にクラッシュリカバリ時の復旧が劇遅になることがあった ○ データ領域とは別ストレージ領域に binlog を記録・処理並列化 出典 : 前掲(↑)の URL 13
Aurora MySQL enhanced binary log とは ● Aurora での binlog 処理の遅さを改善する機能 ○ https://aws.amazon.com/jp/blogs/database/introducing-amazon-aurora-mysql-enh anced-binary-log-binlog/ ○ Aurora MySQL ではストレージ構造の制約で binlog 処理が遅い ■ ネットワークレイテンシの影響大 ■ 特にクラッシュリカバリ時の復旧が劇遅になることがあった ○ データ領域とは別ストレージ領域に binlog を記録・処理並列化 ○ Zero-ETL 統合ではストレージ層で Redshift にデータを転送 14
Aurora PostgreSQL の Zero-ETL 統合では ● enhanced logical replication 設定が必須 ○ 前掲リンク ■ Enabling enhanced logical replication (aurora.enhanced_logical_replication) automatically sets the REPLICA IDENTITY parameter to FULL, which means that all column values are written to the write ahead log (WAL). This will increase the IOPS for your source DB cluster. ○ Logical Replication : DB/テーブル単位でレプリケーション ■ Publication / Subscription 形式の論理レプリケーション ○ Publication の際 WAL からの変換処理を効率化する? ■ やはりストレージ層で Redshift へデータ転送? 15
RDS for MySQL の Zero-ETL 統合では ● Optimized Writes 設定は必須ではない ○ Nitro でのオフロード等、支援機能の使用/不使用は不明 ● Zero-ETL 統合時と非統合時で性能比較してみた ○ 同じ binlog 出力設定で比較 ○ 更新系 SQL 文を流して処理時間や負荷を測定 ■ 結果、有意な差はみられず ■ プレビュー版なので具体的な数値は記載しない 16
おまけ ● RDS / Aurora で MySQL・PostgreSQL の延長サポート を発表(2023/7/1) ○ https://aws.amazon.com/jp/about-aws/whats-new/2023/09/amazon-aurora-rds-ext ended-support-mysql-postgresql-databases/ ○ 一部界隈がざわついた ○ 塩漬けダメゼッタイ 17