Introducció a AWS CloudFormation
AWS CloudFormation és un servei que permet modelar i configurar els teus recursos d'AWS de manera automatitzada i segura. Amb CloudFormation, pots crear i gestionar un conjunt de recursos relacionats d'AWS, provisionant-los i actualitzant-los de manera ordenada i predictible.
Conceptes Clau
- Plantilles (Templates): Són arxius JSON o YAML que defineixen els recursos que vols crear i configurar.
- Stack: És una col·lecció de recursos que CloudFormation crea i gestiona com una unitat única.
- Change Sets: Permeten veure com els canvis a una plantilla afectaran els recursos existents abans d'implementar-los.
- Drift Detection: Permet detectar desviacions entre l'estat real dels recursos i l'estat definit a la plantilla.
Beneficis d'Utilitzar AWS CloudFormation
- Automatització: Automatitza la creació i gestió de recursos.
- Repetibilitat: Les plantilles permeten crear entorns idèntics de manera consistent.
- Gestió de Canvis: Facilita la gestió de canvis i actualitzacions als recursos.
- Seguretat: Permet definir polítiques de seguretat i permisos per als recursos.
Creació d'una Plantilla Bàsica
Exemples de Plantilles
Plantilla en JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MyEC2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": "t2.micro", "ImageId": "ami-0abcdef1234567890" } } } }
Plantilla en YAML
AWSTemplateFormatVersion: '2010-09-09' Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: 't2.micro' ImageId: 'ami-0abcdef1234567890'
Explicació del Codi
- AWSTemplateFormatVersion: Especifica la versió del format de la plantilla.
- Resources: Defineix els recursos que es crearan.
- MyEC2Instance: Nom lògic del recurs.
- Type: Tipus de recurs (en aquest cas, una instància EC2).
- Properties: Propietats del recurs, com el tipus d'instància i l'ID de la imatge.
- MyEC2Instance: Nom lògic del recurs.
Creació d'un Stack
Passos per Crear un Stack
- Accedeix a la Consola de CloudFormation.
- Clica a "Create stack".
- Selecciona "Template is ready" i carrega la teva plantilla (JSON o YAML).
- Proporciona un nom per al stack.
- Configura els paràmetres addicionals (si n'hi ha).
- Revisa i crea el stack.
Exemple Pràctic
Exercici: Crear una Instància EC2 amb CloudFormation
- Crea una plantilla YAML amb el següent contingut:
AWSTemplateFormatVersion: '2010-09-09' Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: 't2.micro' ImageId: 'ami-0abcdef1234567890'
- Accedeix a la Consola de CloudFormation.
- Clica a "Create stack" i selecciona "Template is ready".
- Carrega la plantilla YAML.
- Proporciona un nom per al stack (per exemple, "MyFirstStack").
- Revisa i crea el stack.
Solució
Un cop creat el stack, pots verificar que la instància EC2 s'ha creat correctament accedint a la consola d'EC2.
Gestió de Canvis amb Change Sets
Creació d'un Change Set
- Accedeix a la Consola de CloudFormation.
- Selecciona el stack que vols modificar.
- Clica a "Create Change Set".
- Carrega la nova plantilla amb els canvis.
- Revisa els canvis proposats i aplica'ls si són correctes.
Exemple Pràctic
Exercici: Actualitzar la Instància EC2
- Modifica la plantilla YAML per canviar el tipus d'instància:
AWSTemplateFormatVersion: '2010-09-09' Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: 't2.small' ImageId: 'ami-0abcdef1234567890'
- Crea un Change Set amb la nova plantilla.
- Revisa els canvis i aplica'ls.
Solució
Un cop aplicat el Change Set, la instància EC2 hauria de reflectir el nou tipus d'instància.
Detecció de Desviacions (Drift Detection)
Com Utilitzar Drift Detection
- Accedeix a la Consola de CloudFormation.
- Selecciona el stack que vols verificar.
- Clica a "Detect drift".
- Revisa els resultats per veure si hi ha desviacions entre l'estat real i la plantilla.
Exemple Pràctic
Exercici: Detectar Desviacions
- Modifica manualment la instància EC2 des de la consola d'EC2 (per exemple, canviant el tipus d'instància).
- Utilitza Drift Detection per detectar la desviació.
Solució
La consola de CloudFormation hauria de mostrar les desviacions detectades.
Resum
En aquesta secció, hem après els conceptes bàsics d'AWS CloudFormation, com crear plantilles, stacks, gestionar canvis amb Change Sets i detectar desviacions. AWS CloudFormation és una eina poderosa per automatitzar la gestió de recursos a AWS, proporcionant una manera consistent i segura de desplegar i gestionar infraestructures.
En el següent tema, explorarem AWS Elastic Beanstalk, una altra eina poderosa per desplegar i gestionar aplicacions a AWS.