Я пытаюсь оценить ежемесячную стоимость использования AWS ECR. Он будет состоять из: стоимости исходящего трафика (загрузка изображений) и стоимости хранения (хранение изображений в ECR).
Предположим, что:
Первый вопрос: как оценить ежемесячный объем хранилища? Какое уравнение правильное?
Monthly_Vol_1 = 500 + 40 * 300; - базовое изображение сохраняется только один раз
Месячный_Том_2 = (500 + 40) * 300; - каждое изображение включает базовое изображение
Второй вопрос: как оценить ежемесячный трафик из AWS? Предположим, что хост, загружающий изображения, не удаляет существующие данные.
Monthly_Traf_1 = (500 + 40) * 60; - каждый раз, когда он загружает базовое изображение и дополнительный слой
Monthly_Traf_2 = 500 + 40 * 60; - базовый образ загружается только для 1-го образа. Скачиваются только обновления приложений
Monthly_Traf_3 = 40 * 60; - базовый образ загружается не с AWS ECR, а с docker hub
ОБНОВИТЬ:
Я загрузил 2 изображения в AWS ECR в сентябре и проверил платежную информацию через 2 месяца. Что я обнаружил:
Мне стоило 0,04 доллара в месяц только для хранения двух изображений (без передачи). Согласно ценам AWS ECR (0,10 доллара США за 1 ГБ хранилища) выглядит как магазины Amazon 400 МБ данных. Те же 400 МБ, которые я вижу на панели управления AWS ECS.
Я попытался понять и посчитать, какие данные хранятся (используя образ докера и история докеров команд), но не удалось.
У меня есть 2 образа докеров, загруженных в AWS ECR:
Если AWS хранит полные изображения, он должен хранить 482 + 679 =1161Мб
Если AWS хранит только что добавленные слои, тогда он должен хранить 45 + 73 =118Мб
Как AWS рассчитывает 400 МБ? О_о
ОБНОВЛЕНИЕ2:
Похоже, AWS хранит полные образы, но в сжатом виде (400 МБ вместо 1161 МБ). В соответствии с http://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_DescribeImages.html
Начиная с Docker версии 1.9, клиент Docker сжимает слои изображений перед их отправкой в реестр Docker V2. Вывод команды docker images показывает размер несжатого изображения, поэтому он может возвращать больший размер изображения, чем размеры изображения, возвращаемые DescribeImages.