Importancia de la Infraestructura como c贸digo

1

Paso a paso para infraestructura c贸mo c贸digo

2

C贸mo desplegar infraestructura en Cloud

3

Herramientas para desplegar infraestructura como c贸digo

4

Introducci贸n y ventajas de usar Cloudformation

5

Laboratorio # 1: explorando la consola de Cloudformation

Funcionalidades y caracter铆sticas en Cloudformation

6

Anatom铆a de un template en Cloudformation

7

Clase pr谩ctica creaci贸n de un template

8

Despliegue del template en Cloudformation

9

Caracterist铆cas finales del template en Cloudformation

10

Stacks: caracter铆sticas y despliegue

11

Bonus: ejemplo de stack

12

Stack Sets: despliegues multicuenta

13

Laboratorio # 2: desplegando un Stack Set en un esquema multi-cuenta

14

Nested Stacks: composici贸n y ejemplos

15

Laboratorio # 3: creaci贸n de recursos del Stack

16

Laboratorio #3: pruebas de funcionamiento del stack

17

Laboratorio # 4: crear nuestro primer Nested Stack

18

Laboratorio #4: pruebas de funcionamiento del Nested Stack

19

Laboratorio # 5: c贸mo crear un stack de forma gr谩fica con Designer

Funciones en Cloudformation

20

Funciones intr铆nsecas: GetAtt, FindInMap, Join, Split y Select

21

Funciones intr铆nsecas: Sub, Ref y ImportValue.

22

Funciones condicionales: If, Not, And y Equals

Automatizaci贸n y despliegues de infraestructura como c贸digo

23

Importancia de la automatizaci贸n de infraestructura

24

C贸mo automatizar despliegues de infraestructura

25

Creaci贸n de pipelines para despliegue de infraestructura

26

Laboratorio #6: Estructura de repositorio para despliegue de funci贸n lambda

27

Laboratorio #6: prerequisitos para creaci贸n del pipeline

28

Laboratorio #6: despliegue de pre requisitos

29

Laboratorio #6: creaci贸n del pipeline para el despliegue de una funci贸n lambda

30

Laboratorio #6: verificaci贸n de recursos creados en el pipeline

Diagnostico de errores y seguridad en infraestructura como c贸digo.

31

Seguridad en templates

32

Troubleshooting

33

Seguridad en despliegues

34

Laboratorio # 7: identificaci贸n de errores en despliegues

Funciones lambda en Cloudformation

35

C贸mo desplegar lambda como funci贸n

36

C贸mo desplegar lambda como funci贸n serverless

37

Laboratorio # 8: puesta en producci贸n de nuestra funci贸n lambda

Conclusiones

38

Conclusiones finales

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Infraestructura Como C贸digo en AWS

Curso de Infraestructura Como C贸digo en AWS

Carlos Andr茅s Zambrano Barrera

Carlos Andr茅s Zambrano Barrera

Despliegue del template en Cloudformation

8/38
Recursos

Aportes 15

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

AWSTemplateFormatVersion : "2010-09-09"

Parameters:
  DynamoAtributo:
    Type: String
  NombreDynamo:
    Type: String

Resources:
  DynamoDesdeCero:
    Type: AWS::DynamoDB::Table
    Properties:
      AttributeDefinitions:
        # Esquema de claves para la tabla y los 铆ndices
        # !Ref = Parameters
        - AttributeName: !Ref DynamoAtributo
        #Nombre del atributo, Obligatorio, Lo obtenemos como parametro
          AttributeType:  S
        # S = string
      KeySchema:
        #
        - AttributeName: !Ref DynamoAtributo
          KeyType: HASH

      # Como nos va a cobrar el recurso
      BillingMode: PAY_PER_REQUEST

      SSESpecification:
        # Cifra la base de datos
        SSEEnabled: true
      TableName: !Ref NombreDynamo
      #Tags:
        #- Tag
      #TimeToLiveSpecification:
        #TimeToLiveSpecification
# Exportar Nombres
Outputs:
  NombreDynamo:
    Value: !Ref DynamoDesdeCero
    Export:
      Name: NombreDynamo



Me arrojaba un error de ROLL_BACK ya que me habia quedado 鈥淗ash鈥 en minuscula debe ser mayuscula
KeySchema:
- AttributeName: !Ref DynamoAtributo
KeyType: HASH

Wohooo 鉂わ笍 que genial

Me qued贸 la duda para que sirve el Output que le pusimos al final del template 馃馃

Yo utilice atom, lo que me di cuenta es el orden de tabulaciones que debe seguir es extricto o me equivoco, solo cuando corregi este orden me funciono correctamente.

Para recientes versiones, es necesario agregar el campo DeletionPolicy en el recurso, as铆:

AWSTemplateFormatVersion: 2010-09-09

Parameters:
  DynamoAtributo:
    Type: String
  NombreDynamo:
    Type: String

Resources:
  DynamoDesdeCero:
    Type: AWS::DynamoDB::Table
    DeletionPolicy: Delete
    Properties: 
      AttributeDefinitions: 
        - AttributeName: !Ref DynamoAtributo
          AttributeType: S
      BillingMode: PAY_PER_REQUEST
      KeySchema: 
        - AttributeName: !Ref DynamoAtributo
          KeyType: HASH
      SSESpecification: 
        SSEEnabled: true
      TableName: !Ref NombreDynamo

Outputs:
  NombreDynamo:
    Value: !Ref DynamoDesdeCero
    Export:
      Name: NombreDynamo

Somprendente 馃槷

Las clases de Carlos son excelentes pero estan fallando con el audio

馃槂

ejale veamos como funciona los template en CloudFormation 馃槂

El volumen del video 鈥 suena muy muy pasito

Me lanza un error AttributeDefinitions:
AttributeType must be a list.
voy a buscar en la documentacion a ver porque ahora es diferente la verificacion
que alguien me avise si le paso lo mismo

Hola, alguien tiene la presentaci贸n del curso??

Error : unknown tag !<!Ref> at line 14, column 45:
鈥 tributeName: !Ref DynamoAtributo
^
Line : undefined undefined

Tengo este problema y parece que el por el !ref

驴Alguien le paso igual ?

Este es un ejemplo para desplegar una instancia ec2 en un vpc existente con grupos de seguridad existentes.

AWSTemplateFormatVersion: 2010-09-09
Description: Mi primera instancia ec2.

Parameters:
sginstance:
Description: Grupo de seguridad existente.
Type: ListAWS::EC2::SecurityGroup::Id

vpcid:
Description: VPC existente.
Type: AWS::EC2::VPC::Id

keypair:
Description: LLave existente.
Type: AWS::EC2::KeyPair::KeyName

ubuntuvirginia:
Description: Imagen ubuntu en la region de virginia
Type: String
Default: ami-0885b1f6bd170450c

tipoinstancia:
Description: Tipo de instancias permitidas (- t2.micro- t1.nano- t2.medium)
Type: String
Default: t2.micro
AllowedValues:
- t2.micro
- t1.nano
- t2.medium

Resources:
myEC2Instance:
Type: AWS::EC2::Instance
Properties:
KeyName: !Ref keypair
DisableApiTermination: false
ImageId: !Ref ubuntuvirginia
InstanceType: !Ref tipoinstancia
Monitoring: false
SecurityGroupIds: !Ref sginstance
UserData: !Base64 |
#!/bin/bash -ex
apt-get update -y
apt-get upgrade -y
apt-get install apache2 -y
/etc/init.d/apache2 start
Tags:
- Key: Name
Value: myEC2Instance

Outputs:
IPPublica:
Value: !GetAtt myEC2Instance.PublicIp