Uso de la plataforma Elastic Beanstalk Go - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la plataforma Elastic Beanstalk Go

Puede utilizar AWS Elastic Beanstalk para ejecutar, crear y configurar aplicaciones basadas en Go. Existen dos formas de implementar aplicaciones sencillas de Go:

  • Puede proporcionar un paquete de código fuente con un archivo en la raíz llamado application.go que contenga el paquete principal de la aplicación. Elastic Beanstalk crea el binario con el siguiente comando:

    go build -o bin/application application.go

    Después de compilar la aplicación, Elastic Beanstalk la inicia en el puerto 5000.

  • Puede proporcionar un paquete de código fuente con un archivo binario llamado application. El archivo binario puede estar ubicado en la raíz o en el directorio bin/ del paquete de código fuente. Si sitúa el archivo binario application en las dos ubicaciones, Elastic Beanstalk utiliza el archivo del directorio bin/.

    Elastic Beanstalk lanza esta aplicación en el puerto 5000.

En ambos casos, con Go 1.11 o posterior, también puede proporcionar requisitos de módulo en un archivo llamado go.mod. Para obtener más información, consulte Migración a módulos Go en el blog Go.

Existen dos modos de implementar aplicaciones complejas de Go:

  • Puede proporcionar un paquete de código fuente que incluya los archivos de código fuente de la aplicación junto con un archivo Buildfile y un archivo Procfile. El archivo Buildfile contiene un comando para crear la aplicación y el archivo Procfile incluye instrucciones para ejecutar la aplicación.

  • Puede proporcionar un paquete de código fuente que incluya los archivos binarios de la aplicación junto con un archivo Procfile. El archivo Procfile contiene instrucciones para ejecutar la aplicación.

La plataforma Go incluye un servidor proxy para servir recursos estáticos, reenviar el tráfico a la aplicación y comprimir las respuestas. Puede ampliar o invalidar la configuración del proxy predeterminada para escenarios avanzados.

Para obtener más información sobre las diversas formas en las que puede ampliar una plataforma Elastic Beanstalk basada en Linux, consulte Ampliación de las plataformas Linux de Elastic Beanstalk.

Configuración del entorno de Go

La configuración de la plataforma Go le permite ajustar el comportamiento de sus instancias de Amazon EC2. Puede editar la configuración de instancia de Amazon EC2 del entorno de Elastic Beanstalk mediante la consola de Elastic Beanstalk.

Utilice la consola de Elastic Beanstalk para habilitar la rotación de registros en Amazon S3 y configurar variables que la aplicación pueda leer desde el entorno.

Para configurar el entorno Go en la consola de Elastic Beanstalk
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su Región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.

Log Options (Opciones de registro)

La sección Log Options tiene dos valores:

  • Instance profile (Perfil de instancia): especifica el perfil de instancia que tiene permiso para obtener acceso al bucket de Amazon S3 asociado con la aplicación.

  • Enable log file rotation to Amazon S3 (Habilitar la rotación de archivos de registro para Amazon S3): especifica si los archivos de registro de las instancias de Amazon EC2 de la aplicación se copian en el bucket de Amazon S3 asociado a la aplicación.

Archivos estáticos

Para mejorar el rendimiento, puede utilizar la sección Static files (Archivos estáticos) para configurar el servidor proxy para entregar archivos estáticos de servidor (por ejemplo, HTML o imágenes) desde un conjunto de directorios dentro de su aplicación web. Para cada directorio, se establece la ruta virtual para la asignación de directorios. Cuando el servidor proxy recibe una solicitud de un archivo en la ruta especificada, proporciona directamente el archivo en lugar de direccionar la solicitud la aplicación.

Para obtener más información sobre la configuración de archivos estáticos mediante archivos de configuración o la consola de Elastic Beanstalk, consulte Distribución de archivos estáticos.

Propiedades del entorno

