Preguntas frecuentes sobre AWS Elastic Beanstalk

Aspectos generales

Con AWS Elastic Beanstalk, los desarrolladores podrán implementar y administrar aplicaciones en la nube de AWS de manera más sencilla y ágil. Los desarrolladores solo tienen que cargar la aplicación y Elastic Beanstalk administrará de manera automática los detalles de la implementación, como el aprovisionamiento de capacidad, el balanceado de carga, el Auto Scaling y la monitorización del estado de la aplicación.

Quien desee implementar y administrar sus aplicaciones en cuestión de minutos en la nube de AWS. No necesita tener experiencia en la computación en la nube para comenzar a utilizar la aplicación. AWS Elastic Beanstalk es compatible con aplicaciones web de Java, .NET, PHP, Node.js, Python, Ruby, Go y Docker.

AWS Elastic Beanstalk es compatible con los siguientes lenguajes y pilas de desarrollo:

Apache Tomcat para aplicaciones Java

Servidor HTTP Apache para aplicaciones PHP

Servidor HTTP Apache para aplicaciones Python

Servidor HTTP Nginx o Apache para aplicaciones Node.js

Passenger o Puma para aplicaciones Ruby

Microsoft IIS 7.5, 8.0 y 8.5 para aplicaciones .NET

Java SE

Docker

Go

Consulte Plataformas admitidas para ver una lista completa y actualizada de las pilas de desarrollo y lenguajes admitidos.

Sí. AWS Elastic Beanstalk se diseñó para poder ampliarse y admitir varias pilas de desarrollo y lenguajes de programación en el futuro. AWS está trabajando con proveedores de soluciones en las API y en las capacidades necesarios para crear nuevas ofertas de Elastic Beanstalk.

AWS Elastic Beanstalk automatiza los detalles del aprovisionamiento de capacidad, el equilibrio de carga, el escalado automático y la implementación de aplicaciones y crea un entorno en el que se ejecuta una versión de su aplicación. Solo tiene que cargar el código implementable (p. ej., un archivo WAR) y AWS Elastic Beanstalk se encarga del resto. Con AWS Toolkit for Visual Studio y AWS Toolkit for Eclipse es posible implementar una aplicación en AWS Elastic Beanstalk y administrarla sin salir del IDE. Cuando la aplicación está en ejecución, Elastic Beanstalk automatiza las tareas de administración, como la monitorización, la implementación de versiones de la aplicación o una comprobación de estado básica, y facilita el acceso al archivo de registros. Usando Elastic Beanstalk, los desarrolladores se pueden centrar en el desarrollo de su aplicación y se liberan de las tareas orientadas a la implementación, como el aprovisionamiento de servidores, el establecimiento del balanceado de carga o la administración del escalado.

Si bien la mayoría de los contenedores de aplicaciones o de las soluciones de plataforma como servicio reducen la cantidad de programación necesaria, también disminuyen notablemente la flexibilidad y el control de los desarrolladores. Los desarrolladores están obligados a convivir con las decisiones predeterminadas por el proveedor y solo tienen la oportunidad de tomar el control de algunas partes de la infraestructura de la aplicación. Sin embargo, con AWS Elastic Beanstalk, los desarrolladores tienen pleno control sobre los recursos de AWS que respaldan su aplicación. En caso de que los desarrolladores quieran hacerse cargo de parte de los elementos de la infraestructura, o de todos ellos, lo pueden hacer de un modo transparente mediante las funciones de administración de Elastic Beanstalk.

Con AWS Elastic Beanstalk, puede:

Seleccionar el sistema operativo adecuado para las necesidades de su aplicación (por ejemplo, Amazon Linux o Windows Server 2016)

Elegir desde diferentes instancias de Amazon EC2, incluidas las instancias bajo demanda, las instancias reservadas y las instancias de spot 

Elegir entre una variedad de bases de datos y opciones de almacenamiento disponibles

Habilitar el acceso de inicio de sesión a las instancias de Amazon EC2 para solucionar los problemas de forma inmediata y directa

Mejorar con rapidez la fiabilidad de la aplicación ejecutándola en más de una zona de disponibilidad

Incrementar la seguridad de la aplicación habilitando el protocolo HTTPS en el balanceador de carga

Obtener acceso a la monitorización de Amazon CloudWatch integrada y recibir notificaciones sobre el estado de la aplicación y otros eventos importantes

