AWSのデータベースサービスを勉強していると、Amazon RDSとAmazon Auroraというワードが出てきます。
この二つ、正直めちゃくちゃ違いが分かりにくい、、、
そこで今回の投稿では、
そもそもAmazon RDSとは何か
Amazon RDSとAmazon Auroraの関係性
Amazon Aurora特有の機能
について説明します!
Amazon RDSとは?
Amazon Auroraについて説明する前に、まずはAmazon RDSについて簡単に説明します。
Amazon RDS(Relational Database Service)とは、AWSが提供するRDB(リレーショナルデータベース)サービスで、フルマネージドサービスの一つです。
(※フルマネージドサービス=「パッチ適用」「バックアップ」「スケール」などをAWS側で自動で行ってくれるサービスのこと)
RDBといえば、MySQLやPostgreSQL、Oracle Database、Microsoft SQL Serverなどがあります。
Amazon RDSでは、これらのエンジンのDBを、手間暇いらずで簡単に構築することができます。
では、そんなAmazon RDSと似たAmazon Auroraとは何者でしょうか。
Amazon RDSとAmazon Auroraの関係
先ほども説明したように、Amazon RDSではDB構築の際にMySQLやOracle Databaseなど、どのエンジンを利用するかオプションを指定できます。実は、Amazon Auroraもそのオプションの一つなのです。
つまり、Amazon Auroraを利用するか、MySQLを利用するか、Oracle Databaseを利用するかといったような流れになります。
ここで注意なのが、MySQLやOracle Databaseなどはオプションで指定する「DBエンジン」であるのに対し、Amazon Auroraは正確にはエンジンではありません。(ここがややこしい、、、)
そのためエンジンで比較するというより、「Amazon RDSを立てたい!」と思ったときに、
●MySQLなどのエンジンを使ったDBサービスを利用するか
●Amazon AuroraというDBサービスを利用するか
といった比較の仕方が正しいですね。
そんなAmazon Auroraですが、MySQLやPostgreSQLと互換性のあるサービスなのです。
互換性があることで、オンプレでMySQLやPostgreSQLをDBに使っていた時、簡単にAWSに移行できるということです。
さらにAWSいわく、性能もMySQLやPostgreSQLよりも良いということで、Amazon Auroraが良質なサービスである言えるでしょう。
機能についても、Amazon RDSの標準機能である「自動パッチ適用」「自動バックアップ」などを利用することができます。
Amazon Auroraには、ほかのRDSにない特有の機能があります。
次は、その特有な機能について説明していきます。
Amazon Aurora特有の機能
最大15個のAuroraレプリカ
Amazon Auroraに限らず、Amazon RDSでは「リードレプリカ」という読み取り専用のインスタンスを複製することができます。読み書きを行うプライマリのDBとは別に、読み取り専用のレプリカを建てることで、アクセス頻度の高いデータに対して処理速度を向上させることができます。
しかしこのリードレプリカ、プライマリDBの障害時にフェイルオーバーすることができません。フェイルオーバーさせるためには、プライマリDBとは別にセカンダリDBを、プライマリDBとは別のAZ(Availability Zone)に配置しなければなりません。(これを「マルチAZ」といいます)
一方、Amazon Auroraでは、「Auroraレプリカ」という読み取り処理を行うインスタンスが自動で生成されます。プライマリDBとは別の2つのAZに自動生成されます。
Auroraレプリカは、自動フェイルオーバー機能も備えているため、セカンダリDBとしても機能するのです。
さらに、Aurora以外のRDSではリードレプリカが最大5台しか建てられないのに対し、Auroraでは最大15台建てられるのも特徴の一つですね。
ストレージ Auto Scaling
Amazon RDSは、インスタンス生成時にストレージタイプを選ぶことができます。そのストレージタイプで、インスタンスの容量が決まります。
このストレージタイプは、運用開始後も変更することができます。AWSの運用監視サービスと組み合わせて、ストレージがひっ迫した際に容量を増やすことができます。
ただ、運用監視・ストレージタイプの手動変更を行わなければならないという煩わしさがあります。
一方、Amazon Auroraには「ストレージのAuto Scailing機能」があります。この自動スケーリング機能により、運用の煩わしさをなくすことができます。
(※Auto Scailingは、2019年1月からほかのRDBMSでも利用できるようになりました。)
Aurora Serverless
データベースの用途によっては、常には起動せず必要な時にだけ起動して処理できれば良い場合があります。
例えば、開発環境やテスト用のデータベースなどです。
Aurora Serverlessでは、クラスターボリューム(データ格納場所)のみ起動し、データベースインスタンス(クラスターボリュームにSQLを発行するインスタンス)が起動していません。
SQLのリクエストを受け取って初めて、データベースインスタンスが起動し、SQLの処理を行います。
この機能のメリットには、以下のようなものがあります。
●必要な時だけデータベースインスタンスが起動するため、コスト削減になる
●起動や停止が自動なため、管理が楽
【まとめ】Amazon RDSとAmazon Auroraの違い
今回は、Amazon RDSとAmazon Auroraの違いについて説明してきました。以下に、今回の内容を簡単にまとめました。
Amazon RDSとは
■AWSが提供する、フルマネージドなデータベースサービス。
Amazon Auroraとは
■AWSのデータベースサービス、Amazon RDSのオプションの一つ。
■MySQLやPostgreSQLと互換性があり、この2つより性能が高い。
Amazon Aurora特有の機能
■最大15台のAuroraレプリカを生成可能。
■Aurora Serverless実行可能。