私たちは、書き込みの多い SAAS アプリを使用する小さなスタートアップであり、(ついに!) 使用法がスケーリングの問題を提示するところまで来ています。私たちのチームは小さいので、sysadmin を Heroku と RDS にオフロードできることに本当に感謝しています。
Heroku は (ほとんど) 問題ありませんが、RDS にはいくつか問題があります。
- スケーリング。これが最大の懸念事項です。現在、XL RDS インスタンスを実行しています。単純な最適化でしばらくはやり過ごせるでしょうが、アプリに大きな構造上の変更を加えない限り、ある時点でボトルネックにぶつかるでしょう。
また、インスタンスのサイズを変更するためのダウンタイムも最悪です。
可用性。マルチ AZ インスタンスを実行しているため、単一の AZ 停止に耐える必要があります。しかし、RDS は EBS 上に構築されているため、EBS の歴史と設計を考えるとかなり心配です。
価格。RDS の請求額は、Heroku に支払う金額の 4 倍です。システム管理者を雇わなくて済むように Amazon にお金を払ってもかまいませんが、より安価なものを見つけたいと思っています。
私の見解では、前進するための 2 つのオプションがあります。または NewSQL ソリューション (Xeround、VoltDB、NimbusDB など)。
従来の長所: これまでに何度も行われており、かなり標準的な方法があります。
従来の短所: 多くの作業が必要になり、アプリがかなり複雑になります。また、RDS の二次的な問題 (可用性と価格) も解決しません。
NewSQL の長所: おそらく、これらのソリューションは、アプリケーション コードを変更せずにデータベースを水平方向にスケーリングします (悲観的ロックを使用しないなど、SQL 機能にいくつかの制限があります)。これにより、膨大な量の作業を節約できます。また、信頼性が向上し (単一障害点がなくなります)、コストが削減されます (ピーク使用に備えるためだけに営業時間外に XL インスタンスを実行する必要がなくなります)。
NewSQL の短所: これらのソリューションは比較的新しいものであり、実稼働アプリでの使用経験についての良いレビューや記事を見つけることができませんでした。ホステッド ソリューション (Xeround) として利用できるものは 1 つしか見つからなかったので、それを使用しない限り、sysadmin にリソースを投資する必要があります。
私の最善の選択肢が何であるかについて、どのような意見があるのか 疑問に思っています。
Xeround は非常に魅力的ですが (ホストされている NewSQL)、本番環境での Xeround の適切な使用方法を見つけることができませんでした。私が見たいくつかのツイートは、少し遅いと不平を言っている人たちでした。あまりテストされていないように見えるものに移行するのはかなり緊張しています。
私の保守的な側面は、RDS に固執し、従来のアプローチを使用すると言います。しかし、開発者の時間という点では非常にコストがかかります。
そして、別の方法、おそらく私が聞いたことのない、より実戦でテストされたホストされた NewSQL ソリューションがあるのではないかと考えています。あるいは、自分たちでホストしなければならない NewSQL ソリューションかもしれませんが、それには確かな歴史があります。
ご意見ありがとうございます。