立ち位置
やろうと思えばEC2上に自前でMySQL等のDB環境を用意することはもちろん可能。
ただ「自前主義」は当然ながら細々とした設定を自分で行わなければいけない。そこはAWS、その辺りを請け負ってくれるサービスがちゃんとある。
EC2+MySQL(自前主義) vs RDS(Amazon様のサービスに乗っかる)
お勉強目的とかではなく、サービスを運営したいと考えている人は基本的にRDSを使った方がいい。
RDS (Relational Database Service)
AWSが提供するマネージドRDB(Relational Database)サービスのこと。
MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Serverなどのオンプレ環境でもお馴染みデータベースエンジンから好きなものを選択できる。
2014年からAmazon AuroraというAWSが独自開発したRDSも提供されている。
- 自動バックアップ機能
1日1回自動的にバックアップ(DBスナップショット)をとってくれる。最大35日間保存される。 - リードレプリカ
マスターDBとは別に参照専用(Read-Only)のDBを用意すること。これがあることでちょっとしたことでマスターDBに負荷をかける必要が避けられる。カタカナで表記されると分かりづらいな。。。。英語でやってほしい。
画像引用:Amazon RDS リードレプリカ - ハードウェアメンテナンス&障害時の復旧作業
マスター/スタンバイ構成になっているのも特徴。
自前でクラスタ構成を組むのは一苦労だが、この辺りも勝手にやってくれるのは有り難い。
ちなみにクラスタ構成とは。。。。
クラスタ構成とは、複数のサーバを連携して利用者側から見て、全体のサーバが1台で構成されているように振舞うシステムのことです。
障害時にはスタンドバイサーバが起動してくれる!
引用:クラスタとは?(クラスタ構成)【サーバ・ストレージの基礎】
といった面倒なデータベース運用もAWSがやってくれるため、運用の効率化の観点から超便利。
Aurora
RDSの中にあるサービスの1つと言う位置付け。ちょっと細かい違いはまだわかりません。。。
対障害性はAuroraのほうが高い
RDSのほうが安いが、要件によってはシングルAZのAuroraもあり
Mysql、PostgreSql以外を使いたい場合は、RDS
画像引用:【AWS解説】Amazon AuroraとRDSは何が違う?違いやAurora特有の機能を説明
DynamoDB
Amazonが提供するマネージドNoSQLデータベースサービス。
拡張性に優れたKey-Value型のデータベースを提供する。Firebaseと同じ。
DynamoDB Accelerator (DAX)
CloudFront的なやつ。DynamoDBの前段にキャッシュクラスタを構成するもの。
もともとミリ秒単位での読み取りレスポンスが実現できるが、DAXを前段に置いてあげるとマイクロ秒単位での応答が可能になる。応答速度UPはもちろん、DynamoDBに対して直接アクセスする回数も減らせるのRCUリソースを圧迫せずに済む。
画像引用:Amazon DynamoDB Accelerator (DAX)
TTL(Time to Live)
期限切れデータの自動メンテナンスができる。
DynamoDB内の各項目でデータの有効期限を設定できる。有効期限を過ぎたら即時削除されるわけではなく、最大48時間以内に削除される。