logo ausum cloud

AWS CloudFormation: administración de recursos cloud cómo código

AWS-Cloud-Formation

Optimizar la gestión de los recursos en la nube, dedicándole menos tiempo en su configuración y mejorar la eficiencia y agilidad de las empresas en entornos cloud. Este es sin duda uno de los grandes objetivos para cualquier organización que aspire a ser cloud native. Y eso es precisamente lo que permite hacer el servicio de AWS CloudFormation.

Este servicio de infraestructura como código ha ido ganando adeptos durante los últimos años, pues facilita de forma notable el aprovisionamiento y administración de los recursos ofrecidos por AWS. En este artículo te explicaremos más detalladamente qué es AWS CloudFormation, para qué sirve, cómo se utiliza o qué ventajas ofrece.

 

TABLA DE CONTENIDO

 

 

¿Qué es AWS CloudFormation?

AWS CloudFormation es un servicio de infraestructura cómo código (IaC) que permite diseñar, implementar y gestionar recursos de la nube de Amazon Web Services y terceros. Los recursos a implementar y sus propiedades se definen en archivos de texto utilizando lenguajes declarativos y fácilmente interpretables como YAML o JSON.

Cada uno de los recursos disponibles, como podrían ser una instancia de EC2 o de bases de datos Amazon RDS, se describe de una forma particular dentro de la plantilla. De esta forma, toda una infraestructura cloud, desde la más sencilla a la más compleja, se puede definir como código, lo que facilita tanto su implementación como la automatización, replicación o reutilización de las plantillas de AWS CloudFormation.

Las plantillas, las cuales pueden partir desde 0 o reutilizar los ejemplos disponibles desde AWS CloudFormation, son totalmente modificables. Así es posible reducir el tiempo empleado en el diseño y aprovisionamiento de infraestructuras en la nube pública, optimizar los costes o simplificar la administración y escalabilidad.

¿Qué son las pilas de Amazon CloudFormation?

Con Amazon CloudFormation se pueden crear pilas, que son conjuntos de recursos que se crean y se eliminan como una sola unidad. Por ejemplo, se puede crear una pila que incluya una instancia de Amazon EC2, un grupo de seguridad y un volumen de Amazon EBS. Al eliminar la pila, se eliminan todos los recursos asociados.

Esto habilita el aprovisionamiento rápido y consistente durante todo su ciclo de vida, ya que su gestión es predecible, replicable y segura. Esto favorece también la automatización de las restauraciones, la escalabilidad automática o el mantenimiento predictivo. Las pilas se pueden crear desde la consola de AWS CloudFormation, desde la interfaz de línea de comandos (CLI) o desde el SDK. También se pueden actualizar o eliminar las pilas según sea necesario.

 

Ventajas de AWS CloudFormation

 

  • Permite crear y actualizar la infraestructura de forma rápida y sencilla, sin necesidad de realizar operaciones manuales o scripts personalizados.
  • Proporciona un control total sobre los recursos creados, permitiendo modificarlos, eliminarlos o restaurarlos según las necesidades.
  • Garantiza la coherencia y el cumplimiento de las mejores prácticas, ya que se pueden definir las políticas y los permisos necesarios para cada recurso.
  • Facilita la reutilización y el intercambio de las plantillas, ya que se pueden almacenar en repositorios como GitHub o S3, o utilizar las plantillas ya existentes en el repositorio público de AWS.
  • Ofrece una gran flexibilidad y personalización, ya que se pueden integrar otros servicios de AWS o de terceros, utilizar funciones condicionales o lógicas, o crear recursos personalizados.
  • Reduce los costes y los riesgos, ya que se puede estimar el coste de los recursos antes de crearlos, pudiéndose revertir en caso de error.
  • Evita la creación de conflictos gracias al uso de nombres lógicos, incluso si se crean varias pilas a partir de la misma plantilla.
  • CloudFormation Designer permite ver las plantillas creadas en un diagrama, identificando los recursos utilizados y sus relaciones. Además, también permite editar tanto visualmente cómo en código, actualizando el archivo de texto y el diagrama simultáneamente.
  • Gracias a Resource Import es posible incorporar recursos existentes al panel de administración de AWS CloudFormation, generando también una plantilla.

Ejemplo AWS CloudFormation

 

Cada usuario puede crear sus propias plantillas tanto a través de la escritura de código como de manera visual a través de CloudFormation Designer. Además, podrás encontrar una gran variedad de plantillas de ejemplo en la web de AWS, e incluso lanzarlas en tan solo un clic. A continuación mostramos un ejemplo de plantilla de AWS CloudFormation:

{

«AWSTemplateFormatVersion» : «2023-08-09»,

«Description» : «AWS CloudFormation Sample Template S3_Website_Bucket_With_Retain_On_Delete.»,

«Resources» : {

«S3Bucket» : {

«Type» : «AWS::S3::Bucket»,

«Properties» : {

«AccessControl» : «PublicRead»,

«WebsiteConfiguration» : {

«IndexDocument» : «index.html»,

«ErrorDocument» : «error.html»

}

},

«DeletionPolicy» : «Retain»

}

},

«Outputs» : {

«WebsiteURL» : {

«Value» : { «Fn::GetAtt» : [ «S3Bucket», «WebsiteURL» ] },

«Description» : «URL for website hosted on S3»

},

«S3BucketSecureURL» : {

«Value» : { «Fn::Join» : [ «», [ «https://», { «Fn::GetAtt» : [ «S3Bucket», «DomainName» ] } ] ] },

«Description» : «Name of S3 bucket to hold website content»

}

}

}

En este ejemplo se muestra cómo crear un bucket de S3 de acceso público configurado para el acceso a sitios web con una política de eliminación de retener al eliminar. Un ejemplo sencillo que nos permite hacernos una idea del potencial de este servicio y su puesta en marcha en todo tipo de proyectos que hagan uso de los distintos servicios de AWS.

Como partners oficiales de AWS, en Ausum Cloud disponemos de un equipo especializado en estas y otras soluciones ofrecidas por Amazon Web Services. Si necesitas ayuda en el diseño, implementación, administración u optimización de tus recursos en la nube pública, no dudes en contactar con nosotros.