Amazon Relational Database Service (Amazon RDS)

Similar documents
PowerPoint Presentation

Presentation Title Here

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

Presentation Title Here

Amazon Aurora (MySQL-compatible edition) Deep Dive

SRA OSS, Inc. のご紹介 1999 年より PostgreSQL サポートを中心に OSS ビジネスを開始 2005 年に現在の形に至る 主なビジネス PostgreSQL, Zabbix などの OSS のサポート コンサルティング 導入構築 PowerGres ファミリーの開発 販売

Microsoft PowerPoint - MySQL-backup.ppt

PowerPoint Presentation

Slide 1

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

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

Enterprise Cloud + 紹介資料

PowerPoint Presentation

Presentation Title Here

PassSureExam Best Exam Questions & Valid Exam Torrent & Pass for Sure

PowerPoint Presentation

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

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Microsoft Word - JP-AppLabs-MySQL_Update.doc

スライド 1

Presentation Title Here

スライド 1

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

PowerPoint Presentation

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

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

D. Amazon EC2 のインスタンスストアボリュームへ 1 時間ごとに DB のバックアップ取得を行うと共に Amazon S3 に 5 分ごとのトランザクションログを保管する 正解 = C 会社のマーケティング担当ディレクターから " 何気ない親切 " と思われる善行を目にしたら 80 文字

PowerPoint プレゼンテーション

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

Presentation Title Here

PowerPoint Presentation

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

PowerPoint Presentation

PowerPoint Presentation

Elastic MapReduce bootcamp

新製品 Arcserve Backup r17.5 のご紹介 (SP1 対応版 ) Arcserve Japan Rev. 1.4

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

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

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

Microsoft PowerPoint - AWS-RatesSystem-JP_ pptx

AWS 上でのサーバーレスアーキテクチャ 入 門 AWS Black Belt Online Seminar 2016 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト清 水崇之 , Amazon Web Services, Inc. or its Aff

Presentation Title Here

PowerPoint プレゼンテーション

PowerPoint Presentation

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

Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい

Presentation Title Here

スライド 1

スライド 1

PowerPoint プレゼンテーション

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

Oracle Real Application Clusters 10g: 第4世代

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

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

Arcserve Replication/High Availability 製品の仕組み

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

PowerPoint Presentation

スライド 1

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

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

Microsoft PowerPoint - AWS紹介-VIOPS2 [互換モード]

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

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

Amazon RDS 入門

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

平成20年度成果報告書

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

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

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

UNIVERGE SG3000 から SG3600 Ver.6.2(2012 年モデル ) への 移行手順 All Rights Reserved, Copyright(C) NEC Corporation 2017 年 11 月 4 版

スライド 1

PowerPoint Presentation

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

PowerPoint プレゼンテーション

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

OPENSQUARE

スライド 1

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

更新履歴 Document No. Date Comments 次 D JP 2017/05/01 初版 1. 概要 はじめに 情報源 A10 Lightning Application Delivery Service(ADS) 導 構成 動作概要 構築概要 2. 事

PowerPoint Presentation

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

Oracle Data Pumpのパラレル機能

Oracle Database 11g Oracle Real Application Testing

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

_AWS-Blackbelt-Organizations

Microsoft Word - eRecovery v3-1.doc

April 2014 Flash-aware MySQL フラッシュが MySQL を変える Takeshi Hasegawa Senior Sales Engineer APAC Japan Fusion-io

Microsoft Word - nvsi_080188jp_r1_netvault_oracle_rac_backup_complemental_guide_j_174x217.doc

スライド 1

PowerPoint プレゼンテーション

AWSストレージ関連サービスの正しい理解と使い方講座

Leveraging Cloud Computing to launch Python apps

PowerPoint プレゼンテーション

本資料の関連資料は下記をクリックして PDF 一覧からお入り下さい IT ライブラリー (pdf 100 冊 ) 目次番号 453 番 AWS 詳細解説全 33 冊計 6,100 ページ 2

