Cómo utilizar Cloudformation para crear un bucket S3

Hay múltiples formas de crear un cubo S3 en AWS. La formación en la nube es una de las formas de la 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 formación en la nube. Si no conoces S3, te recomiendo que primero sigas los pasos para crear un cubo S3 utilizando la consola de AWS. Haz clicaquí para ver el artículo para crear un cubo S3 desde la consola de AWS.

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

Requisitos previos

  1. Cuenta de AWS(crearla si no la tienes).
  2. Conocimiento básico de las plantillas de Cloudformation.
  3. Conocimiento básico de los cubos de S3

¿Qué vamos a hacer?

  1. Iniciar sesión en AWS.
  2. Crear una plantilla.
  3. Crear una pila de formación de nubes.
  4. Eliminar la pila de formación de nubes.

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.

Puedes incluso 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

Crea una pila de 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 bajo la región seleccionada.

Panel de control de Cloudformation

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

Crea una 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 para la pila, también especifica un nombre para 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 o no especificarlas, 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 cubo S3 utilizando la pila de Cloudformation.

Revisar la configuración de la pila

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

Creación del cubo S3 completa

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

Buscar S3

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

Comprueba si se ha creado el cubo

Eliminar el Cloudformation Stack

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

Ahora, si vuelves a comprobar 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 elimines la pila.

Aun así, si quieres eliminar la pila haz clic en el botón «Eliminar».

Borrar pila

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

Confirmar el borrado

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

Eliminación de pila completada

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

Puedes volver al panel de control de S3 y ver tu cubo de S3 todavía disponible en tu cuenta.

Cubo retenido

Conclusión

En este artículo, hemos visto lo fácil que es crear un cubo 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...