Skip to main content
📝 Cloud & DevOps (AWS)

Cómo Configurar un Servidor AWS EC2 Usando Terraform en Mac [Guía Paso a Paso]

Guía paso a paso para configurar un servidor AWS EC2 usando Terraform en Mac. Incluye instalación, configuración de credenciales, archivos HCL y despliegue.

8 min

Tiempo de lectura

1,528

Palabras

Apr 02, 2025

Publicado

Engr Mejba Ahmed

Escrito por

Engr Mejba Ahmed

Compartir Artículo

Cómo Configurar un Servidor AWS EC2 Usando Terraform en Mac [Guía Paso a Paso]

Cómo Configurar un Servidor AWS EC2 Usando Terraform en Mac [Guía Paso a Paso]


Introducción: La Forma Más Inteligente de Lanzar Servidores AWS desde Mac

Si alguna vez has creado una instancia EC2 manualmente a través de la Consola de AWS, ya sabes lo fácil que es cometer errores — seleccionar la región incorrecta, olvidar configurar los grupos de seguridad o no configurar la clave SSH.

Ahora imagina lanzar tu infraestructura completa en la nube automáticamente con un solo comando. Ahí es donde entra Terraform.

Terraform es una poderosa herramienta de Infraestructura como Código (IaC) que te permite definir, versionar y automatizar despliegues en la nube en AWS, Azure, Google Cloud y más. Para desarrolladores que trabajan en Mac, ofrece una forma limpia, eficiente y repetible de gestionar servidores — sin tocar el panel de AWS.

En esta guía, aprenderás exactamente cómo:

  • Configurar Terraform en tu Mac
  • Conectarlo con credenciales de AWS
  • Escribir un archivo de configuración Terraform para lanzar una instancia EC2
  • Aplicar, verificar y gestionar tu despliegue con confianza

Al final, tendrás un servidor AWS EC2 completamente funcional desplegado con Terraform — reproducible en cualquier momento y lugar.


Paso 1: Lo Que Necesitas Antes de Empezar

Antes de comenzar, asegúrate de tener los siguientes requisitos previos:

🧰 Requisitos del Sistema

  • macOS 12+
  • Homebrew (para instalación fácil de paquetes)
  • Una cuenta de AWS con claves de acceso
  • Conocimientos básicos de AWS EC2

☁️ Configuración de la Cuenta AWS

  1. Inicia sesión en tu Consola de AWS.

  2. Ve a IAM → Users → Security Credentials.

  3. Genera un Access Key ID y Secret Access Key.

    • Guárdalos de forma segura — Terraform los necesita para autenticarse con AWS.

Paso 2: Instalar Terraform en Mac

La forma más fácil de instalar Terraform en macOS es a través de Homebrew.

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

Verifica la instalación:

terraform -version

✅ Ejemplo de salida:

Terraform v1.9.0
on darwin_amd64

¡Eso es todo! Terraform ahora está instalado globalmente en tu sistema.


Paso 3: Configurar AWS CLI

Terraform se comunica con AWS a través de AWS CLI. Vamos a instalarlo y configurarlo.

brew install awscli

Una vez instalado, configúralo con tus credenciales:

aws configure

Ingresa:

AWS Access Key ID: <your-access-key>
AWS Secret Access Key: <your-secret-key>
Default region name: us-east-1
Default output format: json

Esto crea un archivo de configuración en ~/.aws/credentials, que Terraform usará para la autenticación.


Paso 4: Configurar un Nuevo Proyecto Terraform

Ahora crearemos un directorio de proyecto para tus archivos Terraform.

mkdir terraform-ec2-setup
cd terraform-ec2-setup

Dentro de esta carpeta, crea un nuevo archivo llamado main.tf:

touch main.tf

Aquí es donde irán todas tus configuraciones de Terraform.


Paso 5: Escribir tu Archivo de Configuración Terraform

Definamos todo lo que Terraform necesita para crear una instancia EC2 — proveedor, región, AMI, tipo de instancia y grupos de seguridad.

Abre main.tf y agrega el siguiente código:

# Especificar AWS como proveedor
provider "aws" {
  region = "us-east-1"
}

