mysql - mysql - 当我们可以为 mysql 使用 docker 镜像时为什么还需要 RDS
问题描述
据我了解,Aws RDS 便于备份 mysql 数据库,但并不便宜。
虽然为 mysql 使用 docker 映像可能会在成本方面为我们节省更多?因为我们只需要下载dockerhub的docker镜像并直接免费使用(例如创建实例并运行容器)。
除了便于数据库备份之外,还有其他使用 RDS 的原因吗?
解决方案
我列出了 RDS 的几个特性,这些特性可能保证在 EC2 坚持或 ECS 上通过自我管理的MySQL docker 容器使用它:
- RDS 是托管服务,因此所有操作系统更新、MySQL 补丁都由 AWS 管理,您不必担心它们。
- RDS 支持存储自动伸缩——可以从小 db 入手,RDS 会根据需要自动扩展存储。
- 时间点恢复允许您“倒回”您最近的数据库更改。
- 只读副本- 您可以创建最多 5 个数据库的只读副本,以从您的主数据库实例中卸载读取密集型应用程序。
- 跨区域只读副本 - 您可以将副本放在不同的区域,这有利于灾难恢复(整个 AWS 区域出现故障)
- 自动和手动备份,包括备份到不同区域。
- 对您的数据库进行IAM身份验证,而不是常规用户名/密码。
- 多可用区 - RDS 可以在不同的可用区保留主数据库实例的备用副本,以便在失败时快速恢复。
- CloudWatch 集成了数据库指标和日志。
- RDS 事件通知允许您直接开发自动化,例如为每次备份自动调用 lambda,或者如果出现故障。
- 更容易与其他服务集成,例如在 Lambda 函数中使用 RDS 代理。
RDS 的所有这些和其他特性使得它比托管一个自我管理的 MySQL docker 容器要贵得多。但是如果 docker 容器中的 MySQL 满足你的所有要求,那么就没有必要使用 RDS。您始终可以从 docker 开始,如果您的数据和需求增长,您可以迁移到 RDS。
推荐阅读
- amazon-web-services - 将所有对象复制到具有不同结构的不同区域的另一个 S3 存储桶
- java - 用于大数据的 Java Spring 服务器端 REST 流
- inheritance - 从没有强制转换类型的继承结构执行实际对象方法到继承类型
- ember.js - 为什么动态路由需要模型文件存在于 ember js 中
- python - 信息:爬取 0 页(以 0 页/分钟),抓取 0 项(以 0 项/分钟)
- python - 无法使用纸浆 python 库部署在圣杯上
- c++ - 我对 gdb 内存地址有疑问
- angular - 在不相关的组件之间传递值
- c++ - 英特尔 MKL OOP 包装器设计和运算符重载
- rstudio - R 可以用作企业应用程序的主要平台吗?