El lento proceso de configurar los recursos necesarios uno por uno ya no es necesario para implementar servidores y aplicaciones web.
Los productos de plataforma como servicio (PaaS) como AWS Elastic Beanstalk y Heroku se crearon para permitir aplicaciones que se implementarán y estarán disponibles para los usuarios con poco o ningún código y unos pocos botones clics
Entonces, ¿qué es AWS Elastic Beanstalk y cómo puede implementar sus aplicaciones web Go en la nube con Elastic Beanstalk?
¿Qué es AWS Elastic Beanstalk?
AWS Elastic Beanstalk (AWS EB) es un producto de plataforma como servicio ofrecido por Amazon Web Services que permite la implementación y administración rápidas y sencillas de las aplicaciones y los recursos necesarios.
Con Elastic Beanstalk, es fácil implementar una aplicación sin tener que configurar todos los recursos necesarios como un
servidor linux en EC2, o un servicio de monitoreo en cloudwatch. Elastic Beanstalk maneja todos los procesos de configuración de los recursos y le permite implementar varios tipos de aplicaciones, incluidos Node.js, Golang, PHP, Docker, etc.Creación de un servidor web Golang simple
A los fines de este tutorial, debe tener una aplicación Golang en funcionamiento para implementar en AWS Elastic Beanstalk, por lo que en esta sección se crea un servidor web Go simple.
Necesita un entorno de desarrollo de Golang configurado en su máquina para seguir esta sección.
El primer paso es inicializar un nuevo proyecto de Golang que se puede hacer desde la terminal ejecutando los siguientes comandos:
Una vez hecho esto, puede abrir el directorio del proyecto en su IDE preferido. En el directorio de su proyecto raíz, cree una carpeta llamada estático y crear un índice.html archivo en él. Copie y pegue el siguiente código en el archivo HTML y guárdelo.
html>
<htmlidioma="es">
<cabeza>
<metajuego de caracteres="UTF-8">
<título>¡Hola Mundo!título>
cabeza>
<cuerpo>
<h1>Hola mundo de Elastic Beanstalkh1>
cuerpo>
html>
Regrese al directorio raíz de su proyecto y cree un aplicación.ir archivo. Copie y pegue el siguiente código en su aplicación.ir archivo y guárdelo. Debes nombrar el archivo principal aplicación.ir porque este es el archivo que Elastic Beanstalk buscará para compilar su aplicación durante el proceso de implementación.
paquete principal
importar (
"registro"
"red/http"
)funciónprincipal() {
estática := http. servidor de archivos (http. Dir("./estático"))
http. Manejar("/", estático)
registro. fatal (http. escucharyservir(":5000", nulo))
}
Elastic Beanstalk usa de forma predeterminada una configuración NGINX que reenvía solicitudes a su aplicación solo en el puerto 5000. Excepto que anulará las configuraciones predeterminadas de NGINX, su aplicación Golang siempre debe escuchar en el puerto 5000 las solicitudes.
Si guarda el archivo y ejecuta el programa en la terminal con ve a ejecutar application.go, podrá obtener una vista previa de la página web estática abriendo la dirección servidor local: 5000 en tu navegador.
Ahora tiene su aplicación de muestra creada y lista para su implementación. En la siguiente sección, implementará la aplicación en AWS Elastic Beanstalk.
Implementación de una aplicación Go en AWS Elastic Beanstalk
Para implementar una aplicación en cualquier servicio de AWS, como Elastic Beanstalk, necesita una cuenta en la nube de AWS. Si actualmente no tiene una cuenta de AWS, vaya a Página de registro de AWS para crear uno nuevo gratis.
Hay varias formas de implementar aplicaciones en Elastic Beanstalk, incluida la CLI de AWS, la interfaz de línea de comandos de Elastic Beanstalk (EB CLI) y desde la consola web, pero en este tutorial aprenderá a implementar en Elastic Beanstalk desde el terminal mediante la CLI de EB. herramienta.
Puede consultar el Guía de instalación de la CLI de AWS EB para obtener una guía detallada sobre cómo instalar y configurar EB CLI para seguir esta sección. Una vez que haya terminado de instalar y configurar EB CLI, ahora puede continuar y seguir los pasos a continuación para implementar su aplicación Golang.
- Abra una nueva ventana de terminal y navegue a la carpeta del proyecto de la aplicación Go que se implementará usando el cd dominio.
- Correr inicio eb para inicializar un nuevo repositorio CLI de Elastic Beanstalk. Siendo la primera vez que ejecuta este comando después de la instalación, la CLI de EB le indicará las opciones de configuración iniciales, como se ve en los pasos que siguen.
- Después de elegir una región preferida, debe configurar sus credenciales de identidad de seguridad (ID de clave de acceso y clave secreta). Hay una guía completa proporcionada por AWS en la generación de las credenciales de seguridad en la consola de AWS.
- A continuación, debe definir el nombre de la aplicación que está implementando. De forma predeterminada, utiliza el nombre de la carpeta de su proyecto actual.
- El siguiente paso es seleccionar la plataforma de la aplicación que está a punto de implementar, en este caso, debe seleccionar la cuarta opción ya que está implementando una aplicación Golang.
- El siguiente mensaje le pregunta si desea habilitar una conexión SSH para su aplicación implementada. Esto se recomienda ya que permite un fácil acceso remoto y depuración de su aplicación, pero en este tutorial, No está seleccionado, ya que es solo una aplicación simple.
La línea que indica que no se pudo configurar CodeCommit no es motivo de preocupación, ya que se debe al hecho de que Git o cualquier otro control de código fuente no se está utilizando en el proyecto de este ejemplo.
- Después de completar los pasos anteriores, se creará un nuevo repositorio CLI de Elastic Beanstalk y ahora puede crear un entorno de Elastic Beanstalk para implementar su aplicación en los siguientes pasos.
- Correr eb crear "nombre del entorno" para crear un nuevo entorno llamado el especificado nombre del entorno. El entorno se crea con todos los recursos necesarios, incluida una instancia EC2, un grupo de escalado automático, un depósito S3, un equilibrador de carga, etc. Este proceso tarda entre 5 y 10 minutos, según la velocidad de la red.
Al igual que cuando tu implementar un sitio web estático en AWS, a su aplicación EB también se le asigna una URL (marcada en el cuadro rojo en la captura de pantalla anterior) que puede usar para acceder a su aplicación web.
- Una vez hecho con éxito, la aplicación está lista para ser vista previa y puede ejecutar abierto para abrir la aplicación implementada en su navegador. Ahora deberías ver Hola Mundo se muestra en su navegador web usando la URL que le asignó Elastic Beanstalk.
Cada vez que realice un cambio en su aplicación, puede ejecutar despliegue eb para enviar las últimas actualizaciones a Elastic Beanstalk. Y para cerrar su aplicación y todos sus recursos, puede ejecutar eb terminar.
Ha implementado correctamente una aplicación web de Golang en AWS Elastic Beanstalk mediante la herramienta CLI de Elastic Beanstalk. El proceso es muy sencillo y se puede seguir para implementar cualquier forma de aplicación web de Golang en Elastic Beanstalk.
Puede consultar su panel de control de Elastic Beanstalk en la consola de AWS para ver el estado o cualquier otra información sobre su entorno y aplicación.
Implementación de aplicaciones web en Elastic Beanstalk
Elastic Beanstalk es una forma confiable de llevar sus aplicaciones locales a vivir en pasos muy sencillos. Puede implementar y administrar fácilmente sus aplicaciones a pequeña y gran escala utilizando cualquiera de los medios que ofrece AWS, incluida la consola web, la CLI de AWS, la CLI de EB, las API de AWS o el SDK de AWS.
Para practicar más con los conocimientos adquiridos en este artículo, puede considerar crear una API CRUD con Go e implementarla en Elastic Beanstalk.