我需要一些帮助来帮助我了解应该选择哪种解决方案。我有一个 Web 应用程序,每月有大约 1000 个活跃客户,数据库大小为 40GB(解压后)。目前,我在专用根服务器上托管 MySQL 服务器,该服务器具有 64GB RAM、4TB HDD 和 Intel i7 CPU。
如今的现代趋势是每个人都转向云 RDS(AWS、Azure、GCP、DigitalOcean 等)。将数据库托管到云提供商有什么好处?
好的,我可以理解,如果发生灾难,您可以选择轻松恢复到工作状态,但仅此而已吗?定价要高得多,因此您可以“在 10-20 分钟内恢复”。
考虑一下你的答案,记住我有一个简单的网络应用程序,而不是复杂的公司流程/场景!
答案1
其好处有:
- 您不必知道如何管理操作系统
- 数据库服务器的配置默认值为轻微地 比独立默认值更好(它们默认调整 innodb_buffer_pool_size 以匹配实例大小)。
- RDS 为您执行常规系统管理,例如数据库升级(请注意风险)、数据库备份(为您节省 cron 中的两行 shell 脚本),并允许您恢复到时间点(当然,您也可以自己简单地执行此操作)。
- RDS 具有多可用区(用于冗余)(您可以在没有 RDS 的情况下轻松实现这一点)和读取副本(用于扩展)等功能,这些功能比使用本机工具更容易(几乎可以忽略不计)地设置。
- 可以使用 CloudFormation 基础设施作为代码来完全设置 RDS(不完全是特定于 RDS 的)。
缺点是:
- 会更贵
- 会比较慢
- 在故障排除时会更加不透明
- 多种性能和成本优化途径将不可用
通过正确配置的自维护系统,至少可以快速轻松地恢复到工作状态/从快照恢复。