rights reserved. 本資料では2022年3⽉3⽇時点のサービス内容および価格についてご説明しています。最 新の情報はAWS公式ウェブサイト(http://aws.amazon.com/ )にてご確認ください。 資料作成には⼗分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価 格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。 内容についての注意点 AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided. 価格は税抜表記となっています。⽇本居住者のお客様が東京リージョンを使⽤する場合、 別途消費税をご請求させていただきます。
rights reserved. Aurora distributed storage provides: So the database can process your transactions and SQL queries without impact from storage processing activities Amazon aurora Redo log processing Instant crash recovery Fault-tolerant and self-healing storage Fast database cloning Database backtrack Database snapshots Continuous backups and point-in-time restore Storage Auto Scaling independent of compute Read and write scalability Warm cache on database restart Low latency replication
rights reserved. Amazon Aurora MySQL delivers up to 5x the throughput of MySQL 0 50,000 100,000 150,000 200,000 250,000 MySQL 5.7 MySQL 8.0 Aurora 5.7 0 200,000 400,000 600,000 800,000 1,000,000 MySQL 5.7 MySQL 8.0 Aurora 5.7 Write throughput Read throughput Using sysbench read and write workloads on R5.16XL Write and read throughput
rights reserved. Log Structured Storage • 追記型のストレージ・システム – ログの様に常に末尾にデータを追加していくだけ – データが書き込まれているブロックを上書いたりはしない – ガベージコレクションによりデータを効率的に格納する • シーケンシャルに読み出すことが出来る • 常に最新のデータが末尾にある • これらの特徴によりS3への継続バックアップや⾼速なリカバリ、書き込 み性能の向上を実現 空きスペース data data 先頭 data data data 新規データは末尾に追記される ↓
rights reserved. ディスク障害検知と修復 • 2つのコピーに障害が起こっても、読み書きに影響は無い • 3つのコピーに障害が発⽣しても読み込みは可能 • ⾃動検知、修復 SQL Transaction AZ 1 AZ 2 AZ 3 Caching SQL Transactio n AZ 1 AZ 2 AZ 3 Caching 読み書き可能 読み込み可能
rights reserved. IO traffic in RDS MySQL BINLO G DATA DOUBLE-WRITE LOG FRM FILES T Y P E O F W R I T E MYSQL WITH STANDBY EBSに書き込み – EBSがミラーへ複製し、両⽅終了後ack スタンバイインスタンスへ書き込みを伝播 スタンバイインスタンス側のEBSに書き込み IO FLOW ステップ1, 3, 5はシーケンシャルかつ同期 それによりレイテンシーもパフォーマンスのゆらぎも増加 各ユーザー操作には様々な書き込みタイプがある 書き込み破損を避けるためにデータブロックを2回書く必要性 OBSERVATIONS 780K トランザクション 100万トランザクション当たり7,388K I/Os (ミラー, スタン バイを除く) 平均1トランザクション当たり7.4 I/Os PERFORMANCE 30 minute SysBench write-only workload, 100 GB data set, RDS SingleAZ, 30K PIOPS EBS mirror EBS mirror AZ 1 AZ 2 Amazon S3 EBS Amazon Elastic Block Store (EBS) Primary instance Standby instance 1 2 3 4 5
rights reserved. IO traffic in Aurora (データベース) AZ 1 AZ 3 Primary instance AZ 2 Replica instance AMAZON AURORA ASYNC 4/6 QUORUM DISTRIBUTED WRITES BINLOG DATA DOUBLE-WRITE LOG FRM FILES T Y P E O F W R I T E 30 minute SysBench write-only workload, 100 GB data set IO FLOW REDOログレコードのみ書き込む; 全てのステップは⾮同期 データブロックは書かない(チェックポイント, キャッシュ置 換時) 6倍のログ書き込みだが, 1/9のネットワークトラフィック ネットワークとストレージのレイテンシー異常時の耐性 OBSERVATIONS 27,378K トランザクション 35X MORE 100万トランザクション当たり950K I/Os 7.7X LESS (6X amplification) PERFORMANCE REDOログレコードをまとめる – 完全にLSN順に並ぶ 適切なセグメントに分割する – 部分ごとに並ぶ ストレージノードへまとめて書き込む
rights reserved. I/Oを減らす ネットワークパケットを最⼩限にする 結果をキャッシュしておく データベースエンジンをオフロードする DO LESS WORK ⾮同期で処理する レイテンシーの通り道を減らす ロックフリーなデータ構造を使う バッチ操作を同時に⾏う BE MORE EFFICIENT データベースは I/O が全て ネットワーク接続したストレージは PACKETS/SECOND が全て ⾼スループットの処理に コンテキストスイッチ は許されない これらの結果をどう達成したか︖
rights reserved. • アクティブなスレッドに複数のコネクションを収容 • Kernel空間の epoll() がラッチフリーキューにコネクションをアサイン • スレッドプールの数は動的に調整される • r3.8xlインスタンスのAmazon Auroraで5,000同時コネクションを扱える • Standard MySQL – コネクション毎に1 • コネクション数に応じてスケールしない • MySQL EE – スレッドプール毎にコネクションをアサイン • しきい値を慎重に設定する必要がある CLIENT CONNECTION CLIENT CONNECTION LATCH FREE TASK QUEUE epoll() MYSQL THREAD MODEL AURORA THREAD MODEL Adaptive Thread Pool
rights reserved. ⾼速でより予測可能なフェイルオーバー時間 App running Failure detection DNS propagation Recovery Recovery DB failure MYSQL App running Failure detection DNS propagation Recovery DB failure AURORA WITH MARIADB DRIVER 1 5 - 2 0 s e c 3 - 2 0 s e c
rights reserved. DB Parameter GroupとDB Cluster Parameter Group • RDS for MySQLではDB Parameter Groupのみ • Auroraでは設定の適⽤範囲毎にグループを設定 – DB Cluster Parameter Group: Auroraクラスタ内全ノードで共通 – DB Parameter Group: 各Auroraノード個別の設定
rights reserved. クラスタエンドポイント • フェイルオーバが発 ⽣すると、Aurora ノードの昇格が⾏わ れ、クラスタエンド ポイントの指し先が 変わる Aurora Writer Aurora Writer Availability zone A Availability zone B Write クラスタエンドポイント
rights reserved. Writer / Readerノードの識別 • innodb_read_onlyを参照 – SHOW GLOBAL VARIABLES LIKE 'innodb_read_onlyʼ; – OFF: Writer – ON: Reader • アプリケーションやドライバでAuroraノードに 対する負荷分散やフェイルオーバーロジックの 実装に利⽤可能 – メトリクススキーマのSEESION_IDも利⽤可能
rights reserved. SQLによるフェイルオーバのテスト SQLによりノード・ディスク・ネットワーク障害をシミュレーション可能 • データベースノードのクラッシュをシミュレート: ALTER SYSTEM CRASH [{INSTANCE | DISPATCHER | NODE}] • レプリケーション障害をシミュレート: ALTER SYSTEM SIMULATE percentage_of_failure PERCENT READ REPLICA FAILURE [ TO ALL | TO "replica name" ] FOR INTERVAL quantity [ YEAR | QUARTER | MONTH | WEEK| DAY | HOUR | MINUTE | SECOND ]; • 他にも – ディスク障害をシミュレート – ディスクコンジェスションをシミュレート
rights reserved. RDS for MySQLからマイグレーション • マネージメントコンソールから数クリックでAmazon Aurora へ移⾏可能 – RDS for MySQLのスナップショットからAmazon Auroraへマイグレーション 可能 – RDS for MySQLは5.6を使う必要がある
rights reserved. Data Export and Import guide • Data Export and Import guideを公開しています – https://d0.awsstatic.com/product- marketing/Aurora/Aurora_Export_Import_Best_Practices_v1- 3.pdf
rights reserved. Amazon Web Services JDBC Driver for MySQL • MySQL Connector/Jをベースとしたドライバ • 現在提供している機能 – Fast failover – Auto discovery • 開発やロードマップ情報の提供などはGitHub上 で⾏われている – https://awslabs.github.io/aws-mysql-jdbc/ – https://github.com/awslabs/aws-mysql-jdbc – https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserG uide/Aurora.Connecting.html
rights reserved. MariaDB Connector/J • Version3.0.3よりAurora特有の機能が廃⽌されたため、今後はAmazon Web Services JDBC Driver for MySQLの利⽤を推薦 – Version 3.0.3 of the MariaDB Connector/J utility drops support for Aurora DB clusters, so we highly recommend moving to the AWS JDBC Driver for MySQL. The AWS JDBC Driver for MySQL offers improved failover speed for Aurora MySQL DB clusters by caching DNS connections for quick use. When using the MariaDB Connector/J utility, use the jdbc:mariadb:aurora// in your connection string – If you are using an Aurora Serverless v1 DB cluster, the failover benefits don't apply, but you can disable the feature by setting the failureDetectionEnabled parameter to false. To review a complete list of configuration options, see the AWS JDBC Driver for MySQL GitHub repository • MariaDB Connector/J 1.2.0から含まれている – https://mariadb.com/kb/en/mariadb/mariadb-connector-j-120-release-notes/ – リリースノートには明確にAuroraの記述は無いがドキュメント中に記載 • https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/ • https://mariadb.com/kb/en/mariadb/failover-and-high-availability-with-mariadb-connector-j/#specifics-for-amazon-aurora – 2015.09 Amazon Linuxよりrpmを提供 • 現在の提供機能 – Fast failover – Auto node discovery
rights reserved. 内部バージョンとメモリ使⽤量の確認 • Amazon Auroraのバージョンを確認可能なクエリの追加 – select AURORA_VERSION(); – select @@aurora_version; – show variables like '%version’; – 最新バージョンはforumのメンテナンススレッドに掲載 • Lock Managerのメモリ使⽤量 – show global status where variable_name in (‘aurora_lockmgr_memory_used’); – select * from INFORMATION_SCHEMA.GLOBAL_STATUS where variable_name in ( 'aurora_lockmgr_memory_used’);
Arm Neoverse N1 cores • Graviton2, fully compatible with all existing Aurora features - No porting needed • Up to 35% better performance AWS Graviton2 Powerful and efficient, modern applications
N 6 4 B I T A R M - B A S E D E C 2 I N S T A N C E S 12,212 21,084 29,838 38,723 46,957 51,805 52,139 12,098 21,330 30,792 41,490 51,992 59,041 60,392 10,000 30,000 50,000 70,000 90,000 110,000 1 2 4 8 16 32 64 New orders per minute Number of warehouses Aurora MySQL 5.7 Graviton2 vs. Intel HammerDB performance on r6g.large Intel Graviton 2 +15.8 %
rights reserved. Dynamic resize • Aurora MySQL 2.09/1.23以降より対応 – データベース内のテーブルスペースなどを削除した場合、未使⽤スペースの再利⽤は ⾏われていたが、storage spaceに空き領域ができた場合、⾮同期で空き領域を回収 し課⾦対象となるストレージの使⽤量を削減 – ⼀時的にテーブルを⽤意しデータを挿⼊後処理をしてdropする、パーティショニン グを⾏っており、不要になったパーティションを削除するなどのオペレーションを ⾏っているケースではStorage利⽤料の最適化が期待できる https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Performance.html#Aurora.Managing.Performance.StorageScaling Volume bytes decrease when table t is dropped Volume bytes increase inserts in table t and t1 Volume bytes decrease when table t1 is dropped
Good job Mediocre I didn’t like it Loved it Terrible service 50 Great service user_feedback Select * from user_feedback where aws_comprehend.dete ct_sentiment(review_t ext, ʻENʼ)' = ʻPOSITIVE'"
Amazon RDS Supports a large number of application connections Deployed across multiple AZs and fails over without losing a connection Integrates with AWS Secrets Manager and IAM Connection pooling / Connection multiplexing etc… Preview: Aurora MySQL and RDS MySQL / Aurora PostgreSQL and RDS PostgreSQL RDS Proxy Applications RDS Database Instance Connection Pooling
failovers • Detects failovers and connects to standby quicker, bypassing DNS caches and downstream TTLs • Up to 66% faster failover times Seamless and fast failovers DB DB Amazo n RDS Proxy App App App
rights reserved. Java Client Library for Data API • データAPI⽤のJavaクライアントライブラリを 利⽤することで、クライアント側のクラスを Data APIのリクエストとレスポンスにマッピン グ可能 • 利⽤⽅法・サンプルコードなどは https://docs.aws.amazon.com/AmazonRDS /latest/AuroraUserGuide/data- api.html#data-api.java-client-library
rights reserved. Global Database • 通常1秒未満の低レイテンシなレプリケーションと、通常1分以内の⾼速なフェー ルオーバーが可能 – ソースDBクラスタにパフォーマンス影響を与えない • Binlogを利⽤せず、Auroraストレージレベルでクラスタ間のレプリケーションを ⾏う – レプリケーション先には書き込みはできない • 対向のリージョンは、5リージョンまで設定可能 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html Oregon M R R Storage R R Storage Tokyo R R Storage R R Storage Northern Virginia Frankfurt (Secondary Region) (Secondary Region) (Secondary Region) (Primary Region) Inbound replication Inbound replication Inbound replication Outbound replication
promote secondary region to primary For testing DR setup or relocating primary region Fully maintains the topology RPO=0; writes are stopped until new primary catches up In this example weʼll promote N. Virginia to primary Aurora Global Database: Managed Failover P R R Ohio Northern Virginia Ireland (secondary region) (secondary region) (primary region) R R Storage Replicatio n service R R Storage Replicatio n service à We click to promote N. Virginia à Ohio writes are stopped à N. Virginia catches up à Other regions attached to N. Virginia à Writes now available in N. Virginia à Point your app the new endpoint and go Storage Replicatio n service
Global Database: write forwarding Secondary regioのAurora clusteにも書き込みが可能 • 書き込みは透過的にPrimary regioに転送され、適⽤された変更はすべての Secondary regioへレプリケーションされる • いずれのリージョンもprimarに昇格可能 • Aurora MySQL2.08.1以上 Oregon P R R R R Ohio Northern Virginia Ireland (secondary region) (secondary region) (secondary region) (primary region) Storage Replication service Storage Replication service R R Storage Replication service R R Storage Replication service
Global Database: write forwarding • 以下のクエリに対応 • DML • SELECT ... LOCK IN SHARE MODE / SELECT FOR UPDATE • PREPARE / EXECUTE • 未対応クエリを実⾏した場合、「 ERROR 1235 (42000): This version of MySQL doesn't yet support 'operation with write forwardingʼ. 」や「 ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement 」が返される。この場合、「set aurora_replica_read_consistency =ʻʼ;」のように aurora_replica_read_consistencを設定しなければローカルクラスタで実⾏可能 • 未対応クエリ・オペレーションはドキュメントを参照 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html
rights reserved. Backtrack データベースの状態を容量によらず瞬時に特定の時点へ巻き戻す オペミスなどをしてしまった場合に、作業実⾏前の状態にすぐに巻き戻すことでサービスへの影響 を最⼩限に抑えることが可能 T0 T1 T2 T0 T1 T2 T3 T4 T3 T4 REWIND TO T1 REWIND TO T3 INVISIBLE INVISIBLE
rights reserved. MySQL5.7互換対応 • MySQL5.7.12互換 – バージョンは2.x (MySQL5.6互換は1.x) – JSON support, spatial indexesやgenerated columns対応 – Amazon Auroraの空間インデックスの作成は、MySQL 5.7よりも20倍以上の書き込みパフォーマンスと10倍以上 の読み込みパフォーマンス • インプレースアップグレードは現在は未対応で、今後対応予定 • その他変更点 – The engine name for Aurora MySQL 2.x is ʻaurora-mysqlʼ; the engine name for Aurora MySQL 1.x continues to be ʻauroraʼ – The engine version for Aurora MySQL 2.x is ʻ5.7.12ʼ; the engine version for Aurora MySQL 1.x continues to be ʻ5.6.10a*ʼ – The default parameter group for Aurora MySQL 2.x is ʻdefault.aurora-mysql5.7ʼ; the default parameter group for Aurora MySQL 1.x continues to beʻdefault.aurora5.6ʼ • 詳細: https://forums.aws.amazon.com/ann.jspa?annID=5424
rights reserved. ゼロダウンタイムパッチ Networkin g state Applicatio n state Storage Service App stat e Net stat e App state Net stat e Before ZDP New DB Engine Old DB Engine New DB Engine Old DB Engine With ZDP セッションはパッチ 適⽤時に切断される パッチ適⽤中でも セッションは維持される Storage Service
rights reserved. Export Data into S3 • S3バケットにデータを直接Auroraエクスポート可能 – LOAD DATA FROM S3で利⽤できるManifestファイルを⽣成可能 – 1ファイルは最⼤6GBずつ分割される • 25GBを超えるようなデータをexportする場合は、複数のSQLに分割して exportする領域をずらして実⾏する事を推薦 SELECT * FROM employees INTO OUTFILE S3 's3://bucket_name/prefixʼ FIELDS TERMINATED BY ',ʼ LINES TERMINATED BY '\nʼ MANIFEST ON OVERWRITE ON;
rights reserved. 拡張モニタリング 50+ system/OS metrics | sorted process list view | 1–60 sec granularity alarms on specific metrics | egress to Amazon CloudWatch Logs | integration with third-party tools
rights reserved. 重要なシステム/OSメトリクスに対応 User System Wait IRQ Idle CPU Utilization Rx per declared ethn Tx per declared ethn Network Num processes Num interruptible Num non-interruptible Num zombie Processes Process ID Process name VSS Res Mem % consumed CPU % used CPU time Parent ID Process List MemTotal MemFree Buffers Cached SwapCached Active Inactive SwapTotal SwapFree Dirty Writeback Mapped Slab Memory TPS Blk_read Blk_wrtn read_kb read_IOs read_size write_kb write_IOs write_size avg_rw_size avg_queue_len Device IO Free capacity Used % Used File System