问题描述
正在开发一个库存管理应用程序,希望使用AWS EC2。该应用程序将有10-15个用户,存储约2GB。作为一个新手,他无法理解定价,希望有人能帮助他计算每月的成本。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
使用AWS等云解决方案,计算成本并不像使用“经典”的始终开启的服务器那样直观,后者完全属于您,您需要为电力、网络、备份和机架空间支付固定的月费,如果超出某些带宽限制,可能还需要额外支付一些费用。
对于您的情况,请仔细查看AWS提供的“虚拟机”(VM)的规格。根据维基百科的数据,2016年AWS的价格范围从每小时0.0065美元到每小时6.82美元不等,具体取决于性能和其他因素,存储也有类似的范围,此外还有其他计划的因素(例如,预付3年等)。
其次,您需要考虑您实际需要应用程序可用的时间和持续时间。如果您的用户在早上7点之前或晚上9点之后都不工作,那么您可以只在这段时间内运行应用程序,而在“非工作”时间不支付任何费用。
第三,还有更多的选择。例如,也许您可以使用Lambda来实现应用程序的某些功能(更精细的成本控制)等等。
最后,还有一些像Spot Prices这样的选项,您可以以极低的价格竞标未使用的资源。您可以在这里发挥创意,例如在这些实例上运行后台批处理进程。
评论中还提到了更多的变化。
所以,您看到了,我们无法真正预测您的应用程序将花费多少。如果您像经典VM一样全天候运行应用程序,我们当然可以给出一个大致的数字,但那将没有太大意义。
您需要坐下来,阅读更多关于AWS定价结构的信息(他们确实有一个在线计算器,您可以在其中输入一些值)。由于您不是在进行玩耍或娱乐项目,所以实际上进行一些实验,获得一个AWS账户,开发一个小型原型并进行一些性能测试,以便了解您实际上需要什么。
如果您还没有,请查看他们的计算器:https://aws.amazon.com/tco-calculator/,但请准备好,他们对本地成本的细分在我看来并不是很有用(如果本地是您的选择,最好自己弄清楚)。
方案2
使用脚本或工具来管理容器的启动顺序可能会增加复杂性,并且需要确保容器A和容器B之间的依赖关系正确设置。
另一种方法是编写脚本或使用工具来控制容器的运行顺序。您可以使用docker run
命令来手动控制容器的启动顺序,或者使用一些第三方工具来管理容器的依赖关系。
示例:
以下是一个简单的bash脚本示例,可以在容器A启动后启动容器B:
#!/bin/bash
# 启动容器A
docker run -d --name container_a your_image_a
# 等待容器A完全启动
while ! docker exec container_a echo "Container A is ready"; do
sleep 1
done
# 启动容器B
docker run -d --name container_b your_image_b
在这个示例中,我们首先使用docker run
命令启动容器A,并将其命名为container_a
。然后,使用一个循环来等待容器A完全启动(这里是通过在容器内运行echo
命令来测试)。一旦容器A就绪,我们再使用docker run
命令启动容器B,并将其命名为container_b
。