AWS(Amazon Web Services)が提供しているデータベースサービス「Amazon RDS」の1つである「Amazon Aurora」をご存じでしょうか。
一定時間に処理できるデータ量やデータの転送速度を”スループット”と呼びますが、Amazon Auroraは、標準的なMySQLの5倍のスループット・PostgreSQLの3倍のスループットを実現しています。
これだけ聞くと「なんとなく、すごそう!」と思いますよね。
本記事では、Amazon RDSの1つであるAmazon Auroraにフォーカスし、Amazon Auroraの概要やメリット、料金体系などを解説いたします。
Amazon Aurora とは
前述の通り、Amazon Auroraは、AWS EC2やAWS S3など様々なサービスを提供するAWS(Amazon Web Services)が提供するデータベースサービス「Amazon RDS」の1つです。
また、Amazon Auroraは、MySQLとPostgreSQLをサポートしています。MySQLとPostgreSQLは、オープンソースであり、運用上も比較的安価ですが、拡張性の考慮や性能を引き出す(チューニング)ためには、高度なスキルが必要であり、大企業向けではないとされていました。
そのため、大企業など大規模な運用では、商用ライセンスが必要なOracle DatabaseやMicrosoft SQL Serverなどが採用されています。
Amazon Auroraは、MySQLとPostgreSQL利用時の性能面や拡張性に関する機能を強化し、MySQLとPostgreSQLの特徴であったシンプルさやコスト効率も維持したまま利用することができるようになっています。
AWSによると、Amazon Auroraは、標準的なMySQLの5倍のスループット・PostgreSQLの3倍のスループットを実現しているとされています。
補足:RDB、RDBMSとは
ここで少し用語の説明をします。
表形式のデータを扱うデータベースは、リレーショナルデータベース(Relational DataBase)と呼ばれ、頭文字を取って”RDB”と呼ばれます。
RDBは、データに一貫性があり、最も利用されているデータベースの種類で、Oracle DatabaseやMicrosoft SQL Serverなどの商用ライセンスや、MySQLやPostgreSQLなどの誰でも無料で使うことができるオープンソースがあります。
また、RDBはあくまで表形式のデータを扱うデータベースですが、データの登録や更新、削除などのデータベース操作などの管理を行うシステムをデータベース管理システム(Relational Database Management System)と呼び、頭文字を取って”RDBMS”と呼びます。
一般的なRDBMSとAmazon Auroraの違い
一般的なRDBMSは、データを格納するストレージ部分と実際のデータの検索などの処理を行うコンピュート部分を1つにした、データベースエンジンを構成しています。
一方で、Amazon Auroraは、クラウドの特性を活かし、ストレージ部分とコンピュート部分を別々にしたデータベースエンジンとなっているため、従来のMySQLとPostgreSQL利用時のネックであったスケーラビリティや可用性、耐久性を強化しています。
Amazon RDSとの関係について
前述の通り、Amazon RDSは、Amazon Relational Database Serviceの略称で、AWSのデータベースサービスです。
そのため、Amazon Auroraは、Amazon RDSの一部として位置づけされ、サービス提供されています。
Amazon RDSとAmazon Auroraの違いはいくつかありますが、大きな違いは、以下の通り、選択できるデータベースエンジンになります。
〇Amazon RDSで利用可能なデータベースエンジン
・MySQL
・PostgreSQL
・MariaDB
・Oracle
・Microsoft SQL Server
〇Amazon Auroraで利用可能なデータベースエンジン
・Aurora MySQL ※MySQLと互換性あり
・Aurora PostgreSQL ※PostgreSQLと互換性あり

