みなさん、こんばんは。新人のRenです。AuroraもRDSもよく使われるサービスですよね。今日は2つについて、調べたことをまとめてみました!

Amazon RDSについて

データベースには、リレーショナルデータベースと非リレーショナルデータベースがあります。これからリレーショナルデータベースであるAmazon RDSについて説明していきます。RDSはAmazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle Database、Microsoft SQL Serverの6種類があります。

では、どのようなときにRDSを使うと良いのか説明していきます。RDSを使う場面は主に3つあって、AWSクラウドでリレーショナルデータベースを運用・スケールしたいとき、時間のかかる管理タスクを自動化したいとき、データを安全に保存・送信したいときです。RDSの特徴として、高速化、高い可用性と耐久力、高いスケーラビリティ(容量が沢山)、低コスト、暗号化による高いセキュリティなどがあげられます。これは、RDSのメリットとも言えます。よって、大量のデータを安く安全かつ高速に処理したいときには非常に便利なサービスとなっています。

RDSでは、データを表のような形式で保存(行と列の構造)するのでRPGゲームのような場合には向いていません。一方で、例えば本屋さんで購入者の情報がある表と本のタイトルや著者などの情報がある表があったとします。その2つを結合させて誰がどんな本を買ったのかという情報を保存・取り出す場合には非常に適しています。このように、RDSのようなリレーショナルデータベースを利用した方がいいのか、非リレーショナルデータベースを利用した方がいいのかを適切に判断することで、利用価値を高めることに繋がります。

シングルAZとマルチAZについて

AZ(アベイラビリティゾーン)とは、データセンターの集合体のことで、1つのリージョンに必ず複数存在します。リージョンとAZは大学とキャンパスの関係のようなイメージです。1つの大学の大学に、複数キャンパスがありその中に建物がいくつかある、そんなイメージです。

シングルAZとは、その名の通り1つのリージョンの1つのAZにのみシステムを配置するものです。1つのAZだけで稼働させるため、サーバーやネットワークの構成が比較的シンプルなことが特徴になります。シングルAZでは、アクシデントで稼働しているAZが停止してしまった場合にシステム全体が停止してしまうといったデメリットがあります。そのため、マルチAZに比べて可用性は低くなっています。開発環境で使う分には良いですよね!

マルチAZとは、システム構成に2つ以上のAZを使うものです。特徴やメリットとしては、複数のAZを使ったシステムとなっているので、メインと予備のシステムを作っておけば、メインのAZの稼働が止まってしまってもシステムが止まることはないといった高い可用性や耐障害性があることがあげられます。ただし、構成がシングルAZと比べて複雑で情報量が多いため、通信速度が遅くなったり、複数のAZを利用することでコストが増加したりするデメリットもあります。そのため、シングル AZとマルチAZの特徴を理解した上での使い分けが非常に大切になります。

AuroraとRDSの違いは?

同じRDBMSでもRDSとAuroraの2種類があります。この2つについて見ていきます。AuroraはRDSのオプションの1つであり、MySQLやPostgreSQLと互換性があります。また、この2つよりも性能が高くなっています。 それぞれMySQLの最大5倍、PostgreSQLの最大3倍高速です。Auroraの特徴ですが、Auroraはエンタプライズ規模のリレーショナルデータベースにデータを保存するものです。不要な入力/出力オペレーションを排除することでデータベースのコストを削減することが出来ます。また、データの6つのコピーを3つのAZにレプリケート(コピーを保存・更新して常に同期する)しているため、可用性が非常に高くなっています。また、豊富なオプションが用意されていたり、高速化の仕組みがあったりするなど非Auroraなものと比較して高性能になっています。ただし、その分コストがかかる場合も多いです。一方で非Auroraの一番のメリットは、データベースの難しい運用をAWSの凄腕のエンジニアに任せることが出来ること(マネージドサービス)です。マネージドサービスを使うことでよって、難しいデータベースの運用をする必要がなくなるため、そこにかけていた人的リソースやコストを削減できます。

これらを踏まえたうえで2つの違いについて見ていきます。主に3つ違いがあります。

(1)インスタンスとストレージが分離しているという点です。そして先ほど説明した通り、データの6つのコピーを3つのAZにレプリケーションしています。6つのコピーを処理しているので動きが遅くなると心配するかもしれませんが、処理は並列に行われるので、特にそのようなことはありません。これによって、耐障害性はAuroraの方が高くなっていると言えます。

(2)料金で、これはAuroraの方が高くなっています。

(3)対応しているDB(データベース)の数で、これは非Auroraなものの方が多くなっています。

これらがAuroraと非Auroraなものの簡単な違いです。これもAZ同様、状況に応じて使い分けることが大事になってくるので、案件で何を大切にしているのかを考えてみるのがいい気がします。

個人の所感としては、基本的にはAuroraがこれまでご紹介した通り、パフォーマンス、可用性、耐久性など各性能が高く、色々な機能があるのでおすすめです。データベースエンジン、バージョンが対応していない場合は、RDSを使うことになるかと思います。その前にRDBMSが必ず必要なのか?という点も大切ですよね。

いかがでしたでしょうか。次回もDBに関連する内容をお届けします!