У меня есть сервер Amazon EC2, на котором запущен Apache (с WP сверху). В настоящее время я использую экземпляр t1.micro - на данный момент отлично, но я слышал, что это нехорошо, если у вас много трафика - Amazon ограничивает процессор короткими небольшими всплесками, что делает сайт непригодным для использования, пока поисковая система ползет по нему.
Я считаю, что в какой-то момент я захочу разделить трафик между двумя экземплярами - предпочтительно пополам между двумя или тремя серверами. Однако чем больше я об этом думаю, тем меньше понимаю, как это делать. Потребуется синхронизация данных между серверами - mySQL, папками и т. Д. Кроме того, я использую Godaddy для своего домена, и это позволяет мне указывать на один IP-адрес - я не вижу возможности указать на два IP-адреса. и поделить нагрузку.
Итак, мой вопрос: Как с помощью Apache, EC2 и Godaddy равномерно маршрутизировать трафик между двумя экземплярами? Я думаю, что справлюсь с синхронизацией данных.
Хотя добавление второго IP-адреса позволит последующим DNS-запросам чередоваться между двумя IP-адресами, большинство клиентов находятся за резолверами и DNS-серверами кэширования, что может отрицательно сказаться на естественном циклическом переборе более одной записи DNS. Это также открывает возможности для решения проблем, если вам нужно время от времени менять IP-адреса или отключать экземпляр для обслуживания.
AWS предоставляет сервис Elastic Load Balancer. Вы должны указать свою основную запись на балансировщик нагрузки, который будет маршрутизировать в зависимости от вашей конфигурации между несколькими (даже более чем двумя, если вам это потребуется) экземплярами и позволит вам масштаб. Это также добавит возможность выводить экземпляры из эксплуатации на временное или постоянное обслуживание.
Здесь на помощь приходят балансировщики нагрузки.
Загляните в AWS ELB служба.
Вы должны указать свое доменное имя на IP-адрес ELB, и ELB позаботится о распределении запросов на ваши серверные серверы, а также выведет внутренние серверы из ротации, если они кажутся неработоспособными или неисправными.
Поддержание состояния и развертывание вашего приложения на ваших внутренних серверах - это совсем другая тема.