Ajustar la configuración del servidor de la aplicación (por ejemplo, la configuración de JVM) y pasar variables de entorno

Ejecutar otros componentes de la aplicación, como un servicio de almacenamiento en memoria caché junto con Amazon EC2

Obtener acceso a los archivos de log sin iniciar sesión en los servidores de la aplicación

Mediante AWS Elastic Beanstalk se usan características y servicios de AWS probados, como Amazon EC2, Amazon RDS, Elastic Load Balancing, Auto Scaling, Amazon S3 y Amazon SNS, para crear un entorno en el que se ejecute su aplicación. En la versión actual de AWS Elastic Beanstalk se usa la AMI de Amazon Linux o Windows Server 2019.

AWS Elastic Beanstalk es compatible con Java, .NET, PHP, Node.js, Python, Ruby, Go y Docker, y es ideal para aplicaciones web. Sin embargo, como la arquitectura de Elastic Beanstalk es abierta, las aplicaciones que no sean web también se pueden implementar con Elastic Beanstalk. Esperamos ofrecer más adelante compatibilidad con otros tipos de aplicaciones y lenguajes de programación. Consulte Plataformas admitidas para obtener más información.

AWS Elastic Beanstalk se ejecuta en la AMI de Amazon Linux y la AMI de Windows Server. Estas AMI se soportan y mantienen mediante Amazon Web Services y están diseñadas para ofrecer un entorno de ejecución estable, seguro y de alto desempeño para la cloud computing de Amazon EC2.

Introducción

Para inscribirse en AWS Elastic Beanstalk, elija el botón Inscribirse ahora en la página de detalles de Elastic Beanstalk. Necesita una cuenta de Amazon Web Services para poder obtener acceso a este servicio. Si todavía no tiene una, deberá crearla cuando comience el proceso de Elastic Beanstalk. Después de registrarse, consulte la guía de introducción de AWS Elastic Beanstalk.

El registro en AWS Elastic Beanstalk requiere que tenga un número de teléfono y una dirección de email válidos en el archivo con AWS en caso de que alguna vez debamos entrar en contacto con usted. Para verificar el número de teléfono solo necesita unos minutos: recibirá una llamada telefónica automática durante el proceso de registro y deberá especificar un número de PIN con el teclado telefónico.

La mejor manera de comenzar a utilizar AWS Elastic Beanstalk consiste en consultar la Guía de introducción a AWS Elastic Beanstalk, que forma parte de nuestra documentación técnica. Al cabo de unos minutos, podrá implementar y usar una aplicación de prueba o cargar su propia aplicación.

Sí. AWS Elastic Beanstalk incluye una aplicación de muestra que puede usar para probar la oferta y explorar la funcionalidad.

Bases de datos y almacenamiento

Sí. AWS Elastic Beanstalk almacena en Amazon S3 los archivos de la aplicación y, opcionalmente, los archivos de registro del servidor. Si utiliza la consola de administración de AWS, AWS Toolkit for Visual Studio o AWS Toolkit for Eclipse, se crea un bucket de Amazon S3 en su cuenta y los archivos que cargue se copiarán automáticamente desde su cliente local a Amazon S3. Opcionalmente, puede configurar Elastic Beanstalk para copiar cada una hora sus archivos de registro del servidor en Amazon S3. Puede hacerlo editando las opciones de configuración del entorno.

Sí. Puede usar Amazon S3 para almacenar aplicaciones. La forma más fácil de hacerlo es incluir el SDK de AWS como parte del archivo implementable de su aplicación. Por ejemplo, puede incluir el AWS SDK para Java como parte del archivo WAR de su aplicación.

AWS Elastic Beanstalk no lo limita a ninguna tecnología específica de persistencia de datos. Puede elegir usar Amazon Relational Database Service (Amazon RDS) o Amazon DynamoDB, o bien usar Microsoft SQL Server, Oracle o cualquier otra base de datos relacional que se ejecute en Amazon EC2.

Elastic Beanstalk puede aprovisionar automáticamente una instancia de base de datos de Amazon RDS. La información sobre conectividad con la instancia de base de datos se pasa a la aplicación mediante variables de entorno. Para obtener más información acerca de cómo configurar las instancias de bases de datos de RDS para su entorno, consulte la Guía para desarrolladores de AWS Elastic Beanstalk.

