Amazon Aurora for PostgreSQL アーキテクチャ・特長と移行

Similar documents
データベースの近代化:シンプルなクロスプラットフォーム、最小のダウンタイムで実現するクラウド移行

Amazon Relational Database Service (Amazon RDS)

スライド 1

Enterprise Cloud + 紹介資料

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

使ってみよう!データベースとストレージ ~ Getting Started with AWS Database and Storage Services ~

よくある問題を解決する~ 5 分でそのままつかえるソリューション by AWS ソリューションズビルダチーム

PowerPoint Presentation

サンのオープンソースへの 取り組み

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

PowerPoint プレゼンテーション

今さら聞けない!? Oracle入門 ~後編~

PowerPoint プレゼンテーション

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小)

はじめに コース概要と目的 Oracle データベースのパフォーマンス問題の分析方法 解決方法を説明します 受講対象者 データベース管理者の方を対象としています 前提条件 データベース アーキテクチャ データベース マネジメント を受講された方 もしくは同等の知識 をお持ちの方 テキスト内の記述につ

【Cosminexus V9】クラウドサービスプラットフォーム Cosminexus

ネットアップクラウドデータサービス

スライド 1

自己紹介 1982 年 4 月に日商エレクトロニクス株式会社入社 Sybase を使った銀行系システムの開発 保守を担当 Oracle データベースを使ったアプリケーション設計 開発 保守 およびパフォーマンス チューニングなどのコンサルティング業務を担当 Oracle データベースのデータ移行 再

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

第 7 章 ユーザー データ用表領域の管理 この章では 表や索引を格納するユーザー データ用表領域の作成や 作成後のメンテナンスに ついて解説します 1. ユーザー データ用表領域の管理概要 2. ユーザー データ用表領域作成時の考慮事項 3. ユーザー データ用表領域の作成 4. ユーザー データ

AWS Deck Template

AWSにおけるデータベース・サービスの活用

Oracle Real Application Clusters 10g: 第4世代

PostgreSQL による クラスタ構成の可能性 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

PostgreSQL 10 で作るクラスタ構成 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

IT ライブラリーより (pdf 100 冊 ) RDB を AWS 上に移行する ( 全 110 ページ )

今さら聞けない!? Oracle入門 ~前編~

PowerPoint_template_v1.3.pptx / パワーポイントテンプレート

pgpool-ii で PostgreSQL のクラスタを楽々運用しよう OSC Tokyo 2014/12/12 SRA OSS, Inc. 日本支社マーケティング部 OSS 技術グループ 長田 悠吾

PowerGres Plus V9.1 のご紹介 PostgreSQL をベースに信頼性とセキュリティをプラス SRA OSS,Inc. 日本支社マーケティング部 2015/10 Copyright 2015 SRA OSS, Inc. Japan All rights reserved. 1

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

第 3 章 メディア障害とバックアップ リカバリ この章では メディア障害の発生に備えたバックアップ方法と 障害時の基本的なリカバリ方法につい て説明します 1. メディア リカバリ概要 2. ファイルの多重化 3. アーカイブ モードの設定 4. バックアップ概要 5. 一貫性バックアップ ( オ

利用約款別紙 SkyCDP for AWS 基本サービス仕様書 この仕様書は SkyCDP for AWS の基本サービスに関する内容 方法について記述したものです 尚 SkyCDP for AWS オプションサービスをご利用のお客様は各 SkyCDP for AWS オプションサービスのご契約内容

スライド 1

クラウド開発者のためのCloud Design Pattern 入門

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

10年オンプレで運用したmixiをAWSに移行した10の理由

Microsoft Word - AWSBlueprint final.docx

はじめてみよう AWS ~これだけでわかる、できる、AWS のコアサービスを活用した基本のシステム構成~

pg_monz 監視アイテム一覧 :Template App PostgreSQL Template App PostgreSQL アプリケーション LLD アイテムトリガー監視タイプ更新間隔ヒストリトレンドデフォルト説明ステータス pg.get pgsql.get.pg.bgwriter Zabb

Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部

Slide 1

Arcserve Replication/High Availability 製品の仕組み

untitled

PowerPoint プレゼンテーション

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

2017/8/2 HP SiteScope software 監視機能対応表 この監視機能対応表は HP SiteScope software v11.33) に対応しています モニタ モニタ説明 モニタ説明 SiteScope for Windows SiteScope for Linux ネット