PowerPoint プレゼンテーション

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

版 HinemosVM クラウド管理機能のご紹介 NTT データ先端技術株式会社 2019 NTT DATA INTELLILINK Corporation

Title Slide with Name

AWS Simple Monthly Calculator (簡易見積ツール) 使い方説明

Transcription:

Amazon Aurora AWS Black Belt Online Seminar 2016 アマゾンウェブサービスジャパン株式会社ソリューションアーキテクト星野豊

AWS Black Belt Online Seminar とは AWSJのTechメンバがAWSに関する様々な事を紹介するオンラインセミナーです 水曜 18:00~19:00 主にAWSサービスの紹介や アップデートの解説 (例 EC2 RDS Lambda etc.) 火曜 12:00~13:00 主にAWSのソリューションや 業界カットでの使いどころなどを紹介 (例 ネットワーク IoT 金融業界向け etc.) 最新の情報は下記をご確認下さい オンラインセミナーのスケジュール&申し込みサイト http://aws.amazon.com/jp/about-aws/events/#webinar

内容についての注意点 本資料では 2016 年 7 月 29 日時点のサービス内容および価格についてご説明しています 最新の情報は 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.

今回お話する内容は 2016/7/29 現在の情報です

Amazon Aurora

データベース管理を簡単に データベースを数分で作成可能 自動でパッチの適用 数クリックするだけでスケールアウト可能 S3への継続的なバックアップ 障害の自動検知と自動フェールオーバ DBAが本来行うべき作業に注力して頂けるように スキーマ設計 チューニング クエリ設計 チューニング などなど Amazon RDS

Virginia / Oregon / Ireland / Sydney / Tokyo / Seoul / Mumbai リージョン

Amazon Aurora の特徴 ハイパフォーマンス スケーラブル MySQL5.6 互換 セキュリティにも配慮 フルマネージド 高可用性 高耐久性

リレーショナルデータベースをもう一度考える 今 データベースを再度実装するならどうする か 少なくとも1970年代の方法で実装はしない AWSサービスを活かすことができ スケールアウトが簡単で セルフヒーリングが出来るようなデータベースを作りたいと考 えた

MySQL のエコシステムをそのまま活用可能 Amazon Aurora に対してコンパチビリティを確認するテストスイートを実施し 全て完璧に動作を行うことが確認出来ました - Dan Jewett, Vice President of Product Management at Tableau Business Intelligence Data Integration Query and Monitoring SI and Consulting Source: Amazon

多くのサードパーティ監視ツールが利用可能

Memory インスタンスタイプ 244GB r3.8xl 122GB r3.4xl 60GB r3.2xl 32GB r3.xl 16GB r3.large 8GB 4GB 1GB 1core 2core 4core 8core 16core 32core vcpu

アーキテクチャ

Service Oriented Architecture Data Plane ログとストレージレイヤをシー ムレスにスケールするストレー ジサービスに移動 EC2, Amazon DynamoDB, Amazon SWFなどのAWSサー ビスを管理コンポーネントに採 用 Amazon S3を利用して 99.999999999%の耐久性でス トリーミングバックアップ Control Plane SQL Transactions Amazon DynamoDB Caching Logging + Storage Amazon S3 Amazon SWF Amazon Route 53

キャッシュレイヤの分離 キャッシュをデータベースプロセ ス外に移動 データベースプロセスのリスター トが発生してもキャッシュが残っ た状態を維持可能 サービスにすぐデータベースを戻 すことが出来る 高速なクラッシュリカバリ + 保持 可能なキャッシュ = DB障害から 高速に復帰可能 キャッシュプロセスをDBプロセス外におくことで DBプロセスの再起動でもキャッシュが残る SQL SQL SQL Transactions Transactions Transactions Caching Caching Caching