No con AWS Elastic Beanstalk. Con Elastic Beanstalk, puede especificar la información de conexión en la configuración del entorno. Al extraer la cadena de conexión del código de aplicación, puede configurar fácilmente diferentes entornos de Elastic Beanstalk para usar diferentes bases de datos.

Seguridad

De manera predeterminada, su aplicación estará disponible públicamente en myapp.elasticbeanstalk.com y cualquiera podrá obtener acceso a ella. Puede usar Amazon VPC para aprovisionar una sección privada y aislada de su aplicación en una red virtual que usted definirá. Esta red virtual se puede hacer privada con reglas de grupo de seguridad específicas, ACL de red y tablas de ruteo personalizadas. Modificando la configuración del grupo de seguridad de EC2, también puede controlar fácilmente qué otro tráfico entrante (como SSH) se entrega o no a los servidores de su aplicación.

Sí, puede ejecutar sus aplicaciones en una VPC. Para obtener más detalles, visite la Guía para desarrolladores de AWS Elastic Beanstalk.

Para obtener más información sobre la seguridad en AWS, consulte el documento Amazon Web Services: Información general sobre los procesos de seguridad y visite nuestro Centro de seguridad.

Sí. Los usuarios de IAM que tengan los permisos adecuados pueden interactuar ahora con AWS Elastic Beanstalk.

IAM permite administrar los usuarios y grupos de forma centralizada. Puede controlar qué usuarios de IAM pueden obtener acceso a AWS Elastic Beanstalk y limitar los permisos a solo lectura en Elastic Beanstalk para los operadores que no deban poder realizar acciones con los recursos de Elastic Beanstalk. Toda la actividad de usuario de la cuenta se acumulará en una única factura de AWS.

Puede usar la consola de IAM, la interfaz de línea de comandos (CLI) de IAM o la API de IAM para aprovisionar usuarios de IAM. De manera predeterminada, los usuarios de IAM no tienen acceso a los servicios de AWS hasta que se les conceden los permisos.

Puede usar políticas para conceder a los usuarios de IAM acceso a los servicios. Al principio, y para simplificar el proceso de concesión de permisos a AWS Elastic Beanstalk, puede utilizar una de las plantillas de políticas que se encuentran en la consola de IAM. Elastic Beanstalk ofrece dos plantillas: una de acceso de solo lectura y otra de acceso pleno. La plantilla de solo lectura concede acceso de lectura a los recursos de Elastic Beanstalk. La plantilla de acceso pleno concede acceso total a todas las operaciones de Elastic Beanstalk, así como permisos para administrar los recursos dependientes, como Elastic Load Balancing, Auto Scaling y Amazon S3. También puede utilizar AWS Policy Generator para crear políticas personalizadas. Para obtener más detalles, visite la Guía para desarrolladores de AWS Elastic Beanstalk.

Sí. Puede permitir o denegar los permisos a recursos específicos de AWS Elastic Beanstalk, como, por ejemplo, aplicaciones, versiones de aplicaciones y entornos.

Todos los recursos que cree un usuario de IAM bajo una cuenta origen son propiedad y corren a cargo de la cuenta origen.

La cuenta raíz tiene acceso pleno a todos los entornos de AWS Elastic Beanstalk lanzados por cualquier usuario de IAM bajo esa cuenta. Si usa la plantilla de Elastic Beanstalk para conceder acceso de solo lectura a un usuario de IAM, ese usuario podrá ver todas las aplicaciones, versiones de aplicaciones, entornos y cualquier otro recurso asociado a esa cuenta. Si usa la plantilla de Elastic Beanstalk para conceder acceso total a un usuario de IAM, ese usuario podrá crear, modificar y terminar cualquier recurso de Elastic Beanstalk relacionado con esa cuenta.

Sí. Un usuario de IAM puede obtener acceso a la consola de AWS Elastic Beanstalk usando su nombre de usuario y contraseña.

Sí. Los usuarios de IAM pueden utilizar su clave de acceso y su clave secreta para llevar a cabo operaciones mediante el API de Elastic Beanstalk.

Sí. Los usuarios de IAM pueden utilizar su clave de acceso y su clave secreta para llevar a cabo operaciones mediante la interfaz de línea de comandos (CLI) de AWS Elastic Beanstalk.