Joint Content Development Proposal Tech Docs and Curriculum

PowerPoint プレゼンテーション

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

概要 ここでは先程デモを行った OpenStack の中で仮想マシンのデータがどのように管理されているかをご紹介致します OpenStack の中でデータがどのように配置され 管理されているかを知ることは 可用性を検討する上で非常に重要になります 2

Transcription:

Amazon Aurora PostgreSQL Mark Porter, General Manager Amazon Aurora PostgreSQL Amazon RDS for PostgreSQL Amazon RDS Platform Amazon RDS Operations markpor@amazon.com May 31, 2017 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

本日のアジェンダ なぜ Amazon Aurora を作ったのか? なぜ PostgreSQL 互換を追加したのか? 堅牢性と可用性のアーキテクチャ PostgreSQLと比較したパフォーマンス結果 パフォーマンスアーキテクチャ Performance Insights ロードマップ Q&A +

伝統的なリレーショナルデータベースはスケールが難しい SQL Transactions Caching Logging 複数の機能レイヤーが 1 つのモノリシックなスタックに入っている Storage

データベースをスケールさせる従来のアプローチ Application Application Application SQL SQL SQL SQL SQL SQL Transactions Transactions Transactions Transactions Transactions Transactions Caching Caching Caching Caching Caching Caching Logging Logging Logging Logging Logging Logging Storage Storage Storage Storage Storage どのアーキテクチャもモノリシックな考え方に縛られている

リレーショナルデータベースをもう一度考える 今 データベースを改めて実装するならどうするか? スタックを分割する 以下のようなことを実装するでしょう : スケールアウトできる 自律的に修復できる 分散サービスを活用する

Service Oriented Architecture をデータベースに当てはめる 1 マルチテナントでスケールアウト可能 データベースに最適化されたストレージサービスをロギング ストレージレイヤとして採用 SQL Transactions Amazon RDS 2 Amazon EC2, Amazon VPC, Amazon DynamoDB, Amazon SWF, Amazon Route 53 といった他の AWS のサービスを管理 監視のために利用 Caching Logging + Storage Amazon DynamoDB 3 Amazon RDS プラットフォームを利用し マネージドサービスとして実現 運用 管理機能をオフロード Amazon SWF Amazon S3 Amazon Route 53

Amazon Aurora は進化し続けています 2014 年 Amazon Aurora with MySQL compatibility リリース このたび PostgreSQL compatibility を追加しました 商用データベースのパフォーマンスと可用性 オープンソースデータ ベースのシンプルさとコスト効率性を備えた Amazon のクラウドに 最適化されたリレーショナルデータベースとして選択可能に

お客様の声を元に なぜ PostgreSQL を追加したのか?

お客様の声を元に なぜ PostgreSQL を追加したのか?

PostgreSQL の概要 オープンソースデータベース 20 年間にわたる開発の歴史 単一の企業ではなく コミュニティによる所有 Open Source Initiative 寛大で革新に馴染みやすいオープンソースライセンス

PostgreSQL の概要 そのままで高性能 オブジェクト指向や ANSI 標準 SQL:2008 との互換性 どのオープンソースデータベースよりも豊富な機能を持つ時空間 (geospatial) 機能 12 言語でのストアドプロシージャサポート (Java, Perl, Python, Ruby, Tcl, C/C++, Oracle との互換性が高い PL/pgSQL など )

PostgreSQL の概要 Oracle との互換性もオープンソースデータベースの中で最も高い AWS Schema Conversion Tool による自動変換率は Oracle DB から PostgreSQL が最も高い

