Цены Amazon S3: методы экономии

admin

Amazon S3 предоставляет почти безграничный объем хранилища, который обойдется достаточно дешево для небольшого веб-проекта. Но с увеличением объема данных, нужно платить не только за хранилище, но также за трафик, запросы GET, PUT, COPY, POST и LIST.

Стоимость

Расценки перечислены на [https://aws.amazon.com/ru/s3/pricing/ странице AWS], посчитать можно в [http://calculator.s3.amazonaws.com/index.html калькуляторе].

Бесплатный ограниченный доступ дает 5 ГБ хранилища, 20 000 запросов GET и 2000 запросов PUT на год. Затем придется выкладывать по $30 за терабайт хранилища и $90 за каждый терабайт трафика. Сайт со 100 тыс. просмотров в сутки, который содержит по 5 фото на каждой странице, как раз и будет генерировать такой трафик. А при росте популярности в 10 раз платить придется почти $1000 в месяц.

Cloudfront

Amazon S3 – не CDN. Намного дешевле раздавать статику для популярного веб-приложения при помощи собственных серверов или отдельного провайдера CDN.

У Amazon есть своя сеть доставки контента – [https://aws.amazon.com/ru/cloudfront/ CloudFront]. Она быстрее и дешевле S3, к тому же интегрирована в другие службы AWS.

Передача данных из S3 в CloudFront бесплатна, загрузка данных на CDN из внешнего источника стоит всего $20 за 1 ТБ, а раздача первых 10 ТБ в месяц будет стоить $850. При этом цена уменьшается с увеличением трафика.

Проще всего подключить CloudFront через веб-консоль AWS, или при помощи CLI:

aws cloudfront create-distribution

**–origin-domain-name my-bucket.s3.amazonaws.com **

–default-root-object index.html
## Указывает домен или контейнер S3

Кэширование

Объем трафика наиболее существенно влияет на стоимость S3.

Поэтому кэширование снизит трафик и месячный чек от Amazon – файлы загружаются на S3, а отдаются через собственные кэш-сервера.

Для этого подходит Varnish, который умеет работать с AWS:

backend s3 {

.host = “s3.amazonaws.com”;

.port = “80”;

}

sub vcl_recv {

**if (req.url ~ “.(gif|jpg|jpeg|png)$”) {**

unset req.http.cookie;

unset req.http.cache-control;

unset req.http.pragma;

unset req.http.expires;

unset req.http.etag;

set req.backend = s3;

**set req.http.host = “test-bucket.s3.amazonaws.com”;**

lookup;

}

}

sub vcl_fetch {

set obj.ttl = 3w;

}
## Будет кэшировать картинки из test-bucket

BitTorrent

Если же вы планируете отдавать большие файлы через S3, то есть смысл воспользоваться встроенной поддержкой BitTorrent. Так что используя сеть peer-to-peer каждый клиент будет скачивать и раздавать файлы, тем самым уменьшая трафик S3.

Создать торрент-файл очень просто – нужно добавить ?torrent к ссылке на файл, размещенный на S3:

# Было

http://s3.amazonaws.com/test_bucket/somefile

# Стало

http://s3.amazonaws.com/test_bucket/somefile**?torrent**
## Клиенты автоматически скачают торрент-файл

Glacier

Если S3 по большей части используется для хранения резервных копий, рассмотрите вариант использования Glacier – хранилища резервных копий. Сервис ни в коем случае не заменит S3, но позволит держать редко используемые файлы, которые не нужны в реальном времени.

Примечательно, что Glacier, в виду своей ограниченности, существенно дешевле S3 – хранение 1 ТБ данных обойдется в $7 в месяц, а скачивание 1 ТБ в $90.

Чтобы подключить сервис, нужно создать политику жизненного цикла, включив Glacier в transfer:

sample-rule

Enabled

****

**30**

**GLACIER**

365

## Автоматическая выгрузка файлов в Glacier по истечении 30 дней

Самое главное

Не используйте Amazon S3 качестве CDN, кэширование при помощи отдельных недорогих серверов и включение BitTorrent для отдачи файлов помогут существенно сэкономить без снижения производительности веб-приложения.

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024