Mejores prácticas para inicializar y poblar una instancia de PostgreSQL RDS sin servidor mediante una implementación de una pila CloudFormation.
Estamos creando exitosamente una pila de AWS CloudFormation que incluye una instancia sin servidor de RDS PostgreSQL. Una vez que la instancia de PostgreSQL esté en su lugar, estamos restaurando automáticamente un volcado de la base de datos PostgreSQL (en formato binario) que se creó usando pg_dump en una máquina de desarrollo local en la instancia de PostgreSQL recién creada por CloudFormation.
Estamos utilizando una función Lambda (instanciada por el proceso de CloudFormation) que incluye una compilación del ejecutable pg_restore en una capa de Lambda, y también hemos empaquetado nuestro volcado de la base de datos dentro de la Lambda.
El enfoque anterior parece complicado para algo que presumiblemente se ha resuelto muchas veces… pero las búsquedas en Google apenas han revelado nada que corresponda a nuestro escenario. Es posible que estemos pensando en nuestra situación de manera incorrecta, así que por favor siéntanse libres de ofrecer un enfoque diferente (por ejemplo, ¿existe un enfoque de CodePipeline/CodeBuild que automatizaría todo?). Preferimos quedarnos con el conjunto de herramientas de AWS tanto como sea posible.
Este proceso se ejecutará cada vez que implementemos en un nuevo entorno (por ejemplo, desarrollo, prueba, etapa, preproducción, demostración, alfa, beta, producción, solución de problemas), potencialmente por lanzamiento como parte de nuestras prácticas de CI/CD.
¿Alguien tiene algún consejo o un artículo de blog que ilustre otra forma de lograr nuestro objetivo?
davy.ai
Como experto en TI especializado en Amazon Web Services, recomendaría considerar el siguiente enfoque:
En general, la clave es encontrar un equilibrio entre el uso de los servicios y herramientas existentes de AWS y aprovechar el código personalizado para cumplir con requisitos específicos. Es importante tener en cuenta las mejores prácticas de seguridad, escalabilidad y mantenibilidad al diseñar e implementar este tipo de proceso de implementación.