PostgreSQL compatibility が意味するものとは (1 of 2) PostgreSQL 9.6 + クラウドに最適化された Amazon Aurora ストレージパフォーマンス : PostgreSQL と比較して 最大 2 倍以上の性能可用性 : 30 秒未満でのフェールオーバー堅牢性 : 3つの AZ にわたり 6つの複製を保持リードレプリカ : 15 台までのレプリカに対し ラグは一桁ミリ秒 現在 そして将来にわたっての PostgreSQL との完全な互換性 互換性レイヤーではなく ネイティブな PostgreSQL の実装を利用 Amazon Aurora Storage

PostgreSQL compatibility が意味するものとは (2 of 2) クラウドネイティブなセキュリティと暗号化 AWS Key Management Service (KMS) AWS Identity and Access Management (IAM) Amazon RDS による容易な運用管理 容易なデータロード / アンロード AWS Database Migration Service AWS Schema Conversion Tool 現在 そして将来にわたっての PostgreSQL との完全な互換性 互換性のためのレイヤーがあるのではなく ネイティブな PostgreSQL の実装をそのまま利用 PostgreSQL Amazon RDS AWS DMS

Amazon Aurora with PostgreSQL Compatibility 堅牢性と可用性

スケールアウト可能で分散した ログ構造ストレージ AWS リージョン Availability Zone 1 Availability Zone 2 Availability Zone 3 Primary Database Read Master Replica / Replica / Replica / Secondary Read Secondary Read Secondary データベースとインスタンスの監視 共有ストレージボリューム トランザクションを認識 ストレージ監視

Amazon Aurora Storage Engine 概要 3 つのアベイラビリティゾーンにわたる 6 つの複製 継続的に S3(99.999999999% の耐久性 ) へ増分バッ クアップ ノードとディスクに対する継続的な監視と修復 10GB のセグメント単位でデータを格納し リカバ リやホットスポット解消実施 read/write クォーラムシステム : レイテンシーの揺らぎに強い クォーラムのメンバー変更は書き込みに影響しない 最大 64TB まで自動的に拡張する ストレージボリューム Storage AZ 1 AZ 2 AZ 3 Database Storage Storage Amazon S3 Storage Storage Storage Storage Monitoring

Amazon Aurora ストレージエンジンの耐障害性 何が障害を引き起こすか? セグメント障害 ( ディスク ) ノード障害 ( マシン ) AZ 障害 ( ネットワーク データセンタ ) 最適化 4/6 クォーラム : 書き込み 3/6 クォーラム : 読み込みリカバリのための peer to peer レプリケーション AZ 1 AZ 2 AZ 3 SQL Transaction Caching AZ 1 AZ 2 AZ 3 SQL Transaction Caching

Amazon Aurora のレプリカ 可用性 データベースノードに不具合が発生すると 自動的に検知して置換 AZ 1 AZ 2 AZ 3 Primary Primary Database Primary Primary Read Replica Primary Primary Read Replica Database and Instance Monitoring 不具合が発生したプロセスを自動的に検知し 再起動 フェイルオーバーの必要がある場合 レプリカは自動的にプライマリへ昇格 フェイルオーバー順を指定可能 パフォーマンス リードレプリカを利用して 読み込みのスケールアウトが可能 リードレプリカにまたがって読み込みの分散が可能

継続的なバックアップ セグメントスナップショット ログレコード Segment 1 Segment 2 Segment 3 リカバリポイント 時間 各セグメントごとに Amazon S3 へ定期的にスナップショットを並列に取得 バックアップは継続的に行われ パフォーマンスや可用性への影響はない リストア時 適切なセグメントのスナップショットとログストリームを取得し ストレージへ適用 ログストリームをセグメントスナップショットに並列非同期で適用

高速でより予測可能なフェイルオーバー時間 Amazon RDS for PostgreSQL のフェイルオーバー時間 :60 秒程度 Database Failure Failure Detection DNS Propagation App Running Recovery Amazon Aurora のフェイルオーバー時間 :30 秒未満 Database Failure Failure Detection DNS Propagation Recovery App Running Replica-Aware App Running 15-20 秒 3-10 秒

