Я создаю веб-сайт, который с самого начала должен обслуживать около 300-500 ГБ статических данных, при этом каждый месяц добавляется около 5-10 ГБ. Файлы в основном представляют собой фотографии.
Все мои потенциальные пользователи будут находиться в Канаде, и около 95% из них - в одном городе (Торонто).
У меня есть много вариантов, но я не знаю, какой из них лучше всего подходит для моей ситуации.
Во-первых, я не думаю, что мне нужно использовать CDN, поскольку большинство моих пользователей будут базироваться в Торонто. Мне просто нужно найти поставщика базы данных в Торонто или рядом с ним.
Вначале я хочу разместить свой веб-сайт на VPS, поскольку его легко настроить и у меня не должно возникнуть проблем с размещением моих первоначальных пользователей.
Проблема в том, где я должен разместить 500 ГБ статических файлов. Должен ли я размещать их рядом с моим сайтом на VPS? Или мне следует разместить их на облачной платформе, такой как BackBlaze B2 или Amazon S3? Жесткого диска достаточно для моих статических файлов, хотя я бы хотел разместить сам сайт на SSD.
По моим оценкам, каждому пользователю будет предоставлено около 10 МБ данных за одно посещение. Если предположить, что у меня около 5000 посетителей в день, я смогу обслуживать 50 ГБ данных в день без видимого снижения производительности. Пользователь будет проводить большую часть своего времени на карте (я использую Google Maps JavaScript API), поэтому она будет очень динамичной с непрерывными вызовами ajax.
Я не слишком беспокоюсь о том, чтобы получить идеальную доступность вначале, поскольку сайт большую часть времени работает.
Я не собираюсь перечислять расходы, так как вы можете легко рассчитать их самостоятельно, используя общедоступные цены. Как правило, VPS-хостинг больших объемов файлов является самым дорогим, за ним следует AWS, а затем B2.
Если вам нужна высокая доступность, вам понадобятся два сервера и балансировщик нагрузки. Это довольно просто сделать в AWS, Azure и Google, и некоторые более мелкие провайдеры тоже могут это сделать.
AWS S3
AWS S3 великолепен и имеет встроенную избыточность - ваши данные хранятся в памяти и потенциально обслуживаются из трех центров обработки данных. Нечасто используемое хранилище классов может снизить счет и подходит для хостинга файлов небольшого объема. При ваших 1,5 ТБ в месяц будет стоить примерно 30 долларов в месяц. Хорошая система, надежная, легко добавить CDN. AWS имеет регион в Канаде.
AWS LightSail / VPS
AWS Lightsail VPS имеет большую пропускную способность, довольно дешевую, по крайней мере, для AWS. Digital Ocean и другие достойные провайдеры VPS похожи. Вам следует подумать о том, чтобы на вашем VPS было достаточно места для хранения. Обратной стороной здесь является то, что хранилище SSD, вероятно, будет довольно дорогим, и у вас нет избыточности, но если вы работаете с одного VPS, у вас в любом случае есть единая точка отказа.
BackBlaze B2
B2 - дешевое хранилище, но более дорогая пропускная способность. Я думаю, у них всего один дата-центр, поэтому там меньше избыточности. Они будут где-то в США, поэтому задержка и пропускная способность должны быть довольно хорошими, но не такими хорошими, как у AWS. Еще одна единственная точка отказа.
CDN
Если вы используете VPS, вам следует рассмотреть возможность использования CDN. CDN может значительно снизить затраты на полосу пропускания при правильной настройке.
Уровень бесплатного пользования CloudFlare - это фантастика, и вы можете заплатить за лучший класс обслуживания и больше функций. Он не только обслуживает пользователей быстрее, чем ваш сервер, но и быстрее обслуживает удаленных пользователей. Google тоже любит быстрые веб-сайты, и их сканеры могут подключаться отовсюду.
Рекомендация
Кажется, ваш приоритет - производительность, цена и доступность. AWS S3 IA class, вероятно, будет хорошим компромиссом, но если вы можете смириться с тем, что он немного медленнее, вы можете попробовать B2.
Вы можете поставить бесплатные (или платные) сервисы CloudFlare перед Amazon S3. Инструкции здесь.
Я добавляю это только потому, что кажется, что он отсутствует в превосходных списках предложений, выдвинутых до сих пор, но если у вас много данных, не упускайте возможность разместить свой собственный комплект вместе. Это может показаться скорее 1990-ми, но это все еще вариант.
Если вы получите / построите приличный сервер 1U, вы можете поместить в него как минимум два больших быстрых диска и RAID-1 на них. Ваши 1,5 ТБ пропускной способности в месяц вполне соответствуют требованиям большинства предложений по размещению. И хотя это возможно что у вас будет пара дней простоя, когда что-то выйдет из строя, использование качественного оборудования минимизирует вероятность такого сбоя, а наличие нескольких разумно выбранных запасных частей (БП!) поможет сократить продолжительность такого отключения.