La sección Environment Properties (Propiedades de entorno) le permite especificar opciones de configuración del entorno en las instancias de Amazon EC2 que ejecutan la aplicación. Las propiedades del entorno se pasan como pares de clave-valor a la aplicación.

Dentro del entorno de Go que se ejecuta en Elastic Beanstalk, es posible acceder a las variables de entorno mediante la función os.Getenv. Por ejemplo, podría leer una propiedad denominada API_ENDPOINT en una variable con el siguiente código:

endpoint := os.Getenv("API_ENDPOINT")

Para obtener más información, consulte Propiedades del entorno y otras opciones del software.

Espacios de nombres de configuración de Go

Puede usar un archivo de configuración para definir opciones de configuración y realizar otras tareas de configuración en las instancias durante las implementaciones. Las opciones de configuración se pueden definir a través del servicio de Elastic Beanstalk o la plataforma que utilice y están organizadas por espacios de nombres.

La plataforma Go no define ningún espacio de nombres específico de la plataforma. Puede configurar el proxy para que sirva archivos estáticos mediante el espacio de nombres aws:elasticbeanstalk:environment:proxy:staticfiles. Para obtener información detallada y un ejemplo, consulte Distribución de archivos estáticos.

Elastic Beanstalk cuenta con numerosas opciones de configuración para personalizar el entorno. Además de los archivos de configuración, también puede definir opciones en la consola, configuraciones guardadas, la CLI de EB o la AWS CLI. Para obtener más información, consulte Opciones de configuración.

Si su entorno Elastic Beanstalk Go utiliza una versión de la plataforma AMI de Amazon Linux (anterior a Amazon Linux 2), lea la información adicional de esta sección.

Notas
  • La información de este tema solo se aplica a ramificaciones de plataforma basadas en la AMI de Amazon Linux (AL1). Las ramificaciones de la plataforma AL2023/AL2 son incompatibles con las versiones anteriores de la plataforma de la AMI de Amazon Linux (AL1) y requieren ajustes de configuración diferentes.

  • El 18 de julio de 2022, Elastic Beanstalk estableció el estado de todas las ramificaciones de la plataforma basadas en la AMI de Amazon Linux (AL1) como retirado. Para obtener más información sobre la migración a una ramificación de la plataforma Amazon Linux 2023 actual y totalmente compatible, consulte Migración de su aplicación de Linux de Elastic Beanstalk a Amazon Linux 2023 o Amazon Linux 2.

Puede usar un archivo de configuración para definir opciones de configuración y realizar otras tareas de configuración en las instancias durante las implementaciones. Las opciones de configuración se pueden definir a través del servicio de Elastic Beanstalk o la plataforma que utilice y están organizadas por espacios de nombres.

nota

La información de este tema solo se aplica a ramificaciones de plataforma basadas en la AMI de Amazon Linux (AL1). Las ramificaciones de la plataforma AL2023/AL2 son incompatibles con las versiones anteriores de la plataforma de la AMI de Amazon Linux (AL1) y requieren ajustes de configuración diferentes.

La plataforma Go AMI de Amazon admite un espacio de nombres de configuración específico de la plataforma, además de los espacios de nombre compatibles con todas las plataformas. El espacio de nombres aws:elasticbeanstalk:container:golang:staticfiles le permite definir opciones que asignen las rutas de su aplicación web a carpetas del paquete de código fuente de la aplicación que incluyen contenido estático.

Por ejemplo, este archivo de configuración le indica el servidor proxy que proporcione los archivos en la carpeta staticimages de la ruta /images:

ejemplo .ebextensions/go-settings.config
option_settings: aws:elasticbeanstalk:container:golang:staticfiles: /html: statichtml /images: staticimages

Elastic Beanstalk cuenta con numerosas opciones de configuración para personalizar el entorno. Además de los archivos de configuración, también puede definir opciones en la consola, configuraciones guardadas, la CLI de EB o la AWS CLI. Para obtener más información, consulte Opciones de configuración.