Amazon Aurora with PostgreSQL Compatibility PostgreSQL とのパフォーマンス比較

ベンチマークのシステム構成 PostgreSQL AZ 1 c4.8xlarge client driver Amazon Aurora AZ 1 AZ 2 AZ 3 c4.8xlarge client driver m4.16xlarge database instance m4.16xlarge database instance ext4 filesystem Storage Storage Storage Storage Storage Storage 45,000 total IOPS EBS EBS EBS Amazon S3 m4.16xlarge (64 VCPU, 256GiB), c4.8xlarge (36 VCPU, 60GiB)

PgBench で Amazon Aurora は 2 倍以上高速な結果に pgbench tpcb-like workload, scale 2000 (30GiB). 60 分間実行

SysBench では Amazon Aurora が 2~3 倍高速な結果に Amazon Aurora は PostgreSQL のピーク性能と比較して 2 倍 コネクション数が多い環境では 3 倍の性能 SysBench oltp(write-only) workload 30GB データベース (250 テーブル, 各テーブルに初期 400,000 行 )

Amazon Aurora: 秒間 120,000 書き込み以上のパフォーマンス Sysbench で安定して 120K writes/sec の性能 OLTP test statistics: queries performed: read: 0 write: 432772903 other:(begin + commit) 216366749 total: 649139652 transactions: 108163671 (30044.73 per sec.) read/write requests: 432772903 (120211.75 per sec.) other operations: 216366749 (60100.40 per sec.) ignored errors: 39407 (10.95 per sec.) reconnects: 0 (0.00 per sec.) sysbench write-only 10GB workload 250テーブル key constraint errorsは考慮しない設定を使用 各テーブルに初期 25,00 行. 10 分 warmup, 3,076 クライアント

データのロードでも 3 倍高速 PgBench を利用した際のデータベースの初期化作業が PostgreSQL と比較して 3 倍高速 Command: pgbench -i -s 2000 F 90

Amazon Aurora はレスポンスタイムが 2 倍以上高速 書込みが多いワークロードで PostgreSQL と比較してレスポンスタイムが 2 倍以上高速 (10 倍以上安定したレスポンスタイム ) SysBench oltp(write-only) 23GiB workload 250 テーブル各テーブルに初期 300,000 行. 10 分 warmup.

Amazon Aurora は安定したスループットを発揮 負荷をかけている間 パフォーマンスは 3 倍以上 PostgreSQL よりも安定したスループット PgBench tpcb-like workload (scale,2000). Amazon Aurora (1,280 クライアント ). PostgreSQL (512 クライアント ). ( 最良のスループットを出した並列度 )

writes / sec データベースサイズが大きいケースで 3 倍高速な結果に データベースサイズが 10GiB から 100 GiB になった際には 1.5 3 倍高速にスケール SysBench write-only 120,000 112,390 PostgreSQL Amazon Aurora 100,000 80,000 75,666 82,714 60,000 40,000 27,491 20,000 0 10GB SysBench Test Size 100GB SysBench oltp(write-only) 10GiB 250 テーブル 150,000 行 / 100GiB 250 テーブル 1,500,000 行

最大 85 倍高速なリカバリ ログストラクチャード ストレージシステムによりほぼ即座に復旧 Crash Recovery Time - SysBench 10GB Write Workload Recovery Time in Seconds 0 20 40 60 80 100 120 140 Amazon Aurora No Checkpoints PostgreSQL 2.1GB Checkpoint PostgreSQL 8.3GB Checkpoint PostgreSQL 12.5GB Checkpoint Writes per Second 92,415 Recovery Time (seconds) 1.2 Writes per Second 16,075 Recovery Time (seconds) 13.0 Writes per Second 32,765 Recovery Time (seconds) 52.0 Writes per Second 69,620 Recovery Time (seconds) 102.0 0 20,000 40,000 60,000 80,000 Writes Per Second SysBench oltp(write-only) 10GiB workload 250 テーブル 150,000 行

