Назад | Перейти на главную страницу

Как оценить объем хранилища и трафик, используемый для образов докеров в AWS ECR?

Я пытаюсь оценить ежемесячную стоимость использования 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:

  1. SVC (482Мб) на основе Мононуклеоз (409Мб)
  2. WEB (679Мб) на основе Узел (634Мб)

Если 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.