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
- Cuenta de AWS(crearla si no la tienes).
- Conocimiento básico de las plantillas de Cloudformation.
- Conocimiento básico de los cubos de S3
¿Qué vamos a hacer?
- Iniciar sesión en AWS.
- Crear una plantilla.
- Crear una pila de formación de nubes.
- 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.
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.
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.
Verás el panel principal de Cloudformation. Ya tengo una pila en mi cuenta bajo la región seleccionada.
Para crear una pila haz clic en Crear pila –> Con nuevos recursos(estándar).
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.
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.
Las etiquetas son opcionales, puedes o no especificarlas, para continuar haz clic en el botón «Siguiente».
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.
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».
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.
En el panel de control de S3, verás que tu cubo de S3 se ha creado.
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».
Confirma la acción de eliminación en la pantalla emergente que recibirás.
Una vez eliminada la pila, verás el estado como «STACK_DELETE».
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.
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.