Amazon Auroraデータベースの特徴

クラウドにおいて、リレーショナルデータベースサービスは仮想マシンサービスと並んでよく利用されるサービスの一つです。
多くのリレーショナルデータベースサービスはPaaSとして提供され、ユーザーはインフラストラクチャを管理することなくリレーショナルデータベースの機能を利用することができます。
主要なクラウド事業者の一つであるAmazon Web ServicesはリレーショナルデータベースサービスとしてAmazon Relational Database Service (RDS)を提供しており、Amazon RDSではリレーショナルデータベース管理システム(relational database management system: RDBMS)として、Oracle DatabaseやMicrosoft SQL Serverなどの商用RDBMSや、MySQLやPostgreSQLなどのオープンソースRDBMSを選択することができます。
さらに、Amazon RDSではこれらのRDBMSに加え、AWS独自のRDBMSである「Amazon Aurora」が利用可能であり、この点はAmazon RDSの大きな特徴となっています。
このコラムではAmazon Auroraの概要について解説すると共に、他のRDBMSと比較した場合のAmazon Auroraの特徴を紹介します。

Amazon Auroraについて

Amazon Auroraとは何か

Amazon AuroraはAWSが開発したRDBMSであり、Amazon Auroraを使うことによって表形式でデータを保管することができます。
Amazon Auroraに限らず、RDBMSではデータ構造の定義やデータ操作のために構造化問い合わせ言語(structured query language: SQL)が用いられます。
また、Amazon AuroraはオープンソースRDBMSであるMySQLやPostgreSQLと互換性のあるインタフェースを備えており、これらを使用しているシステムはAmazon Auroraへの移行がしやすいと言えます。
商用RDBMSやオープンソースRDBMSはクラウドでの利用に加え、サーバーソフトウェアをマシンにインストールするなどしてオンプレミスでも利用できますが、Amazon AuroraはAWS専用のRDBMSとなっています。

Amazon RDSとの関係性

Amazon Auroraは一見すると、他のAWSのサービスと同様に、独立したサービスのように思えますが、実態はOracle DatabaseやMicrosoft SQL Serverなどと同じくAmazon RDSで利用可能なRDBMSのオプションの一つです。
したがって、Amazon Auroraを利用するためにはAmazon RDSを利用する必要があり、自動パッチ適用や自動バックアップなどのAmazon RDSの特徴であり基本的な機能についてもAmazon Auroraへ引き継がれます。
Amazon AuroraはAmazon RDSから引き継がれる特徴に加え、Amazon Aurora特有の機能を備えており、この点がAmazon Auroraの魅力を高めています。
Amazon Auroraの特徴については後半のセクションで紹介します。

RDBMSとNoSQLについて

最近、NoSQLという言葉を聞かれることがあるかと思います。
Amazon Auroraを含むRDBMSでは、トランザクションや排他制御などのデータの一貫性を保つための機能が充実していますが、一方でスケーラビリティーが犠牲となっています。
小規模なシステムではスケーラビリティーの低さは特に問題にはなりませんが、システムの規模が大きくなっていくにつれてコストパフォーマンス(リソースの投入量に対して得られる性能の向上)が悪化し、最終的には性能の限界を迎えます。
このRDBMSのスケーラビリティーの課題を解決するため、MongoDBなどの新方式のデータベース管理システムが次々と登場しました。
これらのデータベース管理システムはNoSQL(not only SQL)と呼ばれ、その多くはRDBMSと比べて高いスケーラビリティーや可用性などを持つことを特徴としています。
AWSもNoSQLサービスとしてAmazon DynamoDBやAmazon DocumentDBなどを提供しており、これらのサービスを利用することによってJSON形式でデータを保管することができます。
しかしながら、NoSQLはスケーラビリティーを高めるためにデータの一貫性を保つことを少なからず犠牲にしていることに加え、RDBMSであれば当り前のように備えている表の結合などの機能を欠いているなど、制限も少なくありません。
RDBMSとNoSQLではどちらか一方が他方より優れているわけではないため、使いどころの見極めが大切になります。

Amazon Auroraの特徴

ここまで、Amazon Auroraの概要について解説してきました。
先にも述べたように、Amazon Auroraは他のRDBMSにはない特有の機能を備えており、この点がAmazon Auroraの魅力を高めています。
以下、Amazon Auroraの特徴をいくつかピックアップして紹介します。

最大15個のAuroraレプリカ

Amazon Auroraに限らず、Amazon RDSでは「リードレプリカ」と呼ばれるインスタンス(仮想マシン)を配置することにより、データ読み込みの負荷を分散させることができます。
リードレプリカは性能の向上を目的として配置され、可用性の向上を目的とする場合は「マルチAZ配置」オプションを使用してプライマリーデータベースとは異なるアベイラビリティーゾーン(availability zone: AZ)にセカンダリーデータベースを配置します。
プライマリーデータベースとセカンダリーデータベースの関係はアクティブ/スタンバイであり、プライマリーデータベースが稼働している間、セカンダリーデータベースは待機しているだけなので少しもったいない感じがします。
これに対し、Amazon Auroraのリードレプリカである「Auroraレプリカ」はリードレプリカでありながら自動フェイルオーバー機能を備えているため、セカンダリーデータベースの役割を兼ねることができます。
さらに、他のRDBMSではリードレプリカの数は最大5個であるのに対し、Amazon Auroraでは最大15個のAuroraレプリカを配置することができ、この点もAmazon Auroraの大きな特徴の一つとなっています。
リードレプリカでありながら自動フェイルオーバー機能を備えていることや最大15個のAuroraレプリカを配置することができることなどが、Amazon Aurora 特有の機能です。

ストレージのオートスケーリング

Amazon RDSではインスタンスを起動する際にストレージのサイズを指定する必要があります。
ストレージのサイズは起動後も変更することができるため、必要に応じて後から増やすことができます。
このような柔軟性に加え、Amazon Auroraはストレージのオートスケーリング機能を備えており、データベースに保管されるデータの容量に応じて最小10GBから最大65TBまで10GB単位でストレージのサイズがスケーリングします。
データ容量の監視やストレージサイズのサイズ変更操作が不要になることは、運用上の大きなメリットとなります。
なお、ストレージのオートスケーリングは長らくAmazon Auroraに特有の機能でしたが、2019年1月に他のRDBMSでも利用できるようになりました。
今後もAmazon Auroraだけが備えていた機能が他のRDBMSでも利用可能になることが期待されます。

Amazon Aurora Serverless

使用頻度の低いアプリケーションや開発やテスト用のデータベースなどの場合、ユースケースによってはRDBMSを常に稼働させる必要がないこともあります。
このような場合に手動でRDBMSのインスタンスの起動や停止を行うこともできますが、Amazon Auroraの「サーバーレス」オプションを利用することにより起動や停止の自動化が可能であることも、Amazon Auroraに特有の機能です。
インスタンスが停止している間はインスタンスの利用料金は発生しないため、コストを低減させることができます。
なお、停止しているインスタンスが起動するまでにはある程度の時間を要するため、レスポンスタイムが重要となるようなWebサイトなどの場合はサーバーレスのオプションを使わない方が良いこともあります。

おわりに

多くのシステムではRDBMSが使用されており、RDBMSの選定はシステムの開発や運用に大きく影響します。特にAWSへシステムを移行する際には、Amazon RDSやAmazon Auroraに関して熟知しておきましょう。

移行準備段階で知っておくべきAmazon Web Servicesの
サービスを学び、具体的にクラウド検討を考える!

ネットワークからクラウドまでトータルサポート!!
NTT東日本のクラウド導入・運用サービスを確認してください!!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る