こんにちは!
今回は RDS のひとつの選択肢である Aurora の選定基準などについて解説していきます。
なお本記事では、RDSを「Aurora以外のRDS」という定義で使用しますので(AuroraはRDSなので)、ご了承ください。
DB の選択肢として、リレーショナルデータベースか NoSQL かで悩み、リレーショナルデータベースを選択したとして、「とりあえず Aurora でいいかな」と選択していませんでしょうか?
もちろん RDS より性能が高いのが Aurora なので可用性などを考慮すると Aurora のほうがベターです。ですが運用コストが高いのが悩みどころですよね。今回はそんなときにどちらを選ぶのかを指南していきたいと思います。
まずはアプリケーションの稼働時間に関する要件を整理していきましょう。
結論から申し上げると、毎日頻繁に稼働する必要がある場合は Aurora、土日など決まった曜日には利用されないもしくは利用者が少ない場合は RDS を選んでください。
Aurora は高性能な DB なため自ずとコストが高くなります。そのため RDS は Aruroa よりコストが低いです。コスト面から考えると、高可用性を求められている場合は Aurora を選択する意義がありますが、そうでない場合は RDS で十分だと判断できます。
耐障害性については、RDS より多くのリードレプリカや AZ を利用する Aurora のほうが上になりますが、どちらも障害が発生すればフェイルオーバーされますし自動的にバックアップを取得するので、あまり気になさらなくてもよいかと思います。(SLA の差異は以降にある表をご覧ください)
ただし前述の通り、ダウンタイムを許容できない場合は迷わず Aurora を利用してください。Aurora ではマルチマスター構成を組めるため、ダウンタイムを回避することができます。
機能 | RDS | Aurora |
---|---|---|
メンテナンスダウンタイム | ⭕️ | ⭕️ ※マルチマスター構成で回避可能 |
マルチマスター構成 | ❌ | ⭕️ |
SLA | 99.95% | 99.99% |
比較すれば Aurora のほうが性能が良いです。しかし利用者の少ないアプリケーションにおいて、Aurora という選択肢はコストパフォーマンスがよくないでしょう。
選択する際の考え方として基礎となるのは、どのくらい許容できるかという点になります。許容するものとしては、レプリケーションやバックアップ、フェイルオーバーやクラッシュリカバリなどになります。
これらにかかる時間を短縮しなければアプリケーションへの信頼性がなくなる、具体的には目標復旧時点(RPO)と目標復旧時間(RTO)を最小限に抑えたい、そんな場合は Aurora が適任となるでしょう。
どのくらい許容できるかがはっきりしてしまえば、すぐにどちらかを選ぶことができます。考えることはとてもシンプルです。ぜひ参考にしてみてください。
このブログでは、AWS の記事をどんどん公開しておりますので、ご興味のある方は他の記事もご覧いただければと思います。
AWS に関する開発は、お気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