Мы хотим изменить способ развертывания MongoDB на AWS из-за трех проблем:
Итак, я хочу разбить вещи на наборы наборов реплик, где каждый набор имеет три экземпляра EC2 и обрабатывает от 1 до N баз данных. У некоторых клиентов есть бюджет, чтобы получить свой собственный набор, другие все равно нужно каким-то образом разделить, чтобы избежать минимальных затрат на слишком много инстансов EC2. Я хотел бы избежать шардинга и просто использовать разные настройки сервера, которые мы администрируем отдельно с помощью наших внутренних инструментов. У меня вопрос: как определить, сколько и какого размера баз данных разместить на каждом наборе из 3 реплик сервера? Есть ли хорошие эвристики для определения этого? Или особенно хорошие ресурсы для изучения этого темного искусства? Я понимаю, что это довольно общий характер, но я не думаю, что это основано на мнении, так что надеюсь, что это нормально.
В этой ситуации есть много переменных (тип используемого хранилища, конфигурация экземпляров, средний размер базы данных, средняя сложность базы данных, средняя сложность запроса / вставки / обновления ....). Поэтому я могу дать только общие рекомендации, но они могут указать вам правильное направление:
В текущей конфигурации: оцените текущий средний размер набора данных на одного клиента, количество одновременных пользователей на одного клиента. Это даст вам приблизительное представление о среднем покупателе.
В текущей конфигурации: если у вас есть доступные инструменты анализа, получите некоторые контрольные цифры времени ответа на запрос, времени загрузки / обновления данных, ошибок, возникающих в общих ресурсах (кеш, буферы и т. Д.).
A. Теперь у вас есть некоторые подробности о том, где вы находитесь.
Можете ли вы определить, использует ли / кто из ваших клиентов больше ресурсов, чем другие? (Кандидаты в отдельные базы данных или экземпляры.)
Какие из ваших клиентов имеют небольшие наборы данных или нуждаются в небольшом количестве ресурсов - кандидаты для обмена.
B. Оцените необходимую конфигурацию (варианты вычислений для EC2) и размеры хранилища для вашей новой установки. Возможно, вам придется сделать среднее и просто умножить на количество необходимых экземпляров.
C. Определите общее количество необходимых инстансов AWS EC2, общий объем хранилища, пользователей (как общее, так и количество одновременных на каждом наборе).
D. Используйте калькуляторы, чтобы определить затраты и дополнительные сведения о вашей новой установке.
Некоторые для использования: стоимость владения: https://cloud.netapp.com/tco-calculator
Стоимость сервисов AWS (это бета): https://calculator.s3.amazonaws.com/index.html