Cómo utilizar Cloudformation para crear un bucket S3

Existen múltiples formas de crear un bucket S3 en AWS. Cloudformation es una de las formas de Infraestructura como Código (IaC) mediante la cual puedes crear un cubo así como tener tu código y compartirlo con otros. Antes de continuar, asumo que conoces el cubo S3 y los servicios AWS de Cloudformation. Si no conoces S3, te recomiendo que primero sigas los pasos para crear un bucket S3 utilizando la consola de AWS. Haz clic aquí para leer el artículo sobre cómo crear un bucket S3 desde la consola de AWS.

En este artículo, exploraremos varias opciones disponibles en Cloudformation para crear un bucket S3. Para conocer todas las opciones disponibles en Cloudformation para crear un bucket S3 visita la página oficial de AWS aquí.

Requisitos previos

  1. Cuenta de AWS(Créala si no tienes una).
  2. Conocimientos básicos de Plantillas de Cloudformation.
  3. Conocimientos básicos de los Cubos de S3

¿Qué vamos a hacer?

  1. Iniciar sesión en AWS.
  2. Crear una plantilla.
  3. Crea una Cloudformation Stack.
  4. Elimina la Cloudformation Stack.

Iniciar sesión en AWS

Haz clic aquí para ir a la página de inicio de sesión de AWS. Introduce tus credenciales de usuario para acceder a tu cuenta de AWS.

Página de acceso

Una vez que hayas iniciado sesión con éxito en tu cuenta de AWS, verás la consola de administración de AWS como se indica a continuación.

Consola de administración de AWS

Crear una plantilla

Antes de proceder a la creación de una pila crea un archivo en tu sistema local con el siguiente contenido.

Incluso puedes descargar la plantilla desde mi repositorio de Github, el enlace a la plantilla se menciona a continuación.

https://github.com/shivalkarrahul/DevOps/blob/master/aws/cloudformation/create-s3/create-s3.template

AWSTemplateFormatVersion: '2010-09-09'
Metadata: 
  License: Apache-2.0
Description: 'AWS CloudFormation Template to create an S3_Website_Bucket_With_Retain_On_Delete'
Parameters:
  BucketNameParameter:
    Type: String
    Description: Bucket Name
Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref BucketNameParameter
      AccessControl: PublicRead
      WebsiteConfiguration:
        IndexDocument: index.html
        ErrorDocument: error.html
    DeletionPolicy: Retain
Outputs:
  WebsiteURL:
    Value: !GetAtt [S3Bucket, WebsiteURL]
    Description: URL for website hosted on S3
  S3BucketSecureURL:
    Value: !Join ['', ['https://', !GetAtt [S3Bucket, DomainName]]]
    Description: Name of AWS S3 bucket to hold website content

Crear una pila Cloudformation

Una vez que tengas una plantilla en tu máquina local ve al panel principal de AWS, Haz clic en servicios en la parte superior izquierda de la pantalla y busca «Cloudformation». Haz clic en el resultado de Cloudformation que obtengas.

Buscar en Cloudformation

Verás el panel principal de Cloudformation. Ya tengo una pila en mi cuenta en la región seleccionada.

Panel de Cloudformation

Para crear una pila haz clic en Crear pila –> Con nuevos recursos(estándar).

Crear pila con nuevos recursos

Selecciona la opción «Subir un archivo de plantilla» y elige la plantilla de tu máquina local. Haz clic en el botón «Siguiente» para continuar.

Sube la plantilla

Especifica un nombre a la pila, Especifica también un nombre a un bucket S3 que se creará. Asegúrate de que el nombre que especifiques sea único a nivel global y que ningún otro bucket tenga el mismo nombre en todo el mundo en AWS. Haz clic en el botón «Siguiente» para continuar.

Especifica los detalles de la pila

Las etiquetas son opcionales, puedes especificarlas o no, para continuar haz clic en el botón «Siguiente».

Añade etiquetas si es necesario

Desplázate hacia abajo al final de la página y haz clic en el botón «Crear pila» para crear un bucket S3 utilizando la pila Cloudformation.

Revisar la configuración de la pila

Si el nombre que has especificado para el bucket es único y no hay ningún otro bucket con el mismo nombre en todo el mundo en AWS, se creará tu bucket y, una vez creado con éxito, verás el estado como «CREATE_COMPLETE».

Creación de S3 Bucket completada

Para comprobar si se ha creado el bucket, haz clic en servicios en la parte superior izquierda de la pantalla y busca S3 para ir al panel de control de S3.

Buscar en S3

En el panel de control de S3, verás que se ha creado tu cubo de S3.

Comprueba si se ha creado el cubo

Eliminar la pila de Cloudformation

Sabemos que al eliminar la pila Cloudformation se eliminan los recursos que crea. Esta vez es un poco diferente.

Ahora, si vuelves atrás y compruebas el código que tenemos en nuestra plantilla, te darás cuenta de que tenemos «DeletionPolicy: Retain». Gracias a esta opción, tu cubo no se borrará aunque borres la pila.

Aún así, si quieres borrar la pila haz clic en el botón «Borrar».

Borrar pila

Confirma la acción de borrado en la pantalla emergente que recibirás.

Confirmar eliminación

Una vez eliminada la pila, verás el estado como «PILA_ELIMINADA».

Eliminación de pila completada

Como he mencionado antes, debido a la opción «DeletionPolicy: Retain«, la pila se borrará pero el cubo de S3 se conservará.

Puedes volver al panel de control de S3 y ver que tu cubo de S3 sigue disponible en tu cuenta.

Cubo retenido

Conclusión

En este artículo hemos visto lo fácil que es crear un bucket de S3 utilizando una pila de Cloudformation. Podemos utilizar la misma pila para crear múltiples cubos de S3. Incluso podemos almacenar nuestro código en sistemas de control de versiones y compartirlo con otras personas. Hemos visto cómo la opción«DeletionPolicy: Retain» retiene el cubo y no lo borra aunque se elimine la pila.

También te podría gustar...