No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

13 Días
15 Hrs
22 Min
40 Seg

Laboratorio: empezando con CloudFormation

13/19
Recursos

CloudFormation nos permite provisionar infraestructura como código. Para poner a prueba CloudFormation, mediante una plantilla vamos a crear un stack a partir del cual se desplegará un bucket de S3. Luego, actualizaremos el stack añadiendo otro bucket de S3, y finalmente lo eliminaremos.
Diagrama de stack de CloudFormation

Entendiendo la plantilla

En este repositorio encontrarás la plantilla de CloudFormation que usaremos. La plantilla tiene la siguiente estructura JSON (recuerda, CloudFormation acepta formato JSON o YAML):

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "this template does XXXX",
  "Metadata": {},
  "Parameters": {},
  "Mappings": {},
  "Conditions": {},
  "Transform": {},
  "Resources": {},
  "Outputs": {}
}

Estos parámetros corresponden a lo siguiente:

  • AWSTemplateFormatVersion: este parámetro es opcional. Aquí especificamos la versión de la plantilla
  • Description: cadena de texto que describe la plantilla. Debe ir después de AWSTemplateFormatVersion
  • Metadata: objetos que proporcionan información adicional sobre la plantilla
  • Parameters: valores que pasaremos a la plantilla al ejecutarse, ya sea durante la creación o actualización del *stack
  • Mappings: permite asignar un conjunto de valores a una clave específica. Por ejemplo, para establecer valores en función de una región, podemos crear un mapping que usa el nombre de una región como clave y contiene los valores que deseemos especificar para cada región
  • Conditions: controla que se creen recursos o se asignen valores a dichos recursos en función de una condición. Por ejemplo, podemos asignar valores distintos para entornos de producción o de prueba
  • Transform: especifica las macros que AWS CloudFormation usa para procesar la plantilla
  • Resources: aquí se declaran los recursos a incluir en el stack. Por ejemplo, instancias EC2 o buckets de S3.
  • Outputs: declara valores de salida que pueden ser usados en otros stacks

Pasos para crear el stack

  1. Nos dirigimos a la página de CloudFormation desde nuestra cuenta de AWS (en esta página podremos conocer más sobre el servicio en cuestión).
  2. Aquí le damos a “Crear stack”.
  3. Para crear el stack, en “Especificar plantilla” seleccionamos “Cargar un archivo de plantilla”, y cargamos el archivo createstack.json. Este archivo simplemente define un bucket de S3 llamado “platzilab”.
{
  "Resources": {
    "platzilab": {
      "Type": "AWS::S3::Bucket"
    }
  }
}

Subir plantilla
4. Le damos clic a siguiente y, a continuación, escogemos un nombre para el stack o pila. En este caso, la llamamos cfnlab, y le damos a siguiente.
5. Opcionalmente, podemos añadir etiquetas para identificar la pila, y un rol de IAM.
6. Dejamos el resto de configuraciones por defecto y le damos a siguiente. Entonces nos llevará a revisar las configuraciones, y le damos a “Crear pila”.
7. Podremos ver el proceso de creación de la pila, los eventos y los recursos que fueron creados. Si te fijas en el nombre del bucket creado, verás que este está compuesto por el nombre de la pila, el nombre que le asignamos al bucket en la plantilla, y una cadena de texto aleatoria. Esto es para evitar crear recursos con nombre duplicados.

Pila y bucket creados

Contribución creada con aportes de: Ciro Villafraz.

Aportes 12

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Como aporte, hay varios frameworks que nos permiten modelar los recursos en .yaml, .ts (typescript) entre otros que integrandolos con GitOps los CI de infraestructura se vuelve muy rápido 😃, ejemplos:

  • Serverless Framework
  • Pulumi
  • Terraform

Laboratorio: empezando con CloudFormation

.
Esto es lo que vamos a realizar en este laboratorio
.

.

Paso a Paso del laboratorio

.

  1. En el buscador escribimos CloudFormation


    .

  2. Damos click en create stack

    .

  3. En Choose File cargamos el JSON que se encarga de crear el stack. Los archivos los dejó el profe en el repositorio: https://github.com/platzi/aws-cloud-practitioner/tree/main/lab-cloudformation


    .

  4. Damos el nombre del stack


    .

  5. Configuramos los tags y dejamos el resto igual

APORTE IMPORTANTE!

Para que puedan seguir el flujo de la clase por favor primero elijan la Region

Se podría emplear codebuild y cloud formation para automatizar por completo el despliegue. Una rama de la infraestructura en prueba y la otra en producción, que cambie menos.

Yo tengo que aprender esto, pero sinceramente soy mas de Terraform, es una alternativa excelente, aunque no sé si se equipara con Cloud Formation en sus capacidades.

Me puse a revisar y en donde trabajo utilizan yaml para crear el template de cloudformation

Ejemplo plantilla ```js AWSTemplateFormatVersion: '2010-09-09' Description: Plantilla simple de CloudFormation para lanzar una instancia de EC2 Resources: MyEC2Instance: Type: "AWS::EC2::Instance" Properties: InstanceType: "t2.micro" ImageId: "ami-0abcdef1234567890" # Reemplaza con un ID de AMI válido para tu región KeyName: "my-key-pair" # Reemplaza con el nombre de tu par de llaves SecurityGroups: - Ref: MySecurityGroup MySecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Permitir acceso SSH" SecurityGroupIngress: - IpProtocol: "tcp" FromPort: "22" ToPort: "22" CidrIp: "0.0.0.0/0" ```

Otros frameworks de mas alto nivel, son AWS CDK y AWS SAM

hola colegas. estoy en el paso 4 Set deployment options.... y no sé que paso seguir ..... me quedé...me pueden ayudar por favor? .. gracias ![](https://static.platzi.com/media/user_upload/image-fb8c1f4b-02bf-45eb-a8a4-ffb24a73ecf1.jpg)
![](https://static.platzi.com/media/user_upload/image-569e69dc-2f59-4a31-b544-322687b9e691.jpg) Me sale ese error :( [Error Responses - Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html)

Recordatorio para que siempre revises en que region crear tus recursos

Información resumida de esta clase
#EstudiantesDePlatzi

  • CloudFormation nos permite construir toda la infraestructura como código en formato Json

  • Es buena idea tomar el curso de infraestructura como código para entender bien como crear y estructurar el archivo Json

  • Podemos utilizar Json o Yaml

  • El Bucket y Stack de Cloudformation deben estar creados en la misma región

  • Los Stacks pueden tener etiquetas para que sean fácilmente identificables

  • Dentro de S3 los Buckets deben tener único nombre