AWS一押しのリレーショナルデータベース「Amazon Aurora」の実力とは

aws-article-covers

Amazon Auroraが世界中で使用可能になって以来、従来のデータベースとは異なる新しい設計思想が話題を呼んできた。性能・可用性・価格面で商業用データベースを上回るというAmazon Auroraは、どのような仕組みになっているのだろうか。

5倍のスループットを実現するクラウド時代のデータベース

リレーショナルデータベースの技術が提案されたのは1970年代のことだ。大型コンピュータ中心の時代にデータを速く正確に読み書きする手段として製品化が広まっていった。クラウド・コンピューティング全盛の現代では、データベースに関する要件が大きく異なってきており、当時のリレーショナルデータベース設計は理想的なものではなくなっている。そこで、クラウド時代に合ったデータベースを作るという野心をもって始められたのがAmazon Auroraだ。

クラウド環境の特徴はスケールアウトが頻繁に行われる点にある。データベースにアクセスするマシンが増減しても、柔軟に対応できるデータベースが求められる。技術的にはもちろん、価格体系にも柔軟性が必要だ。Amazon Auroraは、これらの要件に対する解決策を備えている。

Amazon Auroraの大きな特徴に、容量のシームレスな拡張が挙げられる。10GBから64TBまで柔軟に変更できるため、事前の詳細な容量見積もりが必要ない。また、利用した分だけ支払う従量課金モデルなので、コスト最適化が図れる。MySQLと互換性があるので、既存システムの移行が容易であるのに加え、オープンソースソフトウェアのシンプルさが継承された。同等のハイエンドデータベースに比べ1割程度と言われる価格レベルになっているため、性能に対するコストの低さも魅力の一つと言えるだろう。

Amazon Auroraは検索性能が高く、ハイエンドデータベースと同様のパフォーマンスが期待できる。標準のMySQLと比較し、5倍のスループットが実現できる。また、スケールアウトを前提としたレプリカ構成なので、99.99%の可用性が提供されるのも強みだ。自己修復機能を備え、ディスクの障害があっても、自動的にバックグラウンドで修復されるため、システムの継続が容易になる。

Amazon Auroraはセキュリティの機能も充実している。AWS Key Management Service (KMS) で作成するキーを使用して、データベースが暗号化できる。さらに、Amazon VPC(仮想プライベートクラウド)内で実行されるため、他のネットワークから隔離された場所でデータ管理が可能だ。

Amazon Auroraの主な特徴
amazon-aurora-1

並列・分散・非同期で6つのデータコピーを作成するアーキテクチャ

Amazon Auroraのアーキテクチャは可用性を高めるために設計されている。具体的には、3つのアベイラビリティ・ゾーンに6つのデータコピーを作成する。6つのうち、2つのコピーに障害があっても読み書きに影響はなく、たとえ、3つのコピーに障害が発生しても読み込みは可能だと言う。障害は自動的に検知され、修復作業も行われる。

MySQLのレプリケーションでは、マスターに負荷がかかり、同期に遅延が発生する課題があった。Amazon Auroraのレプリケーションは、6つのコピーへ非同期に書き込むため、処理が効率化される。具体的には4つのコピーに書き込まれた段階で正常完了と見なし、次の処理を開始し、残りの2つのコピーは非同期で書き込みを行う。読み込む場合には、3つ以上のコピーから同じデータが取得できた際に、読み取り完了とするので、書き込む前の値が誤って取得されることはあり得ない。

Amazon Auroraでは自動的に増分バックアップがなされ、最大35日間Amazon S3に保持される。5分前から任意の時点へ秒単位で復元が可能だ。並列・分散・非同期で増分バックアップが作成されるため、パフォーマンスに影響が出ないという特徴がある。スナップショットもAmazon S3に保存され、必要なときに新しいインスタンスへ適用できる。スナップショットは明示的に削除されるまで、S3に保存され続ける。

東京リージョンの場合、r3.largeを選択すると、時間あたり0.35ドルの料金設定になっている。6個のデータコピーが含まれた値段になっており、使った分だけ請求される従量課金である。2016年9月現在、米国西部 (オレゴン)、米国東部 (バージニア北部)、欧州 (アイルランド)、アジアパシフィック (シドニー)、アジアパシフィック (ソウル)、およびアジアパシフィック (ムンバイ)に展開された。

Amazon Auroraの分散型アーキテクチャ
amazon-aurora-2

インスタンス・タイプはr3に限られる点に注意が必要

Amazon Auroraの優位性が発揮できるアプリケーションは、並列性が高いものが挙げられる。セッション数やコネクション数が多い場合、分散・非同期の仕組みによって、5倍に達するという高いスループットが活用できるからだ。また、テーブルサイズが大きなアプリケーションについても、自動で容量が追加される機能により、上限を気にしなくなるメリットが享受できる。

MySQLのシェーディング機能により、一つのデータベースを複数のマシンに分割していたアプリケーションは、Amazon Auroraを導入すると、その強みが最大限に活かせるだろう。複数に分かれていたMySQLデータベースを一つのAmazon Auroraとして取り扱えるため、管理が容易になる。シャーディングによる負荷分散やコスト最適化の効果は、Amazon Auroraでも同様だ。

AWSのMySQLからAmazon Auroraへ移行する場合、マネージメント・コンソールから簡単に作業が完了できる。ただし、MySQLと互換があると言っても、パラメータで指定できる値やデフォルト値が異なるケースがあるため、移行には注意が必要だ。また、MySQLではストレージ・エンジンとしてInnoDBとMyISAMが存在するが、Amazon Auroraに直接マイグレーションできるのはInnoDBだけになっている。

その他の注意点としては、Amazon Auroraが対応しているEC2インスタンスが「r3」のみになっている点が挙げられる。r3はメモリ最適化型のインスタンス・タイプであり、通常はインメモリ分析や高い性能が求められる企業システム向けに使用される。小規模なアプリケーションでAmazon Auroraを試してみるには、価格的に見合わないケースがあるだろう。Amazon Auroraに適したアプリケーションに限って使うよう注意する必要がある。

最後に

Amazon Auroraはクラウド時代に適したスケールアウト型のアーキテクチャを採用している。高いスループットが必要になるアプリケーションでは高い性能を発揮してくれるだろう。

Pocket

コメント