AWS TRAINING COURSE
---LESSON 12---

商用DBに求められる要件を
10分の1のコストで実現する
Amazon Aurora

今回はクラウド向けのリレーショナルデータベース(RDB)として開発された「Amazon Aurora」(Aurora)を紹介します。Auroraはフルマネージド型のRDBエンジンで、MySQL、PostgreSQLと互換性があり、既存システムで使用しているコード、ドライバ、ツールなど、ほとんど変更することなく利用を開始することができます。クラウド時代に求められる要件を満たすために再設計、最適化されたRDBであり、商用データベースに劣らない性能と可用性を10分の1程度のコストで実現しています。

モノリシック構成を最適に分離
クラウド向けに再設計・最適化されたRDB

講師:
アマゾン ウェブ サービス ジャパン
パートナーアライアンス統括本部
ストラテジックSI技術部
松尾 亮氏

 データベースシステムが登場したのは1970年代で、当時のデータベースのアーキテクチャはいわゆるモノリシックな構成でした。計算リソース(コンピュート)もストレージも一つの箱に入っていました。しかしクラウドが主流になってきた昨今、これまでのモノリシックなデータベースのアーキテクチャでは時代にマッチしなくなってきました。

 そこで拡張性、可用性、耐久性を考慮して、コンピュートとストレージを最適に分離するなど、クラウド向けに再設計/最適化されたRDBが「Amazon Aurora」(Aurora)です。

 Auroraの主な利点として「優れた性能と拡張性」と「高可用性と耐久性」が挙げられます。データベースとして性能、拡張性、可用性、耐久性を高いレベルで提供することは、特に重要な要素です。

優れた性能と拡張性

 Auroraは標準的なMySQLと比較して約5倍、PostgreSQLと比較して約3倍のスループットを実現しています。データベースワークロード用のSSDベースの仮想化ストレージレイヤーとデータベースエンジンを完全に統合して、高い性能を実現しています。

 利用時の要件に合わせてデータベースに割り当てるコンピューティングリソース(インスタンスタイプ)を簡単に変更(スケールアップ、スケールダウン)することができます。最大15個のAuroraレプリカを構成し、読み取り性能をスケールさせることもできます。

 ストレージにおいては最小10GBから、データベースの使用量に応じて最大128TBまで、データベースの性能に影響を与えることなく自動で拡張されます。

 またアプリケーションのニーズに応じて自動的に起動、停止、キャパシティのスケールアップ、スケールダウンを行える「Aurora Serverless」を選択することもできます。Aurora Serverlessは不定期、断続的、または予測不能なワークロード向けにシンプルでコスト効率の良いオプションを提供します。

高可用性と耐久性

 データベースの責務として「止まらないこと(万が一の停止時間を短くすること)」と「データを消失しない」ことは最も重要な要件です。Auroraレプリカを同一、または異なるアベイラビリティゾーン(AZ)に作成しておくことで、フェイルオーバーが発生した場合にAuroraレプリカを新しいプライマリーに昇格させることができます。フェイルオーバーは通常30秒以内に完了します。

 また「Aurora Global Database」を使用することで、データベースを複数のAWSリージョンに配置することができます。例えばプライマリーとなるデータベースを東京リージョンに構成し、その他の複数リージョンにセカンダリーを構成して災害対策用、および読み取り専用のデータベースとして利用することができます。

 このAurora Global Databaseのレプリケーションは、物理的なストレージレイヤーで実現しています。ストレージレイヤーでのレプリケーションでは、スループットが高く遅延が少ないという利点があります。これによりデータベースが高負荷な状態においても1秒未満のリージョン間レプリケーションラグを実現でき、リージョン障害時には通常1分未満でリカバリーを完了できます。

 耐久性を高めている特徴的なアーキテクチャーとしてAuroraのストレージではユーザデータを三つのAZにまたがってAZごとに二つ、合計六つのコピーを保存しています。これにより一つのAZ障害と、同時に別のAZでもう一つの障害が発生した場合でも継続可能なアーキテクチャーを実現しています。

 またAuroraのストレージは自己修復機能を備えており、データブロックおよびディスクはエラー検出のために継続的にスキャンされ、自動的に修復されます。

 Auroraに興味はあるが既存のデータベースからの移行は大変なのではないか、と思われる方も多いと思います。AWSでは移行をサポートする便利なサービスも提供しています。移行については次の機会に紹介します。