Si despliega un solo NAT gateway en cada zona de disponibilidad, limita el dominio de falla del tráfico de salida público a una única zona. De este modo, se evitan las fallas en cascada entre zonas.
Descripción general de la solución
Para minimizar el radio de impacto ante la falla de una zona de disponibilidad, alinee sus cargas de trabajo en la nube por zona y evite las llamadas entre zonas. Con base en esta arquitectura de alta disponibilidad, despliegue un Internet NAT Gateway de una sola zona de disponibilidad de forma independiente en cada zona. Además, utilice tablas de rutas personalizadas para enrutar el tráfico público de cada zona por separado. Esta estrategia reduce el radio de falla a una sola zona de disponibilidad.
Como se muestra en la figura, si ocurre una falla en la zona de disponibilidad A, solo se ven afectadas las cargas de trabajo de esa zona. Las cargas de trabajo en las zonas de disponibilidad B y C no sufren ningún impacto.
Este modo de recuperación ante desastres está disponible en todas las regiones que admiten Internet NAT Gateway. Para habilitar esta función, comuníquese con su administrador de cuenta.
Procedimiento
-
Despliegue Internet NAT gateways de una sola zona de disponibilidad en varias zonas.
Vaya a la página de compra de Internet NAT Gateway y cree un Internet NAT Gateway por cada zona de disponibilidad.
Billing Method: Pay-As-You-Go.
Region: seleccione la región donde desea crear el Internet NAT Gateway.
Network and Zone: seleccione la VPC y el vSwitch para el Internet NAT Gateway. Cree cada NAT gateway en un vSwitch de una zona de disponibilidad distinta. Esta configuración no se puede modificar después de la creación.
Disaster Recovery: seleccione Single-zone disaster recovery. El gateway se despliega dentro de la zona de disponibilidad seleccionada y utiliza redundancia a nivel de dispositivo para garantizar la alta disponibilidad.
-
EIP: elija una opción según cuente o no con una EIP existente.
Select EIP: seleccione una EIP no asociada.
-
Purchase EIP: elija esta opción si no tiene una EIP disponible. De forma predeterminada, se crea una EIP de tipo pay-by-traffic con el tipo de línea BGP (Multi-ISP). Establezca el Maximum Bandwidth según sus necesidades.
Si necesita asociar una EIP del tipo de línea BGP (Multi-ISP) Premium o una EIP con un método de facturación distinto, primero debe apply for an EIP y luego seleccionar Select EIP durante la creación.
-
Configure Later: el NAT gateway no tendrá acceso a internet público hasta que asocie una EIP.
Una vez creado el gateway, haga clic en Associate Now en la columna EIP de la instancia de Internet NAT Gateway correspondiente. Después podrá seleccionar una dirección IP elástica existente o crear y asociar una nueva.
-
Configure una entrada SNAT para cada NAT gateway.
Vaya a la página Internet NAT Gateway. En la columna Actions de la instancia correspondiente, haga clic en Configure SNAT y, a continuación, haga clic en Create SNAT Entry.
SNAT Entry: define el alcance al que aplica la regla SNAT. Seleccione la granularidad de acuerdo con sus requisitos de gestión.
-
Select EIP: en la lista desplegable, seleccione las EIP que utilizará para el acceso a internet público.
Es posible seleccionar varias EIP. Las conexiones se distribuyen entre ellas mediante un algoritmo de hash. Dado que el tráfico varía por conexión, la carga entre las EIP podría ser desigual. Se recomienda agregar todas las EIP a la misma instancia de Shared Bandwidth para evitar interrupciones del servicio cuando una sola EIP alcance su límite de ancho de banda.
EIP Affinity: si la afinidad de EIP está deshabilitada, una misma dirección IP privada podría usar distintas direcciones IP de salida para acceder al mismo destino. Si la habilita, siempre se usará la misma dirección IP de salida. Sin embargo, un número elevado de conexiones simultáneas hacia un solo destino puede provocar fallas en la asignación de puertos. Es necesario monitorear el port allocation failure drops.
Una vez creada la entrada, haga clic en Edit en la columna Actions de la entrada correspondiente para modificar las EIP y los ajustes de afinidad de EIP.
-
Configure las rutas y vincule una tabla de rutas personalizada distinta al vSwitch de cada zona de disponibilidad. En cada tabla de rutas, agregue una ruta
0.0.0.0/0que apunte al NAT gateway de la misma zona. Así se garantiza que el tráfico público de cada zona se enrute de manera independiente.Vaya a la página VPC console - Route tables. En la barra de menú superior, seleccione la región donde se encuentran los Internet NAT gateways.
Cree una tabla de rutas: haga clic en Create Route Table, seleccione la VPC correspondiente y establezca Associated Resource Type como vSwitch.
Vincule un vSwitch: en la página VPC console - Route tables, busque la tabla de rutas correspondiente y haga clic en Bind en la columna Associated Resource. Seleccione Associate vSwitch y elija el vSwitch correspondiente en el cuadro de diálogo que aparece.
Agregue una ruta personalizada: en la página de detalles de la tabla de rutas, vaya a la pestaña Route Entry List > Custom Route y haga clic en Add Route Entry. Establezca Destination CIDR Block como
0.0.0.0/0y Next Hop Type como NAT Gateway. Para el siguiente salto, seleccione el NAT gateway ubicado en la misma zona de disponibilidad que el vSwitch.
Compruebe la configuración
Inicie sesión en las instancias ECS de las distintas zonas de disponibilidad y ejecute el siguiente comando para comprobar la dirección IP de salida.
# Verify that the egress IP address is the EIP bound to the NAT gateway in the same availability zone.
curl ifconfig.me
La dirección IP de salida de la instancia ECS en la zona de disponibilidad A debe ser la EIP de NATGW-1, mientras que la de la instancia en la zona de disponibilidad B debe corresponder a la EIP de NATGW-2. Esta diferencia confirma que el aislamiento del dominio de falla funciona correctamente.
Mejores prácticas para entornos de producción
Redundancia de cargas de trabajo por zona de disponibilidad: despliegue sus cargas de trabajo de aplicación en varias zonas de disponibilidad. Si una zona falla, las cargas de las demás zonas seguirán operando de forma independiente.
Redundancia con múltiples EIP: asocie varias EIP a la entrada SNAT de cada NAT gateway. Si una EIP deja de estar disponible debido a un ataque, el tráfico seguirá fluyendo por las demás.
Monitoreo y alertas: configure alertas para las métricas clave de cada NAT gateway, como las conexiones simultáneas, el ancho de banda de entrada y salida, y el port allocation failure drops. Esto le permite escalar los recursos antes de que se conviertan en cuellos de botella.
vSwitch dedicados: cree un vSwitch dedicado para cada NAT gateway y reserve suficientes direcciones IP privadas. Así evitará el agotamiento de direcciones IP, lo cual impediría asociar nuevas EIP.