このページの本文へ

前へ 1 2 次へ

OSS DBも商用DBも、技術イベント「AWS DB Day」開催――基調講演レポート(前編)

“PostgreSQL互換版”Amazon Auroraの性能はRDSの何倍?

2017年07月07日 07時00分更新

文● 大塚昭彦/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 アマゾン ウェブ サービス ジャパン(AWSJ)が7月5日、AWS上でのデータベース(DB)技術をテーマとしたイベント「AWS Solution Days 2017 ~AWS DB Day~」を開催した。基調講演では4名のゲストが登壇し、Amazon Aurora/RDS、PostgreSQL、MySQL/MariaDB、Oracle DB、SQL Server、Kinesis FirehoseなどのAWS上での性能検証結果やDB移行、活用事例などを技術的側面から紹介した。

 基調講演レポート前半ではまず、SRA OSS, Inc.の石井達夫氏による「Amazon Aurora with PostgreSQL Compatibility」のパフォーマンス検証結果報告、インサイトテクノロジーの小幡一郎氏によるOSSのカラム型DBエンジン「MariaDB ColumnStore」紹介をお届けする。

「AWS Solution Days 2017 ~AWS DB Day~」会場の様子

PostgreSQL互換版 AuroraのWrite性能を検証、SRA OSS・石井達夫氏

 最初に登壇したSRA OSS 日本支社 取締役支社長の石井達夫氏は、昨年11月の「re:Invent 2016」で発表され、現在プレビュー提供中の「Amazon Aurora with PostgreSQL Compatibility(以下、Aurora PostgreSQL互換版)」を性能検証した結果を報告した。

SRA OSS, Inc. 日本支社 取締役支社長の石井達夫氏。日本のPostgreSQLコミュニティの生みの親である

 石井氏はまず、Aurora PostgreSQL互換版の機能ブロック構成について説明した。このAuroraでは、DBエンジン部分にはPostgreSQL 9.6のコードをそのまま利用して互換性を持たせる一方で、Read(読み込み)処理を分散し高速化するリードレプリカ(Read Replica)はAWS独自のものに差し替え、加えてフェールオーバー処理や高速なWrite(書き込み)性能を新たに実現しているという。

 このうち、石井氏はWrite性能の向上に注目して性能検証テストを実施した。Write処理の性能向上は、アプリケーション変更が必要になるなどRead処理のそれと比べて難しいというのが常識で、「『Auroraに乗り換えるだけで性能が向上する』といううまい話が本当にあるのか?」と考えたという。

 検証は、AWS上でAurora PostgreSQL互換版とAmazon RDS for PostgreSQLのインスタンスを用意し、pgbench(PostgreSQL用のベンチマークツール)が大量のトランザクションを流し込むかたちで実施した。同時接続数を250/500/750/1000と変化させながら1時間ずつトランザクションを流し、実行できたトランザクションを性能指標とする。なお、1つのトランザクションにはSELECTが1回、UPDATEが3回、INSERTが1回含まれる。

検証環境。Aurora PostgreSQL互換版とAmazon RDS for PostgreSQLに、pgbenchから大量のWriteトランザクションを流し込みパフォーマンスを計測する

 検証の結果、Aurora PostgreSQL互換版は、Amazon RDS for PostgreSQL比でおよそ3倍のスループットを実現し、レスポンス時間も短く安定していることが明らかになった。Auroraのほうは同時接続数を増やしてもスループットの劣化が少ない点もポイントだと述べた。

スループットとレスポンス(応答)時間の検証結果。Aurora PostgreSQL互換版は高速、安定している。なおAuroraのレスポンスで時々現れるスパイクの原因は「謎」とのこと

 なお石井氏は、SRA OSSが中心となって開発しているPostgreSQL管理ミドルウェア「Pgpool-Ⅱ」の機能を紹介し、今後、Aurora PostgreSQL互換版にも対応していく意向を明らかにした。Pgpool-Ⅱは、クエリ内容に応じて複数ノード(Writer、Read Replica)への負荷分散処理ができるOSSツールであり、Aurora PostgreSQL互換版の処理をさらに効率化/高速化するはずだ。

「Pgpool-Ⅱ」の負荷分散管理のイメージ。プロキシのように働き、クエリの内容(参照/更新)に応じて相手ノードを選択する

前へ 1 2 次へ

カテゴリートップへ