我正在尝试使用AWS ECR的每月成本。 它将包括:传出stream量成本(下载图像)和存储成本(在ECR中存储图像)。
我们假设:
第一个问题是: 如何估算每月存储量 ? 什么方程是正确的?
Monthly_Vol_1 = 500 + 40 * 300; – 基础图像只存储一次
- 在Amazon EC2实例上扩展Linux文件系统空间
- 将QuickSight连接到私有的Redshift群集
- 如何在CloudFront中获取干净的URL
- 我无法将卷附加到运行EC2实例
- 为ECS定义自动缩放选项时,无法注册可扩展目标
Monthly_Vol_2 =(500 + 40)* 300; – 每个图像都包含基本图像
第二个问题是: 如何估算来自AWS的每月stream量? 假设主机下载映像不会删除现有数据。
Monthly_Traf_1 =(500 + 40)* 60; – 每次下载基础图像和附加图层
Monthly_Traf_2 = 500 + 40 * 60; – 仅对第一张图像下载基本图像。 只有应用程序更新被下载
Monthly_Traf_3 = 40 * 60; – 基础映像不是从AWS ECR下载的,而是从Docker集线器下载的
更新:
我在9月份上传了2张图片到AWS ECR,并在2个月后查看了账单信息。 我发现:
每月只需花费0.04美元就可以存储2张图片(无需转账)。 根据AWS ECR定价(每1Gb存储0.10美元),看起来亚马逊存储400Mb的数据。 我在AWS ECS仪表板中看到了相同的400Mb。
我试图理解和计算存储的数据(使用docker image和docker history命令),但是失败了。
我有2个docker图片上传到AWS ECR:
如果AWS存储完整的图像,那么它将存储482 + 679 = 1161Mb
如果AWS存储刚刚添加的图层,则应存储45 + 73 = 118Mb
AWS如何计算400Mb? O_O
UPDATE2:
看起来像AWS存储完整的图像,但压缩(400Mb而不是1161Mb)。 根据http://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_DescribeImages.html
从Docker版本1.9开始,Docker客户端在将其推送到V2 Dockerregistry之前压缩图像层。 docker images命令的输出显示未压缩的图像大小,因此可能会返回比DescribeImages返回的图像大小更大的图像大小。