Назад | Перейти на главную страницу

Ретрансляция HTTP-запросов на несколько веб-серверов

У нас есть кластер веб-серверов в регионе AWS US-WEST-2 для чтения / записи в Postgres RDS в том же регионе. Согласно соглашению об уровне обслуживания AWS, регион может отключаться на 22 минуты в месяц.

Чтобы уменьшить время простоя в 22 минуты, когда это случится. Я настраиваю еще один кластер в регионе US-EAST-1 с его собственным RDS.

Чтобы оба кластера синхронизировались, я хочу, чтобы запросы PUT передавались обоим кластерам в US-WEST-2 и US-EAST-1. Может ли мне помочь веб-прокси / сервис AWS?

С архитектурной точки зрения решение, которое вы, кажется, выбрали, сложно реализовать, и, как правило, это не лучший подход к делу.

Лучше всего иметь более одного набора / кластера веб-серверов, которые не находятся в одном здании, и поддерживать синхронизацию вашей базы данных.

Зоны доступности

Самый простой способ добиться этого - воспользоваться зонами доступности (AZ). Зоны доступности - это независимые центры обработки данных в одной зоне с очень малой задержкой между ними, каждая зона доступности имеет независимую сеть и источники питания. Редко когда несколько зон доступности выходят из строя одновременно, но это может случиться - я чувствую, что это может случиться каждые пару лет.

Преимущество использования зон доступности состоит в том, что AWS позволяет легко повысить надежность приложений с помощью зон доступности в пределах одного региона. Вы можете использовать балансировщик нагрузки и распределять трафик на веб-серверы / серверы приложений в нескольких зонах доступности, каждая из которых обслуживает трафик. RDS имеет синхронные реплики в зонах доступности в регионе, поэтому любые данные, записанные в зоне доступности A, немедленно применяются в зоне доступности B. Если AZ A выходит из строя, экземпляр RDS в зоне AZ B появляется в промежутке от нескольких секунд до небольшого количества минут.

Мультирегиональный

Мультирегиональные архитектуры сложнее. Вы выполняете балансировку нагрузки или переключение при отказе с помощью Route53, что означает, что нагрузка может быть распределена или переключена.

У вас не может быть синхронных реплик с RDS в разных регионах. Ты можешь сделать читать реплики в разных регионах, и при необходимости вы можете вручную повысить уровень базы данных до уровня мастера. После того, как сбой будет устранен, вернуть все в исходную конфигурацию может быть проблематично, поскольку старая основная БД не синхронизирована с новой главной. Если вам нужны базы данных с несколькими мастерами в разных регионах, я подозреваю, что вам придется запускать их самостоятельно на экземплярах EC2.

TL; DR

Используйте зоны доступности для повышения надежности при стандартных сбоях. Если вам нужна исключительная доступность, вы можете использовать другой регион в качестве горячей или холодной площадки, в зависимости от вашего RTO (целевого времени восстановления).