AWS Nat Gateway - использование неэластичного IP-адреса

Я строю сетевую лабораторию AWS VPC через Terraform.

Я хочу добавить NAT-шлюз, чтобы экземпляры моей частной сети могли выходить в Интернет для обновления программного обеспечения.

Из спецификации Terraform вы можете увидеть, что "alloc_id" является обязательным атрибутом:

alloc_id - (Обязательный) Идентификатор распределения Эластичного IP-адреса для шлюза.

Проверено также в спецификации AWS - на шаге 1:

Шлюзу NAT требуется эластичный IP-адрес в вашей общедоступной подсети...

Мой вопрос: почему шлюз NAT не может использовать простой non static IPv4 address?

В чем логическая причина этого? (технически, это единственный вариант для настройки).

Примечание: вопрос находится в сфере действия AWS, а не Terraform.


Краткий пример конфигурации Nat Gateway в Terraform:

resource "aws_nat_gateway" "natgw" {
  allocation_id = "${(aws_eip.nateip.id)}"
  subnet_id     = "${(aws_subnet.public.id)}"
  depends_on    = ["aws_internet_gateway.igw"]
}

2 ответа

Решение

Эластичный IP для этих шлюзов NAT никак не обходится, возможно, потому, что шлюзы могут быть перезапущены и воссозданы автоматически (и, следовательно, уменьшить прерывание, зависая на том же IP)

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

В некоторых ситуациях вариант с NAT-инстансом вместо NAT-шлюза может быть вариантом. В этом случае будет работать динамический общедоступный IP-адрес. Экземпляр NAT также может использоваться в качестве хоста перехода или кеширующего прокси (для вашего хранилища пакетов). Но ты должен управлять собой.

Исходящий NAT-шлюз IPv6 также не требует определения EIP.

Это связано с тем, что шлюзы NAT могут быть перезапущены либо в результате технического обслуживания, либо из-за сбоев. так как отказоустойчивый AWS заставляет вас использовать EIP.

как подсказывает Эккс, вы можете создать свой собственный экземпляр NAT, который в прошлом был единственным способом заниматься наттингом.

Вы можете проверить этот модуль terraform https://github.com/terraform-community-modules/tf_aws_nat

Другие вопросы по тегам