Skip to Content

How to create for website fro scratch?

October 31, 2024 by
How to create for website fro scratch?
Juan B Gonzalez M
| No comments yet

Introducción

Si estás buscando una solución sólida, escalable y de alto rendimiento para tu página web, Amazon Web Services (AWS) es una de las mejores opciones. En este tutorial te guiaré a través del proceso de compra de dominio, configuración de servidor en AWS y la implementación de tu sitio web en WordPress utilizando Docker y Nginx. Veremos cada paso y explicaremos cómo estas herramientas se conectan entre sí.

Herramientas y Servicios Utilizados

  1. Proveedor de Dominios (Route53, Namecheap, GoDaddy): Compra el nombre de dominio para tu sitio web.
  2. Amazon Web Services (AWS): Plataforma de nube que ofrece servicios como Amazon EC2 para servidores y Amazon RDS para bases de datos.
  3. Docker y Docker Compose: Permiten la creación de contenedores para mantener tus aplicaciones aisladas y organizadas.
  4. Nginx: Servidor web para manejar el tráfico HTTP hacia tu sitio.
  5. Certbot (Let’s Encrypt): Herramienta para obtener y renovar certificados SSL de manera gratuita.

Paso 1: Compra de Dominio

Primero, necesitas un dominio. Puedes comprarlo en proveedores como:

  • Route53 (de AWS): Integrado directamente con AWS.
  • Namecheap: Ofrece precios accesibles y buenos servicios de soporte.
  • GoDaddy: Muy conocido, con buenas herramientas de administración.

Una vez que tienes el dominio, podrás conectarlo a tu servidor para que tu página sea accesible desde internet.

Paso 2: Configuración del Servidor en AWS

  1. Crea una instancia EC2 (Amazon Linux 2):
    • Entra a tu cuenta de AWS y ve a EC2.
    • Elige una instancia Amazon Linux 2 (optimizada para Amazon).
    • Para mantener los costos bajos, selecciona un t3.micro. Si estás en el nivel gratuito de AWS, no tendrás costo adicional por los primeros seis meses.
  2. Configura la Seguridad:
    • En el grupo de seguridad, permite el acceso a los puertos:
      • 80 (HTTP) y 443 (HTTPS) para tráfico web.
      • 22 para SSH, necesario para acceder y configurar el servidor.

Paso 3: Instalación de Docker y Docker Compose

Una vez que hayas accedido a tu servidor vía SSH, instala Docker y Docker Compose:

bashCopiar códigosudo yum update -y
sudo amazon-linux-extras install docker
sudo service docker start
sudo usermod -aG docker ec2-user
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

¿Por Qué Usar Docker y Docker Compose?

Ventajas:

  • Aislamiento: Docker permite ejecutar aplicaciones en contenedores, evitando conflictos entre dependencias.
  • Escalabilidad: Puedes añadir contenedores según crezca el tráfico de tu web.
  • Facilidad de Configuración: Docker Compose facilita el despliegue y administración de múltiples servicios a través de un solo archivo de configuración.

Paso 4: Preparación del Archivo Docker Compose

Vamos a crear un archivo docker-compose.yml que configurará los servicios necesarios: Nginx, Certbot, y WordPress.

yamlCopiar códigoversion: '3'
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - wordpress
    networks:
      - webnet

  wordpress:
    image: wordpress:latest
    environment:
      WORDPRESS_DB_HOST: your-db-endpoint
      WORDPRESS_DB_USER: your-db-username
      WORDPRESS_DB_PASSWORD: your-db-password
      WORDPRESS_DB_NAME: your-db-name
    networks:
      - webnet

  certbot:
    image: certbot/certbot
    volumes:
      - ./letsencrypt:/etc/letsencrypt
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    command: certonly --webroot -w /var/www/certbot -d your-domain.com

networks:
  webnet:

Paso 5: Configuración de la Base de Datos MySQL en AWS RDS

  1. Crea una Base de Datos en Amazon RDS:
    • Selecciona MySQL y una instancia de tipo db.t3.micro.
    • Configura las credenciales y el nombre de la base de datos.
    • Asegúrate de habilitar el acceso externo desde tu instancia EC2.
  2. Conecta WordPress a la Base de Datos:
    • En el archivo docker-compose.yml, coloca los valores correctos para WORDPRESS_DB_HOST, WORDPRESS_DB_USER, WORDPRESS_DB_PASSWORD, y WORDPRESS_DB_NAME.

Paso 6: Despliegue de los Servicios

Ejecuta los siguientes comandos para lanzar los contenedores:

bashCopiar códigodocker-compose up -d

Paso 7: Verificación de Puertos y Monitoreo

Para asegurarte de que los servicios están funcionando, usa:

bashCopiar códigodocker ps

Esto te mostrará los contenedores activos y los puertos. Revisa que nginx esté en los puertos 80 y 443, y que wordpress esté activo.

Paso 8: Configuración del Archivo de Configuración Nginx

Configura el archivo nginx.conf para que Nginx utilice tu dominio:

nginxCopiar códigoserver {
    listen 80;
    server_name your-domain.com;
    location / {
        proxy_pass http://wordpress:80;
    }
}

Paso 9: Redirección de Dominio a tu Servidor

Dirígete a tu proveedor de dominio y redirecciona el dominio hacia la dirección IP pública de tu instancia EC2. Esto permitirá que cualquier persona que ingrese tu dominio llegue a tu servidor en AWS.

Paso 10: Certificado SSL con Certbot

Finalmente, ejecuta el comando para obtener el certificado SSL gratuito de Let’s Encrypt y asegurar tu sitio:

bashCopiar códigodocker-compose run certbot certonly --webroot -w /var/www/certbot -d your-domain.com

Una vez que Certbot termine, modifica el archivo de configuración de Nginx para utilizar SSL.


Capa Gruita de AWS dura 1 año 

Mi Cliente tiene 5 meses con wordpress y bases de datos mysql en AWS

Aqui se puede observar que en el menu de Administracion de facturacion y costos / Analisis de Costo / Nivel Grauito , el cliente desde de 5 meses de uso solo ha consumido 25.73% de Amazon Elastic Compute Cloud (30GB) y el 96.27% de Amazon Relational Databases Services.


AWS Explorar de Costos de AWS 2.07$  / Mensual.

Mi Cliente tiene 5 meses con wordpress y bases de datos mysql en AWS

En el menu de Administracion de facturacion y costos / Explorador de Costos, el cliente solo ha pagado un total de 14.50$ en los 5 meses desde Mayo hasta Octubre 31 de 2024. En un promedio de 2.07$ mensual. Lo mas alto que pago fueron 2.99$ Mensual.

 Bases de datos mysql en AWS db.t3.micro

Bases de datos mysql en AWS db.t3.micro

Conclusión

Al final de estos pasos, tendrás un sitio web en WordPress completamente funcional, seguro y escalable. AWS, Docker y Nginx forman un poderoso stack que ofrece estabilidad, rendimiento y flexibilidad para cualquier proyecto web.

How to create for website fro scratch?
Juan B Gonzalez M October 31, 2024
Share this post
Tags
Archive
Sign in to leave a comment