Digamos que tengo tres entornos: desarrollo, prueba y producción. Creo que tengo dos opciones sobre cómo configurarlos en AWS:
¿Cuál de estos enfoques se considera la mejor práctica? ¿Cuáles son las ventajas o desventajas de cada uno, si las hay? Soy nuevo en AWS y hasta ahora no he podido encontrar una respuesta definitiva sobre cuál es la mejor
La buena práctica es tener la producción completamente separada de los entornos de prueba o desarrollo, lo que se logra mejor al tener cuentas separadas para ellos:
Las cuentas en SDLC OU alojan cargas de trabajo que no son de producción y, por lo tanto , no deben tener dependencias de producción de otras cuentas.
Dado que no está utilizando una cuenta diferente, lo más cercano que puede obtener (si desea seguir la buena práctica) es tener diferentes VPC (opción 1). Además, para separar aún más los entornos, las VPC podrían estar en diferentes regiones .
También lo alentaría a repensar por qué necesita recursos comunes (es decir, VPC). Si comparte algo (por ejemplo, RDS) entre prod y devel a través de la cuarta VPC, es un desastre a punto de ocurrir.
Me encontré con un problema similar.
VPC por entorno puede crear una gran separación entre los recursos, por lo que recomendaría tener al menos VPC PROD y no PROD (dev, test, uat).
Tener una VPC por entorno puede provocar un aumento de los costes:
(Por supuesto, puede resolver algunos problemas utilizando VPC Peering , pero no creo que esta sea la solución adecuada en este caso)
Por otro lado, tener una VPC por entorno puede generar algunos beneficios:
Para un entorno de producción, la respuesta clara es aislarlo en su propia cuenta de AWS (no solo en una VPC separada). Con Control Tower y SSO, la complejidad de administrar varias cuentas de AWS ya no es lo que solía ser.
Para entornos que NO son de producción como Dev, Staging, QA, Demo, etc., la respuesta es menos clara. Ciertamente me gustaría saber de otros. Puedo ver 3 formas principales de hacerlo.
Cada entorno tiene su propia cuenta de AWS. Esto podría usarse para entornos de demostración o UAT (además de Prod), pero parece excesivo para otros tipos de entornos que normalmente se usan internamente para el desarrollo. También hay un costo adicional para esta solución.
Cada entorno tiene su propia VPC, dentro de una cuenta de AWS compartida. Esto aísla cada entorno a nivel de red y de ACL.
Contras:
Ventajas:
Cada entorno tiene su propia pila de red, dentro de una VPC compartida y una cuenta de AWS.
Contras:
Ventajas:
Me encantaría escuchar comentarios sobre lo anterior.