セキュリティ Application データの暗号化 AES-256 (ハードウエア支援) ディスクとAmazon S3に置かれている全ブロックを暗号化 AWS KMSを利用したキー管理 SSLを利用したデータ通信の保護 標準でAmazon VPCを使ったネットワークの分 離 SQL Transactions Caching Storage ノードへ直接アクセスは不可能 Amazon S3

Auroraのストレージ AZ 1 SSDを利用したシームレス にスケールするストレージ AZ 2 SQL Transactions Caching 標準で高可用性を実現 Log structured Storage Amazon S3 AZ 3

Auroraのストレージの特徴 リードレプリカもマスタと同じストレージを参照 継続的なS3へ増分バックアップ パフォーマンスへの影響なし 64TBまで自動でストレージがシームレスにスケールアッ プ パフォーマンスや可用性に影響無し 利用開始時のプロビジョニング不要 自動で再ストライピング ミラー修復 ホットスポット 管理 暗号化

ディスク障害検知と修復 2つのコピーに障害が起こっても 読み書きに影響は無い 3つのコピーに障害が発生しても読み込みは可能 自動検知 修復 AZ 1 AZ 2 SQL AZ 3 AZ 1 AZ 2 SQL Transactio n Transaction Caching Caching 読み込み可能 読み書き可能 AZ 3

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

レプリケーション MySQL Master シングルスレッド でBinlog適用 MySQL Replica Aurora Replica PAGE CACHE UPDATE 70% Write 70% Write 70% Write 30% Read 30% New Reads 30% Read Data Volume Data Volume MySQL read scaling Aurora Master レプリケーションにはbinlog / relay logが必要 レプリケーションはマスターへ負荷がかかる レプリケーション遅延が増加していくケースが ある フェイルオーバでデータロスの可能性がある 100% New Reads Shared Multi-AZ Storage

コスト比較 : Aurora vs. RDS for MySQL Primary r3.8xl $1.33/hr Replica r3.8xl $1.33/hr Replica R3.8XL $1.33/hr Storage 6 TB / 10 K PIOP $2,42/hr Storage 6 TB / 5 K PIOP $2,42/hr Storage 6 TB / 5 K PIOP $2,42/hr Standby r3.8xl $1.33/hr Instance cost: Storage cost: $5.32 / hr $8.30 / hr Storage 6 TB / 10 K PIOP $2,42/hr Total cost: $13.62 / hr

コスト比較 : Aurora vs. RDS for MySQL $1.62 / hr $1.62 / hr $1.62 / hr スタンバイインスタンスのコストが不要 Primary r3.8xl Replica r3.8xl Replica R3.8XL 1 つの共有ストレージ $4.43 / hr No POIPs pay for use I/O Storage / 6 TB Instance cost: Storage cost: Total cost: $4.86 / hr $4.43 / hr $9.29 / hr 31.8% Savings

新しいメトリクス画面 Throughput Select Commit DML/DDL Select Commit DML/DDL Buffer Cache Result Set Latency Cache Hit Ratio Deadlocks Login Failures Blocked Transactions

新しいメトリクス画面 課金に関わるディスク利用量やIOPS Billed storage Billed read operations Billed write operations

フェイルオーバとリカバリ

フェイルオーバ と リプレース リードレプリカが存在する場合は1分程でフェイル オーバ可能 RDS for MySQLよりも高速にフェイルオーバ可能 リードレプリカが存在しない場合は15分程 Multi-AZ配置として別AZで起動する RDS for MySQLと違いリードアクセス可能

クラスタエンドポイント WriterとReaderのセットをクラスタと呼び クラスタで常にWriter(マスタ)を指すクラ スタエンドポイントが存在する 各Auroraノードは個別にエンドポイントを持っている(虫眼鏡タブ内のEndpointで確認可 能) Writer Reader

クラスタエンドポイント 各Auroraノードは個別 にエンドポイントを 持っている VPC subnet Write VPC subnet クラスタエンドポイン トは その時アクティ ブなAurora Writerノー ドのCNAME クラスタエンドポイント Aurora Writer VPC subnet Availability Zone A Aurora Reader VPC subnet Availability Zone B Readは各Readerを参 照する

