Dada a sua pergunta atualizada, você presumivelmente está usando as AMIs oficiais do Amazon Linux configuradas para serem executadas como instâncias NAT ('ami-vpc-nat') e configuradas de acordo com Instâncias de NAT ? Isso obviamente não é necessário, mas fornece uma linha de base sólida para alcançar a estabilidade desejada, é claro. Quanto à sua pergunta:
Felizmente, a AWS anunciou recentemente as Elastic Network Interfaces na Virtual Private Cloud , que permite que você Crie uma baixa Solução de alta disponibilidade do orçamento (consulte o guia do usuário Interfaces de rede elástica para detalhes):
If one of your instances [...] fails, its network interface can be attached to a replacement or hot standby instance pre-configured for the same role in order to rapidly recover the service. For example, you can use an ENI as your primary or secondary network interface to a critical service such as a database instance or a NAT instance. If the instance fails, you (or more likely, the code running on your behalf) can attach the ENI to a hot standby instance. Because the interface maintains its private IP address, elastic IP address, and MAC address, network traffic will begin flowing to the standby instance as soon as you attach the ENI to the replacement instance. [...] [emphasis mine].
Assim, você deve conseguir atingir seu objetivo com uma quantidade modesta de código de automação. Dependendo do quanto você valoriza a redundância / resiliência, você tem duas opções:
- uma instância NAT de espera ativa (minimiza o tempo de inatividade)
- uma substituição de instância NAT por demanda (minimiza o custo)
-
Você poderia implementar esse cenário por meio de uma Política de Auto Scaling , que mantém seu nível de escala de instância do NAT em 1 por meio de um Health Check
Update: No momento, isso não funcionaria conforme Comentário de sborsje, obrigado pela insight!
-