Lab 0: Prerrequisitos

Lab 0: Prerrequisitos

Antes de comenzar, asegurémonos de tener todo lo necesario para ejecutar este workshop de principio a fin sin interrupciones.


Lo que necesitas

Recurso Detalle
Cuenta AWS Con permisos de administrador (o el conjunto de permisos detallado abajo)
Dominio propio (opcional) Para usar un nombre real en Route 53 (si no tienes, usaremos direcciones directas)
Email válido Para recibir notificaciones SNS
Número de teléfono (opcional) Para notificaciones SMS vía SNS

Región recomendada

Aviso

AWS Route 53 ARC (Application Recovery Controller) está disponible en todas las regiones, pero el plano de control de ARC Routing Controls opera globalmente. Para este workshop usaremos us-east-1 (N. Virginia) como región principal, ya que es donde ARC tiene soporte completo y donde los Health Checks de Route 53 son globales.

Navega a la consola de AWS y asegúrate de estar en us-east-1:

https://us-east-1.console.aws.amazon.com

Acceder a CloudShell

Todos los comandos de este workshop se ejecutan desde AWS CloudShell, la terminal integrada en la consola de AWS. No necesitas instalar nada en tu máquina local.

Cómo abrir CloudShell:

  1. En la barra superior de la consola AWS, haz clic en el ícono de terminal >_
  2. Espera a que el ambiente se inicialice (puede tardar ~30 segundos la primera vez)
  3. Verás un prompt similar a [cloudshell-user@... ~]$
Consejo

CloudShell ya tiene instalados: AWS CLI, Python, jq, y otros utilitarios esenciales. No necesitas configurar credenciales ya que hereda las de tu sesión de consola.


Verificar permisos

Ejecuta esto en CloudShell para confirmar que tienes acceso:

# Verificar identidad actual
aws sts get-caller-identity

Deberías ver algo como:

{
    "UserId": "AIDA...",
    "Account": "123456789012",
    "Arn": "arn:aws:iam::123456789012:user/tu-usuario"
}

Guardar el Account ID

Lo necesitaremos en varios pasos. Guárdalo como variable de entorno:

export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
export AWS_REGION="us-east-1"
echo "Account ID: $AWS_ACCOUNT_ID"
echo "Region: $AWS_REGION"
Consejo

CloudShell resetea las variables al cerrar la sesión. Si cerrás el browser y volvés, tendrás que re-ejecutar estos export. En cada lab te recordaremos qué variables necesitas.


Permisos IAM necesarios

Si tu usuario no tiene AdministratorAccess, necesitás los siguientes permisos:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudformation:*",
        "ec2:*",
        "elasticloadbalancing:*",
        "s3:*",
        "cloudfront:*",
        "route53:*",
        "route53-recovery-control-config:*",
        "route53-recovery-cluster:*",
        "sns:*",
        "lambda:*",
        "iam:CreateRole",
        "iam:AttachRolePolicy",
        "iam:PassRole",
        "iam:GetRole",
        "iam:DeleteRole",
        "iam:DetachRolePolicy",
        "logs:*"
      ],
      "Resource": "*"
    }
  ]
}

✅ Verificación del Lab 0

Ejecuta el siguiente script para confirmar que todo está listo:

echo "=== Verificando prerrequisitos ==="

# Verificar AWS CLI
aws --version && echo "✅ AWS CLI OK" || echo "❌ AWS CLI no encontrado"

# Verificar región
echo "Región activa: $(aws configure get region || echo $AWS_REGION)"

# Verificar permisos básicos
aws ec2 describe-availability-zones --query 'AvailabilityZones[0].ZoneName' --output text \
  && echo "✅ Permisos EC2 OK" || echo "❌ Sin permisos EC2"

aws s3 ls > /dev/null 2>&1 \
  && echo "✅ Permisos S3 OK" || echo "❌ Sin permisos S3"

aws route53 list-hosted-zones --query 'HostedZones[0]' > /dev/null 2>&1 \
  && echo "✅ Permisos Route 53 OK" || echo "❌ Sin permisos Route 53"

echo ""
echo "=== Account ID: $(aws sts get-caller-identity --query Account --output text) ==="
echo "=== Prerrequisitos verificados ==="

Si todos los checks muestran ✅, estás listo para comenzar.


Siguiente paso → Lab 1: Despliegue del Sitio Primario