クラスタエンドポイント VPC subnet Write VPC subnet クラスタエンドポイント Aurora Writer VPC subnet Availability Zone A Aurora Writer VPC subnet Availability Zone B フェイルオーバが発 生すると Aurora ノードの昇格が行わ れ クラスタエンド ポイントの指し先が 変わる

フェイルオーバー時の注意点 Auroraのフェイルオーバーの仕組みにより RDS MySQLよりも高速にフェイルオーバーが行われる フェイルオーバー実行時に新WriterとReaderの キャッシュの整合性をとるため各ReaderのAuroraプ ロセスもリスタートされる 数秒アクセスが出来なくなるため Readerのインスタンス障害に 備える意味でも アプリケーションやドライバ側でクエリのリトラ イ処理を入れることを推薦

高速でより予測可能なフェイルオーバー時間 MySQL DB failure Failure detection DNS propagation App running Recovery Recovery AURORA WITH MARIADB DRIVER DB failure Failure detection DNS propagation 15-2 0 s e c Recovery 3-2 0 s e c App running

Streaming snapshotとpitr Amazon Auroraでは各セグメント毎にAmazon S3 へ継続的に増分バックアップを取得している Backup retention periodでバックアップを残す期間を指定可能 Amazon Auroraが使用しているディスクの仕組み によりパフォーマンスへ影響を与えない PITRで5分前からBackup Retention Periodまでの 任意の位置に秒単位で復元可能

高速なデータ修復 既存のデータベース Amazon Aurora 最後のチェックポイントからロ グを適用していく Disk readの一環として オンデ マンドでredo logの適用を行う MySQLではシングルスレッドな ため適用完了までの時間が増加 並列 分散 非同期で行われる T0 でクラッシュが発生すると 最後のチェックポイントからの ログを適用する必要がある Checkpointed Data T0 でクラッシュが発生するとredo を並列で分散して非同期でログの適用を行う Redo Log T0 T0

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 ];

チューニングとパフォーマンス

5X faster than RDS MySQL 5.6 & 5.7 WRITE PERFORMANCE READ PERFORMANCE 700,000 150,000 600,000 125,000 500,000 100,000 400,000 75,000 300,000 50,000 200,000 25,000 100,000 0 0 MySQL SysBench results R3.8XL: 32 cores / 244 GB RAM Aurora MySQL 5.6 MySQL 5.7 SysBenchを用いたベンチマークにおいて MySQLと比較して 5倍高いスループットを計測

インスタンスサイズによるスケール WRITE PERFORMANCE READ PERFORMANCE Aurora MySQL 5.6 MySQL 5.7 Aurora は Read/Write パフォーマンス共にインスタンスサイズに比例してスケール

Beyond benchmarks もしも 実環境のアプリケーションがベンチマークと 同様のパフォーマンスを出すのであれば 新しい データベースを作る必要は無かった POSSIBLE DISTORTIONS 実環境のリクエストは相互に影響がある 実環境のメタデータがディクショナリーキャッシュに収まり続けるの は稀である 実環境のデータがバッファキャッシュに収まり続けるのは稀である 実本番環境のデータデータベースはHA構成で動かす必要がある

チューニング指針 Amazon AuroraはMySQLと比較してインスタンスリ ソースを効率的に最大限利用する設計 CPUやメモリの利用率が高めだが パフォーマンスに影響が出ない限 りは過度な心配は必要ない Amazon Auroraは実際のワークロードで性能が発揮でき るように開発 チューニングが行われている ベンチマークテストでは無く実際のワークロードでテストを行う 監視項目もインスタンスリソースでは無く 実際のパフォーマンステス トを元にクエリレイテンシやスループット buffer poolのcache hitレー トに注目

チューニング指針 まずはデフォルトのパラメータグループを使用 Amazon Auroraはデフォルトの設定でパフォーマンスを発揮できる ようにチューニング済み 適切なインスタンスタイプを選択することが大切 それでも性能が出ない場合にパラメータグループの変更を検討

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