Actualizaciones administradas de la plataforma

Puede optar por que sus entornos de AWS Elastic Beanstalk se actualicen automáticamente a la última versión de la plataforma subyacente en la que se ejecuta su aplicación durante un período específico de mantenimiento. Elastic Beanstalk publica de forma periódica nuevas versiones de las plataformas admitidas (Java, PHP, Ruby, Node.js, Python, .NET, Go y Docker) con actualizaciones del sistema operativo, el servidor web y de la aplicación, y el lenguaje y marco.

Para permitir que Elastic Beanstalk administre las actualizaciones de la plataforma de forma automática, debe habilitar las actualizaciones administradas de la plataforma en la pestaña de configuración de la consola de Elastic Beanstalk o usar la CLI o la API de EB. Una vez habilitada la característica, puede configurar qué tipos de actualizaciones se admiten y cuándo pueden producirse.

AWS Elastic Beanstalk puede realizar actualizaciones automáticas de la plataforma si se lanzan parches nuevos o versiones menores de la plataforma. Elastic Beanstalk no realizará de forma automática actualizaciones principales de la versión de la plataforma (p. ej., de Java 7 Tomcat 7 a Java 8 Tomcat 8), ya que incluyen cambios retroincompatibles que requieren pruebas adicionales. En esos casos, deberá iniciar la actualización manualmente.

Las versiones de las plataformas de AWS Elastic Beanstalk siguen este patrón: MAJOR.MINOR.PATCH (p. ej., 2.0.0). Cada porción se señala como se explica a continuación:

Una versión MAJOR es cuando existen cambios incompatibles.

Una versión MINOR es cuando se añaden funcionalidades adicionales de forma retrocompatible.

Una versión PATCH es cuando se corrigen errores de forma retrocompatible.

Puede realizar actualizaciones principales de versiones en cualquier momento mediante la API, la CLI o la consola de administración de AWS Elastic Beanstalk. Para realizar una actualización principal de la versión, dispone de las siguientes opciones:

Aplicar la actualización en un entorno existente. Consulte Updating Your Elastic Beanstalk Environment's Platform Version.

Cree un clon del entorno existente con la nueva versión de la plataforma. Para más información, consulte Clone an Environment.

Las actualizaciones se aplican mediante un mecanismo de implementación inmutable que garantiza que no se produzcan cambios en el entorno existente hasta que una flota paralela de instancias de Amazon EC2, con las actualizaciones instaladas, esté lista para intercambiarse con las instancias existentes que, a continuación, se eliminan. Además, si el sistema de estado de Elastic Beanstalk detecta cualquier problema durante la actualización, el tráfico se redirige a la flota existente de instancias para garantizar que el impacto en los usuarios finales de su aplicación se mantenga al mínimo.

Como las actualizaciones administradas de la plataforma utilizan un mecanismo de implementación inmutable para realizar las actualizaciones, su aplicación estará disponible durante las ventanas de mantenimiento y los consumidores de esta no sufrirán ningún impacto por la actualización.

La característica de actualizaciones administradas de la plataforma no conlleva ningún cargo adicional. Simplemente paga por las instancias de EC2 adicionales necesarias durante la actualización.

Un período de mantenimiento es un plazo de dos horas semanal durante el que AWS Elastic Beanstalk iniciará actualizaciones en la plataforma si se han habilitado las actualizaciones administradas de la plataforma y si se encuentra disponible una nueva versión de la plataforma. Por ejemplo, si selecciona un período de mantenimiento que comience cada domingo a las 2:00 h, AWS Elastic Beanstalk iniciará la actualización de la plataforma en algún momento entre las 2:00 h y las 4:00 h de cada domingo. Es importante tener en cuenta que, en función de la configuración de las aplicaciones, las actualizaciones se pueden completar fuera de la ventana de mantenimiento.

El período de mantenimiento se configura por entorno, lo que le proporciona la opción de configurar diferentes períodos de mantenimiento para las distintas aplicaciones o componentes de las aplicaciones. Esto permite escalonar las actualizaciones del entorno si no desea que se actualicen varias partes de la aplicación al mismo tiempo. Si habilita las actualizaciones administradas de la plataforma pero no especifica un período de mantenimiento, se asignará por defecto a su entorno un período semanal de 2 horas. Si desea cambiar el momento en el que tiene lugar el mantenimiento, puede hacerlo modificando la configuración de las actualizaciones administradas en la consola de administración de AWS o mediante la API UpdateEnvironment.

