Dar el primer paso
Introducción
Los contenedores son un componente clave del desarrollo de aplicaciones modernas. Se han convertido en la manera estándar de organizar los recursos informáticos y administrar el contenido de los despliegues de las aplicaciones.
Los contenedores proporcionan un entorno informático discreto y reproducible. También proporcionan una forma de simplificar la gestión de paquetes y dependencias. Desde la orquestación de conjuntos muy grandes de varios clústeres hasta aplicaciones web, o incluso la prueba de su trabajo y la realización de una prueba de concepto en su portátil, son una excelente manera de empezar y crear software para desplegarlo en la nube.
Esta guía de decisiones le sirve de ayuda para empezar y elegir el servicio de contenedores de AWS adecuado para su desarrollo de aplicaciones modernas.
Este extracto de cuatro minutos pertenece a una grabación de 57 minutos de una presentación de Vikram Venkataraman, entidad principal de cuentas técnicas de AWS, impartida en AWS Summit DC 2022. Proporciona una descripción general de los servicios de contenedores de AWS disponibles.
Hora de leer
20 minutos
Objetivo
Ayude a determinar qué servicio de contenedores de AWS es el más adecuado para su organización.
Nivel
Principiante
Última actualización
26 de abril de 2023
Servicios cubiertos
Más guías de decisiones sobre
Entienda
Los contenedores se han convertido en un estándar de facto para empaquetar el código de la aplicación, las configuraciones, y las dependencias en un solo artefacto porque se las puede desplegar de manera coherente en múltiples entornos.
Los contenedores son una pieza clave de cualquier estrategia moderna de desarrollo de aplicaciones. Para proporcionar un poco de contexto a los servicios de AWS relacionados con los contenedores, la imagen de la derecha muestra las opciones de contenedores de AWS por capa (se explica con más detalle en este vídeo).
Capacidad
La capacidad se refiere a la computación subyacente que desplegará su contenedor, su unidad central de procesamiento (CPU) y los requisitos de memoria. La capacidad es la infraestructura en la que se funcionará el contenedor. Hay dos opciones de capacidad para sus contenedores en AWS:
- Amazon Elastic Compute Cloud (AmazonEC2) le permite ejecutar sus contenedores en las máquinas virtuales que administra usted.
- AWS Fargate es un motor de procesamiento sin servidor para contenedores que le permiten ejecutar contenedores sin administrar la infraestructura subyacente. Con Fargate, puede lanzar y escalar contenedores sin preocuparse por las instancias subyacentes de EC2.
Orquestación
No es raro que las organizaciones utilicen no uno o unos pocos, sino miles de contenedores. Gestionar un entorno tan complejo se convierte en un desafío. Los servicios de orquestación ayudan a facilitar el despliegue y la administración de estas aplicaciones. AWS ofrece tres servicios de orquestación:
- Amazon Elastic Container Service (Amazon ECS) es un servicio de orquestación de contenedores totalmente administrado y es ideal para las organizaciones que desean una forma sencilla y rentable de implementar y gestionar aplicaciones en contenedores.
- Amazon Elastic Kubernetes Service (Amazon EKS) es un servicio de Kubernetes totalmente administrado que le permite ejecutar y administrar clústeres de Kubernetes en AWS.
- Red Hat OpenShift Service en AWS (ROSA) es un servicio OpenShift totalmente administrado que le permite ejecutar y administrar clústeres de OpenShift en AWS. Es una buena opción para los clientes que ya utilizan OpenShift de forma local.
Aprovisionamiento
El aprovisionamiento proporciona una interfaz para la capa de servicios de orquestación. Cada orquestador tiene sus propias complejidades. Los servicios de aprovisionamiento ocultan esta complejidad y le ayudan a facilitar el consumo del servicio. En esta categoría, los servicios de AWS incluyen:
- AWS App Runner es un servicio completamente administrado que crea automáticamente imágenes de contenedores a partir de su código fuente, despliega los contenedores en una infraestructura completamente administrada, y los escala en función de la demanda.
- AWS Elastic Beanstalk es un servicio totalmente administrado que facilita el despliegue, la administración y el escalado de aplicaciones web. Elastic Beanstalk también apoya contenedores y proporciona una plataforma totalmente administrada para desplegar y escalar las aplicaciones contenerizadas.
- Amazon Lightsail es una forma sencilla y rentable de lanzar y administrar servidores privados virtuales, pero también ofrece soporte para contenedores, lo que le permite crear y desplegar aplicaciones contenerizadas mediante instancias de Lightsail.
Considere
Es importante escoger un servicio de contenedores que se ajuste a los requisitos de su aplicación y a las preferencias operativas. La siguiente sección describe algunos de los criterios clave que se deben tener en cuenta al elegir un servicio de contenedores, así como las herramientas y los servicios de apoyo.
-
Gastos generales de servicio y operación administrados
-
Características de carga de trabajo
-
Portabilidad de aplicaciones
-
Tamaño y habilidades de la organización
-
Facilidad de despliegue
-
Las organizaciones pueden optar por la nube para reducir los costes operativos mediante la normalización de los servicios gestionados que trasladan la carga operativa a AWS. Los niveles más altos de abstracción permiten a los desarrolladores y operadores centrarse en sus propias actividades únicas de valor agregado, en lugar de en tareas indiferenciadas.
La creación con contenedores en AWS utiliza servicios con niveles más altos de abstracción para transferir la sobrecarga operativa del mantenimiento de la infraestructura a AWS.
-
Puede elegir la arquitectura con mayor facilidad si comprende sus patrones de carga de trabajo. Esto puede incluir aplicaciones web, microservicios basados en API, aplicaciones basadas en eventos, transmisión y mensajería, canalizaciones de datos, automatizaciones de TI y más. Algunas cargas de trabajo funcionarán mejor o serán más rentables en un entorno de cómputos que en otro tipo.
-
Muchos clientes desean asegurarse de que sus aplicaciones puedan ejecutarse en un entorno diferente y poder migrarlas o trasladarlas fácilmente a él. Es importante para ellos poder conservar las opciones o ejecutar una aplicación tanto local como en la nube.
Recomendamos desarrollar competencias en arquitecturas de software y crear paquetes que le permitan transferir con mayor facilidad la lógica empresarial diferenciadora entre los servicios de computación.
Las aplicaciones creadas con algunas tecnologías pueden ejecutarse de forma más eficaz en algunos servicios de cómputos que en otros.
-
Las habilidades de su organización son un factor importante a la hora de decidir qué servicios de contenedores utiliza. El enfoque que se adopta, requerirá algo de inversión en los equipos de DevOps y Site Reliability Engineer (SRE). La creación de una canalización automatizada para desplegar aplicaciones es algo habitual en la mayoría de los desarrollos de aplicaciones modernas.
Algunas opciones elevan la cantidad de administración. Por ejemplo, algunas organizaciones tienen habilidades y recursos para ejecutar y administrar un despliegue de Kubernetes, porque invierten en equipos de SRE sólidos para administrar los clústeres de Kubernetes. Estos equipos se encargan de actualizar los clústeres con frecuencia (por ejemplo, Kubernetes publica tres versiones principales al año y deja de lado las versiones antiguas).
El tamaño de la organización es un factor clave, ya que las startups más pequeñas pueden tener un personal de TI reducido compuesto por personas que desempeñan múltiples funciones, mientras que las empresas más grandes pueden soportar cientos de cargas de trabajo en producción a la vez.
-
Los diferentes servicios de contenedores de AWS satisfacen las necesidades únicas en términos de complejidad de despliegue. Así es como se optimiza cada servicio para su propia función:
- AWS AppRunner ofrece la ruta más sencilla, ya que le permite desplegar su aplicación en la Internet pública sin administrar ni personalizar la infraestructura subyacente.
- Amazon ECS es una buena opción si necesita un poco más de control sobre la red y las configuraciones de seguridad sin sacrificar la escala o características.
- Amazon EKS puede permitirle utilizar la flexibilidad y el control sobre el despliegue y la orquestación de las aplicaciones que ofrece la tecnología de Kubernetes.
- AWS AppRunner ofrece la ruta más sencilla, ya que le permite desplegar su aplicación en la Internet pública sin administrar ni personalizar la infraestructura subyacente.
Escoja
Ahora que conoce los criterios con los que evaluará sus opciones de contenedores, está listo para elegir qué servicios de contenedores de AWS pueden adaptarse mejor a los requisitos de su organización.
La siguiente tabla destaca los servicios que están optimizados para cada circunstancia. Utilice la tabla como ayuda para determinar el servicio de contenedor que mejor se adapte a su organización y caso de uso.
Opciones de capacidad
La capacidad se refiere a la computación subyacente en la que desplegará su contenedor, su CPU, y requerimientos de memoria. La capacidad es la infraestructura en la que se funcionará el contenedor.
Amazon EC2 es un servicio web que proporciona una capacidad informática redimensionable - utilizando servidores en los centros de datos de Amazon - que usted puede emplear para crear y alojar sus sistemas de software.
AWS Fargate es una tecnología que puede usar con Amazon ECS para ejecutar contenedores sin tener que administrar servidores o clústeres de instancias de Amazon EC2. Con Fargate ya no tendrá que aprovisionar, configurar, ni escalar clústeres de máquinas virtuales para ejecutar contenedores.
Orquestación de contenedores
Los servicios de orquestación de contenedores gestionan cuándo y dónde se ejecutan los contenedores.
Red Hat OpenShift Service en AWS (ROSA)
El servicio Red Hat OpenShift en AWS facilita la creación y el funcionamiento de clústeres de Red Hat OpenShift en AWS. Para las aplicaciones ya contenerizadas en las instalaciones de OpenShift Container Platform, ROSA proporciona una superficie conocida de API y mantiene el mismo despliegue de la cadena de herramientas para que pueda centrarse en refactorizar el modelo de datos, no todo el conjunto de aplicaciones.
Servicio Amazon Elastic Kubernetes
Amazon EKS le ayuda a iniciar, ejecutar. y escalar aplicaciones de Kubernetes en la nube de AWS o de manera local.
Amazon ECS es un servicio de orquestación de contenedores totalmente administrado para ayudar a desplegar, gestionar, y escalar aplicaciones contenerizadas.
Aprovisionamiento
La categoría de servicios de aprovisionamiento proporciona una interfaz para la capa de servicios de orquestación. Cada orquestador tiene sus propias complejidades. Los servicios de aprovisionamiento ocultan esta complejidad y facilitan a los clientes el consumo del servicio.
Con Elastic Beanstalk, puede desplegar y administrar rápidamente aplicaciones en la nube de AWS sin tener que aprender sobre la infraestructura que ejecuta esas aplicaciones. Elastic Beanstalk reduce la complejidad de la administración sin restringir la libertad de elección ni el control.
AWS App Runner le permite crear y ejecutar aplicaciones contenerizadas en un servicio totalmente administrado con un conocimiento mínimo de la infraestructura.
Lightsail ofrece un servidor privado virtual (VPS) fácil de usar, con instancias, contenedores, almacenamiento, bases de datos, y mucho más a un precio mensual rentable.
Herramientas
Herramientas para proporcionar un registro de contenedores, así como para contenerizar y migrar aplicaciones existentes.
Amazon Elastic Container Registry
Amazon ECR es un registro de contenedores completamente administrado que ofrece alojamiento de alto rendimiento, de modo que sea posible desplegar imágenes de aplicaciones y artefactos de forma confiable en cualquier lugar.
Local
Le permite ejecutar un plano de control conocido para garantizar una experiencia coherente sin importar dónde se ejecuten las aplicaciones basadas en contenedores.
Amazon Elastic Container Service (ECS) Anywhere
Amazon ECS Anywhere es una característica de Amazon ECS que le permite ejecutar y gestionar cargas de trabajo de contenedores en su propia infraestructura.
Amazon EKS Anywhere le permite crear y operar clústeres de Kubernetes en su propia infraestructura.
Amazon EKS utiliza Amazon EKS Distro, una distribución de Kubernetes, creada y mantenida por AWS. Amazon EKS Distro facilita la creación de clústeres confiables y seguros.
Use
Ahora debe tener una idea clara de cada servicio de contenedor de AWS (y de las herramientas y servicios de AWS que lo respaldan) y cuál podría ser el más adecuado para su organización y caso de uso.
Para explorar cómo usar y obtener más información sobre cada uno de los servicios de contenedor de aplicaciones de AWS disponibles, hemos proporcionado una vía para explorar cómo funciona cada uno de los servicios. La siguiente sección proporciona enlaces a documentación detallada, tutoriales prácticos, y recursos para empezar.
-
Amazon EC2
-
Amazon ECR
-
Amazon ECS
-
Amazon EKS
-
Amazon Lightsail
-
AWS App Runner
-
AWS Elastic Beanstalk
-
AWS Fargate
-
ROSA
-
Amazon EC2
-
Introducción a Amazon EC2
Acceda al conjunto completo de documentación técnica de Amazon EC2, que incluye guías sobre instancias de Linux y Windows.
Guía del usuario de VM Import/Export
Aprenda a importar imágenes de máquinas virtuales (VM) de su entorno de virtualización existente a Amazon EC2 y, a continuación, a exportarlas de nuevo.Amazon EC2 Auto Scaling con instancias puntuales de EC2
Aprenda a crear una carga de trabajo apátrida y tolerante a errores mediante Amazon EC2 Auto Scaling con plantillas de lanzamiento para solicitar instancias de spot EC2.
Desplegar una aplicación web en Amazon EC2
Explicaremos la creación de una instancia de Amazon EC2 con AWS CDK y el despliegue de una aplicación web en ella.
-
Amazon ECR
-
¿Qué es Amazon Elastic Container Registry (ECR)?
Una guía para empezar a utilizar (y utilizar) el ECR.Amazon ECR en arquitecturas multicuenta y multirregión
Explore las consideraciones clave sobre las arquitecturas de Amazon ECR que abarcan las cuentas de AWS y las regiones de AWS, así como las arquitecturas relacionadas con casos de uso hipotéticos de clientes.
Cree una canalización con una fuente de Amazon ECR y un despliegue de ECS a CodeDeploy
Configure una canalización en AWS CodePipeline que despliegue aplicaciones contenedoras mediante un despliegue azul/verde que admita imágenes de Docker.
-
Amazon ECS
-
Introducción a Amazon ECS
Esta guía proporciona una introducción a las herramientas disponibles para acceder a Amazon ECS y a los procedimientos introductorios paso a paso para ejecutar contenedores.
Novedades y novedades de Amazon ECS
Conozca las novedades desde el lanzamiento de Amazon ECS Anywhere, las nuevas características de AWS Fargate y eche un vistazo a las interesantes mejoras de Amazon ECS.
Despliegue de Amazon Elastic Container Service (ECS)
Esta guía ofrece una descripción general de las opciones de despliegue de Amazon ECS en AWS y muestra cómo se puede utilizar para administrar una aplicación sencilla en contenedores.
Taller de Amazon ECS
Este taller está diseñado para informar a quienes tal vez no estén familiarizados con AWS Fargate, Amazon ECS y, posiblemente, incluso con el flujo de trabajo de contenedores de Docker.
Despliegue de contenedores de Docker en Amazon ECS
Aprenda a ejecutar una aplicación de muestra habilitada para Docker en un clúster de Amazon ECS detrás de un equilibrador de carga, pruebe la aplicación de muestra y elimine los recursos para evitar cargos.
-
Amazon EKS
-
Introducción a Amazon EKS
Obtenga más información sobre Amazon Elastic Kubernetes Service (Amazon EKS), un servicio gestionado que puede utilizar para ejecutar Kubernetes en AWS sin necesidad de instalar, operar ni mantener su propio plano de control o nodos de Kubernetes.
Despliegue de Amazon Elastic Kubernetes Service (EKS)
Explore las opciones de despliegue de Amazon EKS en AWS y aprenda cómo se pueden utilizar para administrar una aplicación general en contenedores.
Despliegues de referencia de Amazon EKS Quick Start
Mediante una guía de despliegue de referencia de Quick Start, proporcionamos instrucciones paso a paso para desplegar los clústeres de Amazon Elastic Kubernetes Service (Amazon EKS).
Desplegar una aplicación de Kubernetes
En este tutorial, aprenderá a desplegar una aplicación contenida en un contenedor en un clúster de Kubernetes administrado mediante Amazon Elastic Container Service for Kubernetes (Amazon EKS).Taller de Amazon EKS
Ejercicios prácticos para aprender sobre Amazon Elastic Kubernetes Service.
Visite el taller»
-
Amazon Lightsail
-
Crear, enviar y desplegar imágenes de contenedores
con Amazon Lightsail
Este tutorial muestra cómo se crea una imagen de contenedor en la máquina local mediante un Dockerfile. Después de crear la imagen, podrá enviarla al servicio de contenedores de Lightsail para desplegarla.
Centro de recursos de Amazon Lightsail
Explore los tutoriales, vídeos y enlaces a la documentación conceptual básica de Lightsail.
Lance una máquina virtual Linux con Amazon Lightsail
En este tutorial, creará una instancia de Amazon Linux en Amazon Lightsail. Una vez que la instancia está en funcionamiento, se conectará a esta a través de SSH dentro de la consola de Lightsail con el terminal SSH basado en el navegador.
-
AWS App Runner
-
Introducción a AWS App Runner
En este tutorial se explica cómo configurar el código fuente y el despliegue, la creación del servicio y la versión ejecutable del servicio para desplegar la aplicación en el servicio del ejecutor del App Runner. También muestra cómo desplegar una versión de código, realizar un cambio de configuración y ver los registros.
Use el tutorial»
AWS App Runner: del código a una aplicación web segura y escalable en cuestión de minutos
Descubra cómo se diseñó AWS App Runner para facilitar el despliegue de aplicaciones web y API en la nube, independientemente del idioma en el que estén escritas, incluso para equipos que carecen de experiencia previa en el despliegue y administración de contenedores o infraestructuras.
Despliegue una aplicación web con AWS App Runner
Siga estas instrucciones paso a paso para desplegar una aplicación web en contenerizada mediante AWS App Runner. Comience con su código fuente o una imagen de contenedor. App Runner crea y despliega automáticamente la aplicación web y equilibra la carga del tráfico con cifrado. -
AWS Elastic Beanstalk
-
Introducción a Elastic Beanstalk
En esta guía se explica cómo crear, explorar, actualizar y eliminar una aplicación de Elastic Beanstalk.Opciones de despliegue en AWS Elastic Beanstalk
En esta guía se explica que puede utilizar AWS Elastic Beanstalk para desplegar, administrar y escalar aplicaciones sin la carga operativa que supone administrar la infraestructura.
Tutoriales y ejemplos intermedios de AWS Electric Beanstalk
Estos tutoriales están dirigidos a usuarios intermedios y es posible que no contengan instrucciones sobre los pasos básicos, como registrarse en AWS.
-
AWS Fargate
-
Introducción a AWS Fargate
En esta guía se explican los conceptos básicos de AWS Fargate, una tecnología que puede utilizar con Amazon ECS para ejecutar contenedores sin tener que administrar servidores o clústeres de instancias de Amazon EC2.
Introducción a la consola mediante contenedores de Linux en AWS Fargate
Comience a utilizar Amazon ECS en AWS Fargate utilizando el tipo de lanzamiento de Fargate para sus tareas en las regiones en las que Amazon ECS es compatible con AWS Fargate.
Creación de un clúster con una tarea de Fargate Linux mediante la CLI de AWS
Configure un clúster, registre una definición de tarea, ejecute una tarea de Linux y realice otros escenarios comunes en Amazon ECS con la CLI de AWS. -
ROSA
-
Introducción a Red Hat OpenShift Service en AWS
Esta guía le ayudará a empezar a utilizar Red Hat OpenShift Service en AWS.
¿Por qué usarías ROSA?
En este vídeo se analiza cuándo se puede utilizar Red Hat OpenShift en lugar de Kubernetes estándar y se analiza en profundidad el ROSA en AWS.
Explore
Explore los diagramas de arquitectura de referencia para contenedores en AWS.
Explore los documentos técnicos que le ayudarán a comenzar y a aprender las mejoras prácticas.
Explore las soluciones comprobadas y la guía de arquitectura para los casos de uso más comunes de los contenedores.