IO traffic in RDS MySQL MYSQL WITH STANDBY AZ 1 AZ 2 3 IO FLOW EBS に書き込み EBS がミラーへ複製し 両方終了後 ack スタンバイインスタンス側の EBS に書き込み Primary instance Standby instance OBSERVATIONS 1 Amazon Elastic Block Store (EBS) EBS 4 ステップ 1, 3, 5 はシーケンシャルかつ同期それによりレイテンシーもパフォーマンスのゆらぎも増加各ユーザー操作には様々な書き込みタイプがある書き込み破損を避けるためにデータブロックを 2 回書く必要性 Amazon S3 2 EBS mirror EBS mirror 5 T YPE OF WRIT E PERFORMANCE 780K トランザクション 100 万トランザクション当たり 7,388K I/Os ( ミラー, スタンバイを除く ) 平均 1 トランザクション当たり 7.4 I/Os 30 minute SysBench write-only workload, 100 GB data set, RDS SingleAZ, 30K PIOPS LOG BINLOG DATA DOUBLE-WRITE FRM FILES

IO traffic in Aurora ( データベース ) AMAZON AURORA AZ 1 AZ 2 AZ 3 Primary instance Replica instance IO FLOW REDO ログレコードをまとめる 完全に LSN 順に並ぶ適切なセグメントに分割する 部分ごとに並ぶストレージノードへまとめて書き込む ASYNC 4/6 QUORUM Amazon S3 DISTRIBUTED WRITES OBSERVATIONS REDO ログレコードのみ書き込む ; 全てのステップは非同期データブロックは書かない ( チェックポイント, キャッシュ置換時 ) 6 倍のログ書き込みだが, 1/9 のネットワークトラフィックネットワークとストレージのレイテンシー異常時の耐性 PERFORMANCE 27,378K トランザクション 35X MORE 100 万トランザクション当たり 950K I/Os 7.7X LESS (6X amplification) 30 minute SysBench write-only workload, 100 GB data set LOG T YPE OF WRIT E BINLOG DATA DOUBLE-WRITE FRM FILES

スレッドプール Amazon Auroraはスレッドプールが実装されてい る MariaDBやMySQL EEで提供されているような機能だが Amazon Auroraに実装されているものはオリジナル実装 パラメータグループに項目があるが 設定変更は不可能 MySQL Client Thread Aurora Client Thread Client Thread Thread Thread Thread Client Thread Thread Thread Pool

Adaptive Thread Pool CLIENT CONNECTION CLIENT CONNECTION epoll() MYSQL THREAD MODEL AURORA THREAD MODEL LATCH FREE TASK QUEUE Standard MySQL コネクション毎に1 コネクション数に応じてスケールしない MySQL EE スレッドプール毎にコネクションをアサイン しきい値を慎重に設定する必要がある アクティブなスレッドに複数のコネクションを収容 スレッドプールの数は動的に調整される r3.8xlインスタンスのamazon Auroraで5,000 同時コネクションを扱える

非同期グループコミット TRANSACTIONS T1 Read Read Write Read Commit T1 Read Read Write Read Commit TIME TRADITIONAL APPROACH 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 COMMIT QUEUE Pending commits in LSN order GROUP COMMIT LSN 20 LSN 49 LSN GROWTH Durable LSN at head-node AMAZON AURORA 最初の書き込みと同時にI/Oリクエストを実行 書き込みが実行されるまでバッファを埋める 6 つの内 4 つのストレージノードから ACK が返ってきた時点で堅牢性のある書き込みが完了