Amazon Aurora のメリット
Amazon Auroraは、独自のアーキテクチャにより構成されており、大きく以下の2点のメリットがあります。
ストレージの可用性
1つ目は、ストレージの可用性です。
Amazon RDSのその他のデータベースでは、データの処理を行うインスタンスとデータを格納するストレージは、「1 対 1」であり、処理を行う際は、インスタンスはストレージと通信し、処理を行います。
また、インスタンスとストレージは、1つのアベイラビリティゾーン(AZ)呼ばれる1つのAWSリージョン内でそれぞれ切り離され、冗長的な電力源/ネットワーク//接続機能を備えているデータセンター内にあります。
一方で、Amazon Auroraは、ストレージが複数のAZに存在し、1AZ当たり2か所、3AZに渡りデータをコピーされ、計6か所にストレージに冗長化されています。
そのため、複数AZかつインスタンスとは別のストレージを利用することで、万が一、1つのAZで障害が発生した場合も、冗長化された別のAZのデータを利用することができます。
また、データは単純に複数AZに保存されているだけではなく、データの破損状態は常にチェックされ、障害検知時は自動復旧されます。
インスタンスの可用性
2つ目は、インスタンスの可用性です。
Amazon Auroraでは、プライマリインスタンスに加えて、読み込み専用のAuroraレプリカ(Reader)を作成することができます。
なお、プライマリインスタンスに障害が発生した場合は、Auroraレプリカをプライマリに手動/自動で昇格することもできます。
また、Amazon RDSでは、レプリカは最大5つまでですが、Amazon Auroraでは最大15個まで作成することができ、インスタンスの役割・用途を分けることで、効率的に処理を分散することもできます。
Amazon Aurora のデメリット
メリットが多く、性能も高いAmazon Auroraですが、前述の通り、MySQLとPostgreSQLしかサポートしていない。などのデメリットもあります。
一部のデータベースエンジンに互換性がない
まず、1つ目は、一部のデータベースエンジンに互換性がないことです。
Amazon Auroraは、MySQLとPostgreSQLには互換性がありますが、他のOracle DatabaseやMicrosoft SQL Serverなどのデータベースエンジンには互換性がありません。
そのため、他のデータベースエンジンから移行する際は、AWS Schema Conversion Toolを利用し、自動変換もしくは手動で変換する必要があります。
データベースエンジンのバージョンによっては互換性がない
2つ目は、データベースエンジンのバージョンによっては互換性がないことです。
データベースエンジンには、バージョンの概念がありますが、Amazon Auroraのバージョンによっては、MySQLとPostgreSQLに互換性をもつバージョンと互換性がないバージョンがあります。
※Amazon Auroraのサポートしているバージョンに関する最新情報は公式ドキュメントを参照ください。
Amazon Aurora PostgreSQL リリースとエンジンのバージョン
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html
Aurora MySQL のバージョン番号と特殊バージョン
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.Versions.html
一部のストレージエンジンが使えない
3つ目は、一部のストレージエンジンが使えないことです。
ストレージエンジンとは、データベース内のデータを処理する際に使用するものですが、Amazon Auroraにて、MySQLを利用する際は、MyISAMは非推奨となっており、InnoDBの利用が推奨されています。
Amazon Aurora の料金体系
前述の通り、Amazon Auroraは、Amazon RDSサービスの一部として位置づけとなりますので、料金体系もAmazon RDSと同様になりますが、利用するデータベースエンジンによって、構成(インスタンスタイプ/ストレージオプション/データ転送コスト)も異なります。
そのため、構成の3つの要素によって料金が変動します。
・インスタンスタイプ
・ストレージオプション
・データ転送コスト
※Amazon RDSの料金体系に関する最新情報は公式ドキュメントを参照ください。
Amazon RDS の料金
https://aws.amazon.com/jp/rds/pricing/
なお、Amazon Auroraは、高性能で耐障害性も高いため、Amazon RDSの中でもコストは高い傾向がありますが、
他環境からの移行コストや管理費用などを総合的に判断すると全体としては、コスト削減できる可能性があります。
※Amazon Auroraの料金体系に関する最新情報は公式ドキュメントを参照ください。
Amazon Aurora の料金
https://aws.amazon.com/jp/rds/aurora/pricing/?pg=pr&loc=1
まとめ
Amazon RDSや他のデータベースを利用・運用中の情報システム担当者の方で、「現在のスループットに不満がある」という方は、Amazon Auroraの導入もしくは、Amazon RDSの一部をAmazon Auroraへ移行することを検討してはいかがでしょうか。
株式会社KUIXではAWSを用いたシステムの開発やコンサルティングを行っています。本格的なAWS環境の構築・導入をご検討される際は、ぜひ一度ご連絡ください!お問い合わせはこちらから