Se le notificará sobre la disponibilidad de nuevas versiones de la plataforma mediante la consola de administración de AWS, anuncios en los foros y notas de publicación.

Puede encontrar detalles de los cambios entre las versiones de la plataforma en la página de Notas de publicación de AWS Elastic Beanstalk.

La única acción disponible mientras se está realizando una actualización administrada es “abortar”. Esto le permite detener la actualización de inmediato y volver a la versión anterior.

Su entorno siempre se actualizará a la última versión disponible en función del nivel (menor más revisión o solo revisión) que haya seleccionado.

Los detalles de cada actualización administrada de la plataforma se encuentran en la página de eventos, etiquetados con el tipo de evento "MAINTENANCE".

El número de publicaciones de versiones en un año determinado varia en función de la frecuencia y el contenido de las versiones y los parches del proveedor del lenguaje/marco o del equipo básico y el resultado de un examen minucioso de estas publicaciones y parches por parte de nuestro equipo de ingeniería de plataformas.

Compatibilidad con Graviton de AWS

Para implementar su aplicación con procesadores basados en arm64 en la consola de Elastic Beanstalk, puede seleccionar la arquitectura del procesador y el tipo de instancia en la pestaña de capacidad, en Configure more options (Configurar más opciones).

Para implementar las aplicaciones mediante Elastic Beanstalk CLI, AWS CLI, CFN o AWS CDK, consulte la Guía para desarrolladores de Elastic Beanstalk.

Si la carga de trabajo está en un lenguaje de programación interpretado, como Node.js, Python, Tomcat, PHP o Ruby, no tiene que volver a compilar la carga de trabajo para usar Graviton. Si utiliza Go o .Net Core para la carga de trabajo, tiene que actualizar el comando de creación para el tipo de instancia arm64. También tiene que volver a compilar las dependencias binarias o usar una versión de las dependencias binarias compatible con arm64. Si utiliza Docker, la imagen de Docker debe constar de varias arquitecturas y ser compatible con la implementación a x86 y arm64.

Elastic Beanstalk admite Graviton en Amazon Linux 2 de 64 bits para una serie de plataformas y ramas. Consulte la documentación para obtener una lista completa.

Puede transferir fácilmente la carga de trabajo a Graviton y aprovechar los beneficios de rendimiento y costos en los siguientes casos de uso: cargas de trabajo basadas en Linux creadas principalmente en tecnologías de código abierto; aplicaciones en contenedores y basadas en microservicios, como Docker y MC Docker; aplicaciones escritas en lenguajes de programación portables, como Java, Python, .NET Core, node.js y PHP; aplicaciones compiladas de C/C++, Rust o Go; cargas de trabajo de .NET Core (versiones 3.1 y posteriores) que se ejecuten en Linux; cargas de trabajo de varios hilos; cargas de trabajo confidenciales con acceso a memoria no uniforme (NUMA); y desarrollo y pruebas de software nativo de arm64.

Facturación

No se aplica ningún cargo adicional por AWS Elastic Beanstalk; solo paga por los recursos de AWS que utiliza realmente para almacenar y ejecutar la aplicación.

Solo paga por lo que usa y no existe una tarifa mínima por el uso de ningún recurso de AWS. Para obtener información sobre los precios de Amazon EC2, visite la sección de precios en la página de detalles de EC2. Para obtener información sobre los precios de Amazon S3, visite el apartado de precios en la página de detalles de S3. Puede utilizar la calculadora costo mensual AWS para calcular la factura de los diferentes tamaños de la aplicación.

Puede ver los cargos del periodo de facturación actual en cualquier momento en el sitio web de Amazon Web Services. Inicie sesión en su cuenta de Amazon Web Services y elija Account Activity, en Your Web Services Account.

Soporte

Sí. AWS Support cubre problemas relacionados con el uso de AWS Elastic Beanstalk. Para conocer los detalles y los precios, consulte la página de AWS Support.

Puede beneficiarse de los amplios conocimientos de la comunidad de AWS existente para ayudarle con el desarrollo a través del foro de debate de AWS Elastic Beanstalk.