Когда решил воспользоваться Spaces S3 на Digital Ocean
Подводные камни при работе с хранилищем в "Цифровом Океане"
Забавный случай произошел со мной на днях.
У меня есть сайт, который представляет из себя каталог видео, тематика не важна - смысл в том, что размер файлов на сайте превышает 110 гигабайт mp4-файлов.
Запустил я его пару лет назад, и особо им не занимался, сайт сам себя продвигал, привлекал настоящий органический траффик, ничем особо не выделялся. Количество уникальных пользователей в сутки было примерно 1000-1500. И в течение этих пары лет посещение не менялось.
Т.к. на digitalocean.com дополнительные жесткие диски стоят вполне ощутимо, по сравнению с теми же ресурсами как оперативная память и процессор, то изначально было решено размещать сами файлы на уже существующем сервере в российском сегменте, который размещался на ihc.ru , но со временем, когда база видео на сайте росла, рос размер файлов видео, то и сервер на ihc приходилось расширять, в какой-то момент это надоело, и стало казаться нецелесообразно, тем более на digitalocean.com появилось хранилище S3, и стоило сущие копейки - $5 за 250 гигов.
Ну сказано - сделано, было куплено пространство на 250 гигов, написан простенький скрипт на питоне:
import boto3
import json
import os.path
session = boto3.session.Session()
client = session.client('s3',
region_name='fra1',
endpoint_url='https://fra1.digitaloceanspaces.com',
aws_access_key_id='###################',
aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXX')
with open('videos.json') as json_file:
videos = json.load(json_file)
for video in videos:
source_file = video['source_file']
if (os.path.isfile(source_file)):
client.upload_file(source_file, '%nameBucket%', source_file)
client.put_object_acl(ACL='public-read', Bucket='%nameBucket%', Key=source_file)
else:
print(source_file + " not exist" )
который перегрузил все видео с ihc сервера в S3 digitalocean, поправлен адрес в БД сайта, и все заработало, переход был быстрым и безболезненным для меня и пользователей сайта.
Ах да, забыл упомянуть, что вся возня с хранилищем началась из-за внезапно увеличивавшегося траффика пользователей на сайте, количество выросло до 5-6 тысяч уников в сутки, что подтолкнуло меня вспомнить и немного заняться этим сайтом.
Итак, переехав, я со спокойной душой оставил сайт и спустя ровно 10 дней мне понадобилось зайти в панель управления digitalocean чтобы посмотреть какую-то информацию, какую точно не помню, да это и не важно и обратил внимание на расход средств, оно составило $36 за месяц, напоминаю, мой сервер стоил $5 + $5 должно было составить за пользование новым хранилищем, а тут цифра совершенно не равная десятке баксов.
Я полез в подробный отчет расходов и увидел, что дополнительные средства списываются за пользование хранилищем, в котором мелким шрифтом прописано, что после покупки хранилища в "подарок" дается 1Тб исходящего траффика (входящий не считается). А перерасход этого траффика считается по отдельному прайсу: $0.01 за 1Гб.
Пользователи сайта же за эти 10 дней "насмотрели" 3605.44 гигабайта (3.6 Тб) видео. Итого (3605.44GB - 1000GB) * $0.01 и равняется $26.
И тут я понял, что никакой экономии, которую я хотел добиться этим шагом не получилось. Пришлось быстро "поднимать" сервер на том же ihc, с самым дешевым тарифом, но расширять диск до нужных 130 гигов, по деньгам конечно получилось не $5 = 300 рублей, а все 800 рублей, но по крайней мере это гораздо дешевле, чем вышло бы с оплатой траффика у digitalocean, кстати на ihc бесплатно дается 20Тб исходящего траффика, что вполне вписывается пока в нужные мне расходы.
Итого, сервера у DO крутые, но с исходящим траффиком пока есть проблемы, которые нужно учитывать, но если это не важно, то можно смело у них брать серваки, и запускать свои проекты. Всем хорошего плавания!
Что думаешь?