Contexto
Necesito actualizar una base de datos sin servidor Aurora de producción de MySQL 5.6 a 5.7. Todos mis recursos se implementan como infraestructura como código, con CloudFormation.
Problema
La actualización de la versión del motor en la plantilla de CloudFormation daría como resultado el reemplazo de la base de datos, por lo tanto, el tiempo de inactividad y la pérdida de datos. También tengo muchos recursos dependientes que dependen del ARN de la base de datos para conectarse. (El ARN se exporta actualmente como una referencia de pila cruzada).
Pregunta
¿Cuál sería una forma limpia de lograr ese tipo de mantenimiento, viable a largo plazo?
Gracias por adelantado !
Si echa un vistazo a cualquier documentación de CloudFormation, cada parámetro se etiquetará con la Update requires . Esto identificará si hay un reemplazo definitivo o un reemplazo condicional de su recurso (o ninguno en absoluto).
Para un clúster de Aurora Serverless, la documentación tiene muchos parámetros que obligarán a reemplazarlo.
La forma en que maneje esto depende de la importancia del recurso, recuerde que incluso comenzar desde una instantánea implicará un tiempo de inactividad potencial en el que también se perderían los datos escritos en el clúster original.
Personalmente recomendaría mirar los siguientes factores:
Sugeriría intentar crear esto como un recurso adicional, ya que, a diferencia de la mayoría de los recursos, perder su base de datos podría no ser tan fácil de revertir si se ha eliminado. Una vez que esté seguro, elimine la base de datos anterior.