(HTTPS, ALB, Dominio propio)
Si eres fan de las aplicaciones web con Angular 6+ o trabajas con REST APIs en Node.js + Express pon mucha atención, pues en esta guía te ayudaré a configurar un ambiente de Elastic Beanstalk (servicio de Amazon AWS) utilizando un dominio propio y permitiendo llamadas HTTPS.
Lo que veremos y algunos requisitos previos:
Primero iniciemos con algunos requisitos que necesitaremos para poder empezar a levantar tu ambiente, si no conoces estos servicios o se te hace muy complicado entender algunos conceptos, te sugiero que primero investigues un poco antes de continuar.
Requisitos:
- Amazon AWS – Necesitarás haber creado una cuenta de Amazon AWS y haberla activado.
- Dominio – Ya sea que hayas comprado tu dominio en GoDaddy, Neubox o el proveedor de tu preferencia, es importante que poseas un dominio web propio.
Tecnologías / Servicios / Herramientas:
- Route 53 – En este servicio crearemos una hosted zone para obtener los valores de los nameservers de Amazon AWS que utilizarás más adelante.
- Certificate manager – Una vez que el dominio apunte a tus nameservers, solicitaremos un certificado de SSL por medio de este servicio.
- EC2 (security key pair) – Crearemos una llave de seguridad global la cual tendrás que conservar muy bien y la que te servirá para accesar por medio de SSH a tus instancias de Elastic Beanstalk.
- Elastic Beanstalk – En este servicio es donde sucede toda la magia.
Ahora sí, ya estamos listos para comenzar a levantar tu ambiente como debe de ser.
Apuntemos tu dominio a Amazon AWS:
En Route 53:
Crea una hosted zone con el mismo nombre de dominio que compraste, por ejemplo; si tu dominio es “mydomain.com” tendrás que ponerlo exactamente igual.
Ya que has creado tu hosted zone lo siguiente es dar clic en “mydomain.com” donde se te mostrarán los “registros” o “records” vinculados con tu zona previamente creada.
En la lista encontrarás un registro de tipo “NS” (Nameservers). Anota los 4 registros ya que los necesitarás acontinuación.
Bueno, ahora vamos a apuntar los nameservers de tu dominio a los servidores de Amazon AWS.
- Inicia sesión en tu cuenta de proveedor de dominios (en mi caso es neubox.com).
- Ve a la sección de configuración de Nameservers.
- Selecciona nameservers personalizados e ingresa los 4 valores que acabas de obtener de tu registro en la hosted zone.
Solicitemos un certificado SSL:
Para garantizar las llamadas https es necesario contar con un certificado SSL, el cuál obtendremos en el servicio Certificate Manager:
- Ve a certificate manager y da clic en “Request a certificate” o “Solicita un certificado”.
- Elige la opción de un certificado público.
- Cuando se te pida el dominio ingresa “mydomain.com” y da clic en “Add another name to this certificate” ingresa el siguiente valor “*.mydomain.com”.
- Da clic en next y en la siguiente pregunta selecciona “DNS Validation” o “Validación por DNS”.
Te pedirá que confirmes si los datos son correctos y te redireccionará a la sección principal donde podrás ver el estado de tu certificado.
Para concluir con la solicitud de tu certificado, da clic en la pestaña para mostrar los detalles del mismo y localiza el botón que dice “Create record in Route 53”.
Finalmente, da clic en ambos para crear el registro en tu hosted zone de manera automática y espera unos momentos hasta que el estado del certificado diga “Success”.
Configuremos el ambiente en Elastic Beanstalk:
¡Muy bien! Ya casi terminamos, estos pasos son muy importantes por lo que te pido que esperes verifiques que todo lo anterior esta correctamente configurado.
- Ve al servicio EC2, da clic en la herramienta Key Pairs que se encuentra en el panel inferior izquierdo.
- Crea una nueva Key Pair y almacénala en un lugar seguro en tu HDD.
En Elastic Beanstalk:
- Crea una nueva aplicación dando clic en el botón ubicado en la parte superior derecha.
- Después, da clic en el botón “Actions” para seleccionar la opción de crear un nuevo ambiente.
- Elige Web server environment y llena la información que se te pide (nombre del ambiente, subdominio, plataforma, código fuente de app) no selecciones crear ambiente todavía, da clic en la opción “Configure more options”.
- Selecciona la opción “Custom configuration” y modifica los siguientes:
- Load balanacer – agrega una regla para escuchar el puerto 443 por medio de https y selecciona el certificado que creamos anteriormente (ver imagen paso 5).
- Security – Selecciona la Key Pair previamente creada y agregala como llave de seguridad.
- Monitoring – Cambia el Health reporting system de basic a Enhanced. Asegúrate de que el reponse code sea 301 (Si es una app de Angular, de lo contrario usa el 200).
- Para terminar da clic en create environment y aguarda unos minutos para que termine la configuración.
Si te gustó este blog y te ayudó a resolver tu problema, te invito a dejarnos un breve mensaje y a compartirlo con tus amigos, eso nos motivará a seguir escribiendo más posts como este.
” ¡Hagamos algo grande juntos!”