過去数ヶ月で改善したこと ロック競合 ホットな行競合ディクショナリ統計小さなトランザクションのコードパスクエリーキャッシュのread/write 競合ディクショナリシステムのmutex 顧客フィードバック binlogと分散トランザクションロックの圧縮先読み (read-ahead) バッチ操作 書き込みバッチサイズのチューニング read/write I/O 要求送信の非同期化パージスレッドのパフォーマンスバルクインサートのパフォーマンス その他 フェイルオーバー時間の短縮 mallocの削減システムコールの削減 Undoスロットのキャッシュパターン協調したログ適用

Amazon Aurora の使いどころ

クエリ同時実行数やテーブルサイズが大きい Amazon Auroraに移行することで クエリスル ープットの向上などが見込まれる マルチコア環境でCPUを効率的に利用 分散ロック機構やQuery Cacheの改善による性能向上 ディスク データ量の増加に応じてディスク容量を気にする必要が無い 性能に影響を及ばさずバックアップ

複数のサーバにシャーディングしている 複数の小さいDBを1つにまとめる コスト効果増大と管理コストの軽減 シャーディングをするデータベースを減らすことでアプリケー ションの設計を簡略化出来る 障害時の影響を考慮する必要はある

新機能

MySQLスナップショットバックアップからの移行 Percona Xtrabackupを利用して作成したバックアップデータを 利用してオンプレミス環境やAmazon EC2上のMySQLから Amazon Auroraクラスへ移行する mysqldumpと比較したテストで約20倍高速に移行可能 バックアップデータをS3にアップロードし そのデータを利用 アップロードにはManagement ConsoleやCLI tools データサイズが大きい場合は AWS Import/Export Snowballを利用してS3へ転送する MySQLからAmazon Auroraへレプリケーションを行う機能と合 わせて利用することで アプリケーションのダウンタイムを短 縮可能

クロスリージョンレプリケーション対応 リージョン間でWriterとReaderを配置可能 クロスリージョンレプリケーションのセットアップなどは全て マネージド コンソールやAPI経由で簡単に構築可能 DRや他リージョンへDBを移設する場合などに利用 注意点 機能を有効にする前に必ず最新のパッチを適用して下さい バイナリログを利用したレプリケーションのため 設定前にDB パラメータグループでbinlog_formatを設定(MIXED推薦) バイナリログを利用したリージョン間レプリケーションのため 大きめのレプリカラグが発生しやすい

Auroraでアカウント間でスナップショットを共有可能 に Auroraスナップショットを共有可能に スナップショットは他のAWSアカウントと共有するだけではな く パブリック(全ユーザ)に共有も可能 同一リージョンの他のAWSアカウントで起動しているAuroraス ナップショットからデータベースをリストア可能 用途 環境の分離 データの共同利用

Auroraで暗号化されていないSnapshotから暗号化ク ラスタを作成可能に 暗号化されていないAuroraクラスタを KMSで 暗号化されたAuroraクラスタへ簡単に移行可能 Snapshotからrestoreを行う 既存のSnapshotからrestoreする際にEnable EncryptionをYesに設定し使用するKeyを選択

ローカルタイムゾーン対応 time_zoneパラメータにより任意のタイムゾー ンに設定可能 RDS MySQL, RDS MariaDBでは既に対応済み

フェイルオーバー順の指定 Amazon Auroraのフェイルオーバーの順位を任 意に設定可能 フェイルオーバーで昇格させるReaderの順番を指定可能 優先的にフェイルオーバー先に指定するReaderを設定可能なため バッチや集計用途などで利用している サービスに組み込みたくな いReaderを作ることも可能 優先度: Tier 0 > Tier 1 > > Tier 15 同じ優先度のReaderが存在する場合 Writerよりも大きいインスタンス 優先度もインスタンスサイズも同じ場合は 同じ優先度のReaderから 任意に選択される

Cluster View Amazon Aurora Cluster の情報専用の画面 Cluster 毎に情報を参照出来る 例 : Cluster Snapshot からリカバリを行ったり Cluster 内の DB インスタンスを全て削除した場合 Cluster 定義のみが残るので Instance View には表示されないが Cluster View には表示される

拡張モニタリング Process list Metrics list

