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

Консультации по обеспечению отказоустойчивого доступа в Интернет из Amazon VPC

До сих пор наш NAT-сервер выходил из строя 3 раза - один раз из-за проблемы с его EIP и дважды из-за того, что его хост был привязан к ЦП. Хотя я понимаю, что такие вещи случаются, мы не можем позволить себе продолжать отключение. Как мы можем реализовать отказоустойчивое решение NAT для нашего VPC? Например, можно ли использовать несколько серверов NAT?

Мой VPC (Amazon Virtual Private Cloud) состоит из 2 подсетей, 1 общедоступной и 1 частной. Экземпляры в частной подсети маршрутизируются через NAT-сервер в общедоступной подсети. Из того, что я читал, у вас может быть только 1 сервер NAT на один VPC.

Учитывая ваш обновленный вопрос, вы, вероятно, используете официальные AMI Amazon Linux, настроенные для работы как экземпляры NAT ('ami-vpc-nat') и настроенные в соответствии с Экземпляры NAT? Это, очевидно, не требуется, но, конечно, обеспечивает надежную основу для достижения желаемой стабильности. По поводу вашего вопроса:

К счастью, AWS недавно объявил Эластичные сетевые интерфейсы в виртуальном частном облаке, что позволяет Создайте низкобюджетное решение с высокой доступностью (см. Эластичные сетевые интерфейсы руководство пользователя для деталей):

Если один из ваших экземпляров [...] выйдет из строя, его сетевой интерфейс можно подключить на замену или экземпляр горячего резервирования, предварительно настроенный для той же роли для быстрого восстановления службы. Например, вы можете использовать ENI в качестве основного или дополнительного сетевого интерфейса для критически важной службы, такой как экземпляр базы данных. или экземпляр NAT. Если экземпляр выходит из строя, вы (или, что более вероятно, код, выполняемый от вашего имени) можете присоединить ENI к экземпляру горячего резервирования. Поскольку интерфейс поддерживает свой частный IP-адрес, эластичный IP-адрес и MAC-адрес, сетевой трафик начнет поступать в резервный экземпляр, как только вы подключите ENI к замещающему экземпляру. [...] [курсив мой].

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

У вас может быть несколько NAT для одного VPC. Вы можете настроить таблицу маршрутов VPC так, чтобы маршрут 0/0 указывал на сетевой интерфейс NAT-сервера. если этот экземпляр NAT перейдет в режим «погружения», вы можете отсоединить этот сетевой интерфейс от экземпляра и подключить его к экземпляру NAT с горячим резервированием. Это заставит вас снова начать работу с небольшим скачком трафика.

ELB не поможет вам в том, что вы пытаетесь сделать.

Ваши вопросы слишком расплывчаты и слишком широки. Вам необходимо предоставить дополнительную информацию о вашей настройке, о том, что она делает и чего вы пытаетесь достичь.

Но похоже, что вы ищете балансировку нагрузки. Взгляните на haproxy: http://haproxy.1wt.eu/