Amazon Aurora with PostgreSQL Compatibility 性能測定のまとめ 計測項目 PgBench SysBench データロードレスポンスタイムスループットの性能ゆらぎ大規模でのスループットリカバリー速度 結果 >= 2x 高速 2x-3x 高速 3x 高速 >2x 高速 >3x より安定 3x 高速最大 85x 高速

Amazon Aurora with PostgreSQL Compatibility パフォーマンスアーキテクチャ

性能向上のために行っていること DO LESS WORK I/Oを減らすネットワークパケットを最小限にする結果をキャッシュしておくデータベースエンジンをオフロードする BE MORE EFFICIENT 非同期で処理するレイテンシーの通り道を減らすロックフリーなデータ構造を使うバッチ操作を同時に行う データベースは I/O が全て ネットワーク接続したストレージは PACKETS/SECOND が全て 高スループットの処理には CPU とメモリの最適化が必要

Amazon RDS for PostgreSQL の write I/O RDS FOR POSTGRESQL WITH MULTI-AZ AZ 1 AZ 2 Primary Database 1 Amazon Elastic Block Store (EBS) 3 Standby Database EBS 4 IO FLOW Amazon EBSに書き込み発行後 EBSがミラーへ複製両方終了後 ackを返す書き込みをスタンバイインスタンスへ伝播スタンバイインスタンス側のebsに書き込み発行 OBSERVATIONS ステップ 1, 3, 5 はシーケンシャルかつ同期それによりレイテンシーもパフォーマンスのゆらぎも増加各ユーザー操作には様々な書き込みタイプがある 2 5 EBS mirror EBS mirror Amazon S3 T YPE OF WRIT E WAL DATA COMMIT LOG & FILES

Aurora の write I/O トラフィック ( データベースノード ) AMAZON AURORA AZ 1 AZ 2 AZ 3 Primary Database ASYNC 4/6 QUORUM Read Replica / Secondary Amazon S3 DISTRIBUTED WRITES Read Replica / Secondary IO FLOW REDO ログレコードをまとめる 完全に LSN 順に並ぶ適切なセグメントに分割する 部分ごとに並ぶストレージノードへまとめて書き込む OBSERVATIONS WAL レコードのみ書き込む ; 全てのステップは非同期 データブロックは書き込みはない ( チェックポイント, キャッシュ置換時 ) 6 倍のログ書き込みだが, 1/9のネットワークトラフィックネットワークやストレージのレイテンシー異常時の耐性がある PERFORMANCE write-only もしくは read/write が混在するワークロードにおいて PostgreSQL のコミュニティエディションに比べて 2 倍以上の性能を発揮 T YPE OF WRIT E AMAZON AURORA + WAL LOG WAL DATA COMMIT LOG & FILES

非同期グループコミット TRANSACTIONS T1 Read Read Write Read Commit T1 Read Read Write Read Commit Tn Read Read Write Read Commit Commit (T8) Commit (T7) Commit (T6) Commit (T5) Commit (T4) Commit (T3) Commit (T2) Commit (T1) LSN 50 LSN 47 LSN 41 LSN 34 LSN 30 LSN 22 LSN 12 LSN 10 GROUP COMMIT LSN 20 LSN 49 TIME COMMIT QUEUE Pending commits in LSN order LSN GROWTH Durable LSN at head-node TRADITIONAL APPROACH ログレコードをディスクへ書き込むためのバッファを管理バッファが一杯になるか一定の待ち時間を超過すると書き込みを実行書き込み頻度が少ない場合は最初の書き込みが遅くなる AMAZON AURORA 最初の書き込みと同時に I/O リクエストを実行 書き込みが実行されるまでバッファを埋める 6 つの内 4 つのストレージノードから ACK が返ってきた時点で堅牢性のある書き込みが完了

