Я просматривал характеристики и цены Amazon S3 и Amazon CloudFront а также аналогичные услуги, предлагаемые другими поставщиками. Одна вещь, которую я не могу понять, это почему Цены на Amazon CloudFront похоже, не требует затрат на хранение, как другие CDN, на которые я смотрел.
Я понимаю, что мои файлы окончательно хранятся на S3. S3 требует затрат на хранение. Однако, когда я активирую CloudFront, насколько я понимаю, мои файлы будут скопированы во многие географически распределенные центры обработки данных. Плата только за передачу (плюс запросы), а не за хранение, мне кажется, что Amazon пострадает в ситуации, когда клиенту требуется много места для хранения, но низкая передача.
Поскольку это кажется неправильным, я хочу спросить: правильно ли я понимаю, что Amazon CloudFront не взимает плату за хранилище (сверх стоимости хранилища S3)? И если я прав, есть ли у Amazon какие-либо ограничения на хранилище для своей службы CloudFront, которые защищают его от потери денег от клиентов, которым требуется много хранилища, но при этом используется очень небольшая пропускная способность?
Это правда, что Cloudfront не взимает плату за хранение, но вот что вы неправильно истолковываете:
мои файлы будут скопированы во многие географически распределенные центры обработки данных.
Неправильно.
Cloudfront имеет десятки периферийных локаций по всему миру, но ваш контент точно не копируется в них.
Вместо этого, когда браузер пытается получить один из ваших файлов / объектов, запрос поступает в одно из этих мест, и Cloudfront проверяет, есть ли у него уже есть копия файла подходящей свежести в этом месте или его нужно получить. с исходного сервера (в некоторых случаях S3).
Если жизнеспособная локальная копия существует в периферийном расположении Cloudfront, она возвращается запрашивающей стороне. В противном случае файл извлекается с исходного сервера, возвращается запрашивающей стороне и затем сохраняется в этом расположении на границе облака для следующего раза, когда он там понадобится.
Нет никакой гарантии, что копия объекта будет сохраняться на этом краю до тех пор, пока не истечет срок его действия, но обычно последующие запросы для того же объекта, которые прибывают в то же место на краю облачного фронта, будут обслуживаться локально кэшированной копией.
Таким образом, для клиента с большим объемом данных и очень небольшим трафиком внутренние затраты Amazon на хранилище Cloudfront незначительны ... потому что все, что никогда не запрашивалось, никогда не будет сохранено, а все, что требует очень низкого спроса, может быть исключено из кеша.
Да вы правы. Вы не платите за хранение. Вы платите за заявки и перевод. Если кто-то использует Cloudfront, скорее всего, он получит довольно большие успехи. Кроме того, не забывайте, что хранение дешево.
Кроме того, существует алгоритм, который использует Amazon, чтобы решить, кэшировать что-то или нет. Если что-то не происходит, я предполагаю (поскольку Amazon не раскрывает алгоритм), что запрос вернется к источнику, а не кэшируется в CloudFront.