# Crear un par de claves
resource "aws_key_pair" "mac_key" {
  key_name   = "mac-terraform-key"
  public_key = file("~/.ssh/id_rsa.pub")
}

# Crear un grupo de seguridad
resource "aws_security_group" "allow_ssh" {
  name        = "allow_ssh"
  description = "Allow SSH inbound traffic"

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

# Crear una instancia EC2
resource "aws_instance" "my_ec2" {
  ami           = "ami-0c02fb55956c7d316"
  instance_type = "t2.micro"
  key_name      = aws_key_pair.mac_key.key_name
  security_groups = [aws_security_group.allow_ssh.name]

  tags = {
    Name = "Terraform-Mac-Instance"
  }
}

Paso 6: Inicializar Terraform

Antes de aplicar cualquier configuración, inicializa Terraform. Esto descarga todos los plugins de proveedores necesarios.

terraform init

✅ Salida esperada:

Initializing the backend...
Initializing provider plugins...
Terraform has been successfully initialized!

Paso 7: Validar la Configuración

Siempre valida tus archivos .tf antes de aplicar cambios.

terraform validate

Si todo es correcto, verás:

Success! The configuration is valid.

Paso 8: Previsualizar el Plan de Infraestructura

Ahora, veamos qué creará Terraform — sin hacer cambios reales todavía.

terraform plan

Terraform mostrará un plan detallado de los recursos a crear:

+ aws_instance.my_ec2
+ aws_security_group.allow_ssh
+ aws_key_pair.mac_key

Esta es tu oportunidad de confirmar la configuración antes del despliegue.


Paso 9: Aplicar y Crear la Instancia EC2

Una vez que estés listo, despliega la instancia:

terraform apply

Escribe yes cuando se te solicite.

Terraform:

  • Creará un par de claves
  • Configurará un grupo de seguridad
  • Desplegará una instancia EC2

✅ Salida esperada:

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

Outputs:
instance_public_ip = "54.210.19.33"

Ahora puedes conectarte por SSH a tu nueva instancia:

ssh [email protected]

Paso 10: Verificar en la Consola de AWS

Abre tu Consola de Administración de AWS → EC2 Dashboard, y verás tu nueva instancia ejecutándose bajo:

Name: Terraform-Mac-Instance

Esto confirma que Terraform ha desplegado exitosamente tu infraestructura.


Paso 11: Limpiar Recursos (Opcional)

Cuando termines de probar, siempre destruye la infraestructura para evitar costos innecesarios de AWS.

terraform destroy

Escribe yes para confirmar.


Paso 12: Entendiendo el Flujo de Trabajo de Terraform

Aquí hay un resumen rápido de los comandos del ciclo de vida de Terraform que usarás frecuentemente:

Comando Descripción
terraform init Inicializa el proyecto e instala plugins de proveedores
terraform validate Verifica la sintaxis de la configuración
terraform plan Previsualiza los cambios propuestos de infraestructura
terraform apply Aplica y despliega los cambios en AWS
terraform destroy Elimina los recursos creados

Paso 13: Problemas Comunes y Soluciones

❌ Error: Credenciales de AWS Inválidas

Verifica tu archivo ~/.aws/credentials o vuelve a ejecutar aws configure.

❌ Permission Denied (publickey)

Asegúrate de que tu clave SSH esté agregada correctamente en el recurso de par de claves de Terraform y en el directorio ~/.ssh de tu Mac.

❌ Security Group Not Found

Terraform crea dependencias automáticamente, pero si modificas nombres de recursos, vuelve a ejecutar terraform init.

❌ Conflictos de Archivo de Estado

Nunca edites manualmente terraform.tfstate. Usa backends remotos como S3 para entornos de equipo.


Paso 14: Mejores Prácticas para Terraform + AWS en Mac

✅ Usar Almacenamiento Remoto de Estado

Almacena el estado de Terraform en AWS S3 con bloqueo DynamoDB para evitar conflictos:

terraform {
  backend "s3" {
    bucket = "terraform-state-bucket"
    key    = "ec2/terraform.tfstate"
    region = "us-east-1"
  }
}

✅ Control de Versiones

Agrega .terraform/ a tu .gitignore y almacena los archivos .tf en Git para colaboración.

✅ Modularizar Infraestructura

Usa módulos de Terraform para configuraciones reutilizables — como vpc, ec2 y security_groups.

✅ Etiquetar Todo

Siempre etiqueta los recursos de AWS para facilitar la gestión, facturación y auditoría.


Paso 15: Automatizando la Configuración EC2 con Variables

Crea un archivo variables.tf para hacer las configuraciones reutilizables:

variable "instance_type" {
  default = "t2.micro"
}

variable "region" {
  default = "us-east-1"
}

Luego actualiza main.tf:

provider "aws" {
  region = var.region
}

resource "aws_instance" "my_ec2" {
  ami           = "ami-0c02fb55956c7d316"
  instance_type = var.instance_type
}

Ejecuta:

terraform plan
terraform apply

Esto hace que tu despliegue sea flexible e independiente del entorno.


Paso 16: Bonus – Automatizar con GitHub Actions (CI/CD)

Para usuarios avanzados, automatiza los despliegues de Terraform directamente desde GitHub.

Crea .github/workflows/deploy.yml:

name: Terraform AWS Deploy
on:
  push:
    branches: [ "main" ]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Terraform
        uses: hashicorp/setup-terraform@v2
      - name: Terraform Init
        run: terraform init
      - name: Terraform Apply
        run: terraform apply -auto-approve

Este pipeline ejecuta Terraform automáticamente cada vez que haces push a main — perfecto para automatización en equipo.


Puntos Clave

  • 💻 Terraform te permite automatizar la configuración de AWS EC2 desde tu Mac con código limpio y reutilizable.
  • 🔐 Usa claves de acceso IAM para autenticación — nunca codifiques credenciales directamente.
  • 🧠 Valida y previsualiza los planes antes de aplicar.
  • 🧩 Modulariza tu configuración de Terraform para escalabilidad.
  • ☁️ Limpia los recursos no utilizados para controlar los costos de AWS.

Llamada a la Acción

¿Listo para llevar tu automatización de AWS al siguiente nivel? Dominar Terraform en Mac es solo el comienzo — desde aquí, puedes expandirte a gestionar despliegues multi-entorno, buckets S3, VPCs e incluso clústeres de Kubernetes — todo a través de código.

👉 Comienza ahora configurando tu primera instancia EC2 gestionada con Terraform, y experimenta lo fácil que puede ser la automatización en la nube.


Preguntas Frecuentes

P: ¿Para qué se usa Terraform?

Terraform automatiza el despliegue de infraestructura en plataformas cloud como AWS, Azure y Google Cloud mediante archivos de configuración simples.

P: ¿Es Terraform gratuito?

Sí. Terraform CLI es de código abierto, aunque HashiCorp ofrece versiones de pago para equipos y automatización empresarial.

P: ¿Puedo usar Terraform en Windows o Linux también?

Absolutamente. Terraform funciona en todos los sistemas operativos principales. Los comandos de configuración varían ligeramente según la plataforma.

P: ¿Cómo me conecto por SSH a mi instancia EC2 de Terraform?

Usa tu clave SSH privada y la IP pública de la instancia:

ssh ec2-user@<instance_ip>

P: ¿Debería eliminar los recursos después de probar?

Sí — siempre ejecuta terraform destroy después de probar para evitar facturación inesperada de AWS.

Publicidad
Coffee cup

¿Te gustó este artículo?

Tu apoyo me ayuda a crear más contenido técnico detallado, herramientas de código abierto y recursos gratuitos para la comunidad de desarrolladores.

Temas Relacionados

Engr Mejba Ahmed

Sobre el Autor

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 10+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Discussion

Comments

0

No comments yet

Be the first to share your thoughts

Leave a Comment

Your email won't be published

12  -  10  =  ?

Seguir Aprendiendo

Artículos Relacionados

Ver Todos

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

Claude Code Expert · Online

👋

Hey there!

Quick Actions

WhatsApp Instant reply

Chat on WhatsApp

+880 1723 741224 · Instant reply

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

[email protected]

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support