Aurora の I/O トラフィック ( ストレージノード ) Primary Database Peer Storage s LOG RECORDS 4 ACK INCOMING QUEUE 2 PEER TO PEER GOSSIP SORT GROUP STORAGE NODE UPDATE QUEUE HOT LOG 3 1 COALESCE 5 POINT IN TIME SNAPSHOT 6 AMAZON S3 BACKUP GC DATA BLOCKS 7 SCRUB 8 IO FLOW 1 レコードを受信しインメモリのキューに追加 2 レコードを永続化して ACK 3 レコードを整理してログのギャップを把握 4 ピアとゴシップ通信して穴埋め 5 ログレコードを新しいバージョンのデータブロックに合体 6 定期的にログと新しいバージョンのブロックを S3 に転送 7 定期的に古いバージョンのガベージコレクションを実施 8 定期的にブロックの CRC を検証 OBSERVATIONS 全てのステップは非同期ステップ 1 と 2 だけがフォアグラウンドのレイテンシーに影響インプットキューは PostgreSQL に比べて極めて小さいレイテンシーにセンシティブな操作に向くディスク領域をバッファーに使ってスパイクに対処

Aurora レプリカの I/O トラフィック POSTGRESQL READ SCALING AMAZON AURORA READ SCALING PostgreSQL Master 70% Write シングルスレッドで WAL を適用 PostgreSQL Replica 70% Write Aurora Master 70% Write ページキャッシュ更新 Aurora Replica 100% New Reads 30% Read 30% New Reads 30% Read Data Volume Data Volume Shared Multi-AZ Storage Physical: WAL をレプリカに送信 書き込み負荷は両インスタンスとも同様 ストレージはそれぞれ独立 (Shared Nothing) Physical: WAL をマスターからレプリカに送信 ストレージは共有 レプリカ側でストレージへの書き込みは起こらない キャッシュされたページに WAL を適用 全てのコミットが参照可能になったら read view を進める

サバイバル可能なキャシュでアプリケーションの再開を高速に キャッシュレイヤは通常 データベースプロセス内にある データベースがダウンした場合 消去される RUNNING CRASH AND RESTART RUNNING Aurora はキャッシュをデータベースプロセス外に移動 SQL Transactions SQL Transactions SQL Transactions データベースプロセスのリスタートが発生してもキャッシュが残った状態を維持可能 Caching Caching Caching データベースが定常のパフォーマンスを発揮できる状態にいち早く戻すことが出来る キャッシュはデータベースプロセス外で管理されているため データベースプロセスのリスタートが発生してもキャッシュを維持可能

Amazon Aurora with PostgreSQL Compatibility Performance Insights のご紹介

第 1 弾 : 拡張モニタリング 2016 年リリース O/Sメトリクスプロセス & スレッド一覧最小 1 秒単位の粒度

第 2 弾 : Performance Insights データベースエンジンのパフォーマンス チューニング

new

new

データベース負荷以外にも ロック検出 実行計画 API アクセス RDS に含まれる 35 日間のデータ保持 2017 年中に RDS の全データベースエンジンで対応予定

Amazon Aurora with PostgreSQL Compatibility ロードマップ

Amazon Aurora with PostgreSQL Compatibility ローンチ時のロードマップ 2-4x faster than PostgreSQL on large instances Encryption at rest (AWS KMS) Encryption in transit (SSL) Amazon VPC by default Row Level Security 高性能 Up to 64 TB of storage per instance Write jitter reduction Near synchronous replicas (<25ms) Reader endpoint セキュアな設計 使いやすさと互換性 Failover in less than 30 seconds Customer specifiable failover order Up to 15 readable failover targets Instant crash recovery Survivable buffer cache X-region snapshot copy 高可用性 Enhanced OS monitoring Performance Insights Push button migration Auto-scaling storage Continuous backup and PITR Easy provisioning / patching All PostgreSQL features All RDS for PostgreSQL extensions AWS DMS supported inbound

Amazon Aurora データベースファミリー Encryption at rest and in transit Secure AWS IAM, KMS & VPC 6 Copies Amazon S3 Durable Amazon Aurora High Performance & Scale Enterprise Performance 64TB Storage X Automatic Failover Available Convenient Compatible MySQL Read Replicas AWS DMS Amazon RDS PostgreSQL

Mark Porter markpor@amazon.com