Amazon Aurora
MySQL や PostgreSQL と互換性を持ちながら最大 5 倍の性能を発揮する高性能データベース
何ができるか
Amazon Aurora は、AWS が独自に開発したリレーショナルデータベースエンジンです。MySQL および PostgreSQL と互換性があり、既存のアプリケーションをほぼそのまま移行できます。商用データベースに匹敵する性能と可用性を、10 分の 1 程度のコストで実現します。ストレージは最大 128TB まで自動的に拡張され、3 つのアベイラビリティゾーンにわたって 6 つのデータコピーを保持します。
どのような場面で使うか
高いトランザクション性能が求められる EC サイト、大規模な SaaS アプリケーションのバックエンド、金融系システムのデータ処理、ゲームのユーザーデータ管理、既存の MySQL や PostgreSQL からの移行先など、高性能かつ高可用性が求められるデータベース用途で利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
高級車のエンジンを載せた大衆車に例えるとわかりやすいでしょう。見た目や操作方法 (MySQL/PostgreSQL 互換) は普段乗り慣れた車と同じですが、エンジン (ストレージ層) が特別に設計されているため、加速性能 (処理速度) や燃費 (コスト効率) が格段に優れています。
Aurora とは
Amazon Aurora は、AWS がクラウド向けにゼロから設計したリレーショナルデータベースエンジンです。従来のデータベースはオンプレミス環境を前提に設計されていましたが、Aurora はクラウドの分散アーキテクチャを最大限に活用する設計になっています。MySQL 互換の Aurora MySQL と、PostgreSQL 互換の Aurora PostgreSQL の 2 つのエディションが提供されています。
高性能の秘密
Aurora が高い性能を発揮できる理由は、ストレージ層の革新的な設計にあります。従来のデータベースではデータの書き込み時にログとデータページの両方を書き込む必要がありましたが、Aurora はログのみをストレージ層に送信し、データページの生成はストレージ側で行います。この設計により、ネットワーク I/O が大幅に削減され、標準的な MySQL と比べて最大 5 倍、PostgreSQL と比べて最大 3 倍の性能を実現しています。
Aurora Serverless
Aurora Serverless は、データベースの容量を自動的にスケーリングするオプションです。アクセスがない時間帯は自動的に停止し、リクエストが来ると数秒で起動します。開発・テスト環境や、アクセスパターンが予測しにくいアプリケーションに適しています。Aurora Serverless v2 では、より細かい粒度でのスケーリングが可能になり、本番環境でも活用しやすくなっています。
はじめかた
Aurora を使い始めるには、RDS コンソールで「データベースの作成」をクリックし、エンジンタイプとして Aurora (MySQL 互換) または Aurora (PostgreSQL 互換) を選択します。インスタンスクラスを選び、マスターユーザー名とパスワードを設定すれば、数分でクラスターが起動します。接続方法は通常の MySQL や PostgreSQL と同じで、既存のドライバーやツールがそのまま使えます。
Azure・オンプレミスとの比較
AWS の優位点
- 標準的な MySQL の最大 5 倍、PostgreSQL の最大 3 倍の性能を、クラウド最適化されたストレージ層の設計により実現している
- 3 つのアベイラビリティゾーンにわたる 6 つのデータコピーにより、商用データベースに匹敵する高可用性を 10 分の 1 程度のコストで提供する
- Aurora Serverless v2 により、アクセスパターンに応じた細粒度の自動スケーリングが可能で、アイドル時のコストを最小化できる
注意点
- Aurora は RDS の標準 MySQL/PostgreSQL と比べてインスタンス料金がやや高いため、小規模なプロジェクトでは標準 RDS で十分な場合がある
- Aurora Serverless v2 はアクセスがない時間帯のコストを削減できるが、最小キャパシティの設定に注意すること
- MySQL や PostgreSQL からの移行は高い互換性があるが、一部の機能やパラメータに差異があるため、事前にテストすること
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。