重要なシステム /OS メトリクスに対応 CPU Utilization User System Wait IRQ Idle Network Rx per declared ethn Tx per declared ethn Processes Num processes Num interruptible Num non-interruptible Num zombie Process List Process ID Process name VSS Res Mem % consumed CPU % used CPU time Parent ID Memory MemTotal MemFree Buffers Cached SwapCached Active Inactive SwapTotal SwapFree Dirty Writeback Mapped Slab Device IO TPS Blk_read Blk_wrtn read_kb read_ios read_size write_kb write_ios write_size avg_rw_size avg_queue_len File System Free capacity Used % Used

拡張モニタリング CloudWatch LogsからElasticsearch Service

Encryption at Rest 格納時暗号化 Key Management Service(KMS)を利用し 透過的な暗 号化と復号を行う 暗号化指定はAuroraクラスタ起動時のみ ストレージ内やSnapshotが暗号化される 暗号化されたSnapshotを暗号化が無効なAuroraクラスタに復元は出来ない Diskに書き込まれるタイミングで自動的に実施 テーブルの中身を暗号化するものでは無い点注意 実施する場合はアプリケーションなどで実施 (KMSを活用可能)

パフォーマンスの改善 Large dataset read performance スケジューラの改善により IO/CPUヘビーなワークロードでAuroraが動的に処 理スレッド数を調整することでIO数/CPU利用率のバランスがとれ 性能を向上 させる Fast Insert Primary keyで並んでいるデータを LOAD DATA や INSERT INTO... SELECT で 並列に実行した場合の速度を改善 (将来的には他のワークロードにも適用予定) モニタリング用にGlobal変数を追加 aurora_fast_insert_cache_hits: キャッシュのcursorにヒットした aurora_fast_insert_cache_misses: ヒットせずindexを走査した Parallel Read Ahead B-Treeスキャン性能を向上させる Disk pageの読み込みパターンを自動的に判 断し 事前にフェッチしバッファキャッシュに載せることで速度改善を行う 現在は Writerで有効になっており 今後Readerにも適用を行う シーケンシャルアクセスのパフォーマンスを大幅に改善

Lab mode 今後提供予定の機能を試すことが可能 DBパラメータグループ aurora_lab_mode 変数で設定可能 開発チームでテストがされておりますが 開発中の機能なので 本番適用ではなく検証目的でお使い下さい Production用途で利用可能なクオリティではありますが 正式公開 に向けて多くのワークロードで安定して性能を出せるように最後の 調整が行われているステータスです パラメータをOFFにすることで直ぐに無効化できるためテストしや すい フィードバックをお待ちしています

まとめ

Amazon Aurora クラウド時代に Amazon が再設計した RDBMS MySQL5.6 と互換があり既存の資産を活かしやすい 高いクエリ実行並列度 データサイズが大きい環境で性能を発揮 Amazon Aurora はコネクション数やテーブル数が多い環境で優位性を発揮 高可用性 高速なフェイルオーバー 実環境での性能向上を実現するための多くのチャレンジ

Webinar資料の配置場所 AWS クラウドサービス活用資料集 過去の資料が分かりやすくまとめられています http://aws.amazon.com/jp/aws-jp-introduction/ AWS Solutions Architect ブログ 最新の情報 セミナー中のQ&A等が掲載されています http://aws.typepad.com/sajp/

Q&A [ 導入に関しての問い合わせ ] http://aws.amazon.com/jp/contact-us/aws-sales/ [ 課金 請求内容 またはアカウントに関するお問い合わせ ] https://aws.amazon.com/jp/contact-us/

Webinar資料の配置場所 AWS クラウドサービス活用資料集 http://aws.amazon.com/jp/aws-jp-introduction/

公式 Twitter/Facebook AWS の最新情報をお届けします @awscloud_jp 検索 もしくは http://on.fb.me/1vr8ywm 最新技術情報 イベント情報 お役立ち情報 お得なキャンペーン情報などを日々更新しています!