人们为什么在Docker容器上使用AWS?

时间:2019-07-05 07:05:12

标签: amazon-web-services docker containers open-source

AWS提供诸如Elasticache,redis,数据库之类的服务,所有服务均按小时收费。但是这些服务也可以在docker hub中以docker容器的形式使用。上面所有列出的AWS服务都使用一个实例。含义是数据库和所有数据库的独立实例。但是,如果人们开始使用ec2实例,并开始下载数据库中所有相关性的所有映像该怎么办?那会为他们节省很多钱吧?

我以前使用过docker,它几乎包含了aws提供的服务的所有图像。

1 个答案:

答案 0 :(得分:1)

EC2不是免费的。例如,您可以在EC2实例上运行MySQL。它比使用RDS便宜,但是您仍然需要为它消耗的计算和存储资源付费。即使您在较大的共享EC2实例上运行数据库,也需要考虑其存储和CPU周期,并且可能需要更多或更大的实例才能在其中运行更多任务。

(截至目前,在us-east-1地区,MySQL db.m5.large实例的价格为每小时0.171美元或每年每年预付895美元,加上每月每GB容量0.115美元;相同的m5.large EC2实例为每小时0.096美元或每年501美元,而存储为每月每GB 0.10美元。[假定为1年,即为前期,不可转换的预留实例。])

有很多理由不在Docker中运行数据库。特别是在微服务环境中,应用程序Docker容器是无状态的,可复制的,可定期更新其映像,可以自由删除并可以在主机之间移动(通过删除它们并在其他位置重新创建它们)。 (在Kubernetes / EKS中,查看Deployment对象的工作方式。)对于数据库而言,这些都不是正确的,它们都是关于保持状态,不能删除,不能移动(数据必须附带)以及的信息。必须备份。

RDS具有一些有用的功能。您可以在不停机的情况下更改数据库实例的大小,但不会丢失数据。 AWS将为您保留托管快照,并且很容易(如果很慢)从现有数据库的快照创建新数据库。数据库的补丁更新将自动为您应用。实际上,您可以向Amazon支付这些功能的费用,也可以向DB2支付费用,以对在EC2实例上运行的数据库执行相同的任务。

这些都不是说您已经使用RDS,实际上您是通过在EC2上运行相同的软件来节省AWS的,并且它可能在Docker中或可能不在Docker中。但是,在其他所有Docker的世界中,RDS是一个合理的选择。相同的基本权衡适用于其他服务,例如Elasticache(用于Redis)。