使用RDS或容器(ECS)作为数据库? 的优点和缺点

我想在AWS上托pipe一个数据库。 RDS是一种select,但我听说过有关集装箱(和ECS)的一些事情。 我发现容器对于testing非常有用,但我不确定是否在运行一个生产数据库。 他们每个人的优点和缺点是什么?

在EC2实例上自己运行数据库

  • 你select数据库
  • 你控制所有的configuration
  • 您可以控制该机器上运行的其他内容
  • 备份,还原和其他任务可以定制
  • 您完全负责保持数据库运行
  • 您完全负责备份

在RDS上运行数据库

  • 有限的数据库select
  • 您可以运行亚马逊的专有数据库Aurora
  • 一些(less数)configuration选项是不允许的
  • 没有访问底层的机器
  • 自动备份
  • 基本维护是自动的
  • 你不能运行比亚马逊最小的机器便宜的数据库

在EC2实例的容器内运行数据库

所有运行数据库的优点和缺点,加上

  • 您必须做一些额外的工作才能在容器之间保存数据
  • 您可以轻松地在本地开发,testing和生产中运行完全相同的数据库设置
  • 你支付一些额外的开销(小)
  • 进程隔离使共享一台机器变得简单(也许你的整个工作量不到t2.micro)

在ECS下的容器中运行数据库并不能真正帮你自己pipe理容器。 但是,如果您将ECS用于剩下的堆栈,并且将数据库放在容器中,那么您也只需要使用ECS。