Blog de Amazon Web Services (AWS)
Elija el servicio de AWS adecuado para implementar su aplicación web o sitio web en la nube de AWS
Las aplicaciones web y los sitios web forman parte de los proyectos de desarrollo de productos y de la mayoría de las cargas de trabajo de la industria, ya sean manipuladas por particulares o por empresas.
Para ayudarlo a decidir qué servicio utilizar para implementar su sitio web o aplicación web en AWS, analizaremos la guía de recomendaciones prescrita por la Guía Prescriptiva de AWS: Elegir el servicio de AWS mas adecuado para implementar su sitio web o aplicación web en la nube de AWS.
Un sitio web estático se define como el que no tiene ningún tipo de procesamiento por parte de un servidor u otras aplicaciones. Por lo general, solo se corresponde con HTML, JavaScript y CSS y puede realizar llamadas a la API con las interacciones de los usuarios. Los sitios web dinámicos incluyen un servidor y su contenido se genera o modifica dinámicamente de acuerdo con los requisitos de la solicitud.
Árbol de decisiones
Exploración de escenarios
Entre las opciones de sitios estáticos, todas ellas asumen que sus objetos se almacenan en Amazon Simple Storage Service (S3), un servicio de almacenamiento de objetos al que se accede a través de Amazon CloudFront, un servicio de entrega de contenido con baja latencia y altas velocidades de transferencia, que AWS Amplify crea y administra automáticamente, una solución completa que permite a los desarrolladores de interfaces para plataformas móviles y web, crear, enviar y alojar aplicaciones completas en AWS.
El uso de S3 con CloudFront permite que todos los objetos permanezcan privados y solo se puede acceder a ellos mediante el control de acceso de origen (OAC) y la identidad de acceso de origen (OAI) configurados en los servicios. Además, se mejora la experiencia del usuario final al acceder al sitio web, ya que el contenido se distribuye en cachés en los puntos de presencia, lo que reduce la latencia.
Varios marcos de trabajo y bibliotecas de JavaScript, como React, Angular y Vue, generan sitios web estáticos y realizan acciones dinámicas, con llamadas a la API a través del navegador, que puede comunicarse con varios sistemas o emplear recursos informáticos sin servidor, como lo hace Amazon API Gateway, un servicio gestionado que permite a los desarrolladores crear, publicar, mantener, monitorear y proteger fácilmente las API a cualquier escala y y AWS Lambda que es un servicio de cómputo sin servidor orientada a eventos que permite ejecutar código para casi cualquier tipo de aplicación o servicio de backend sin aprovisionar ni administrar servidores.
AWS Amplify proporciona bibliotecas y herramientas para ayudar al desarrollo de aplicaciones web, lo que facilita el desarrollo, el alojamiento y la producción de aplicaciones completas en AWS.
Con el alojamiento de Amplify, incluso es posible implementar aplicaciones que utilicen marcos de JavaScript como Next.js, mediante la representación del lado del servidor o la representación del lado del servidor. Esta flexibilidad permite a Amplify posicionarse como una buena alternativa para desarrollar aplicaciones web.
Otra característica de Amplify es ofrecer integración con varios repositorios e incorporar CI/CD en el proceso, además de permitir diversas integraciones con los servicios de AWS. También ofrece varias herramientas que ayudan con el desarrollo, como Amplify Studio y su biblioteca de interfaz de usuario.
Amazon Lightsail es un servicio de servidor privado virtual (VPS) para necesidades informáticas, de almacenamiento y de redes. Ofrece el atractivo de ser dueño del costo estimado de los recursos aprovisionados y de una administración unificada. Es adecuado para migrar plataformas como WordPress, Ghost, Joomla, Drupal, Magento, Redmine, LAMP, LEMP, MEAN y Django, entre otras.
AWS Elastic Beanstalk permite cargar el código de una aplicación en PHP, Java, Python, Ruby, Node.js, .NET, Go e incluso aplicaciones web en Docker, mediante la implementación de forma gestionada, en función de las configuraciones de uso de los recursos.
Amazon Elastic Cloud (EC2) es la opción que ofrece un mayor control, sin embargo, esto significa que debe realizar toda la administración de recursos, desde el sistema operativo, el equilibrio de carga, la red hasta todas las demás configuraciones y parches que sean necesarios. Dado que permite un mayor control, requiere el mayor esfuerzo de gestión de parte de los clientes.
Soluciones de contenedores
Varios servicios de AWS respaldan el desarrollo y la implementación de aplicaciones web en contenedores. Se puede implementar la orquestación en cualquier capacidad o elegir un servicio totalmente gestionado:
- Amazon EC2 le ofrece un control total sobre la ejecución de los contenedores y ofrece opciones como servidores e instancias dedicadas, además de una administración más compleja y estratégica de sus cargas de trabajo. Al utilizar esta opción, elegirá el entorno de ejecución de contenedores de su elección. Dado que permite un mayor control, requiere el mayor esfuerzo de gestión;
- Amazon Elastic Container S Service (ECS) ofrece un servicio de orquestación de contenedores totalmente gestionado que facilita la implementación, la administración y el escalado de las aplicaciones integradas en el ecosistema de AWS.
- Amazon Elastic Kubernetes S Service (EKS) es un servicio administrado de Kubernetes para ejecutar Kubernetes en la nube de AWS y en centros de datos locales. Es importante tener en cuenta que, al utilizar EKS, su equipo ya no necesita administrar el plano de control de Kubernetes, lo que reduce la complejidad operativa de operar entornos de misión crítica en la nube. Por lo tanto, permite a los equipos que emplean Kubernetes aprovechar y utilizar todo el ecosistema existente, así como ampliar el uso de la nube. Amazon EKS Blueprints ayuda a crear entornos, mediante la infraestructura como código, y proporciona diversas integraciones para acelerar la implementación de las cargas de trabajo de Kubernetes en AWS.
- AWS Fargate es una opción para ECS o EKS y permite la ejecución de cargas de trabajo en contenedores de pago por uso y sin servidor (serverless). El uso de Fargate es adecuado para cargas de trabajo impredecibles, ya que no es necesario esperar a que se aprovisione un nuevo nodo, para satisfacer la demanda;
- ECS y EKS también tienen formas de ejecutar contenedores en su propia infraestructura o en entornos híbridos, con las versiones Amazon ECS Anywhere y Amazon EKS Anywhere;
- AWS App Runner es un servicio de aplicaciones en contenedor totalmente administrado que permite crear, implementar y ejecutar aplicaciones web y servicios de API en contenedores sin necesidad de experiencia previa en infraestructura o contenedores.
Conclusión
En este blog, analizamos las recomendaciones prescriptivas de AWS Prescriptive Guidance: “Elegir el servicio de AWS adecuado para implementar su sitio web o aplicación web en la nube de AWS”, que ofrece un árbol de decisiones para ayudar a decidir qué servicio de AWS utilizar para implementar sitios web o aplicaciones web, ya sean estáticos, dinámicos o mediante contenedores. AWS proporciona servicios que abordan los casos de uso más diversos para ayudar en la implementación de sitios web y aplicaciones web.
Debido a las características de cada servicio, es interesante explorar los tipos más diversos para evaluar qué es lo que mejor se adapta a su aplicación, ya que muchos permiten implementar aplicaciones rápidamente con unos pocos clics. Una vez definida, puede utilizar la calculadora de precios de AWS para estimar el costo de la solución.
De esta manera, ponemos en práctica uno de los principios del diseño de la arquitectura en la nube, que implica considerar la afinidad mecánica, es decir, utilizar el enfoque tecnológico que mejor se alinea con sus objetivos. Este es uno de los principios de diseño arquitectónico del pilar de eficiencia del rendimiento, uno de los pilares de AWS Well-Architected, que ayuda a los arquitectos de la nube a crear infraestructuras seguras, resilientes, eficientes y de alto rendimiento para aplicaciones y cargas de trabajo. Basado en seis pilares (excelencia operativa, seguridad, confiabilidad, eficiencia del rendimiento, optimización de costos y sostenibilidad), AWS Well-Architected ofrece un enfoque coherente para que los clientes y socios evalúen las arquitecturas e implementen diseños que puedan expandirse con el tiempo.
Recursos
Información general
Documentación de servicios de AWS
- AWS Amplify
- Puerta de enlace API de Amazon
- Ejecutor de aplicaciones de AWS
- Amazon CloudFront
- Amazon EC2
- Amazon ECS
- Amazon ECS en todas partes
- AWS ECS en AWS Fargate
- Amazon EKS
- Amazon EKS en todas partes
- Amazon EKS en AWS Fargate
- AWS Elastic Beanstalk
- AWS Lambda
- Amazon Lightsail
- Amazon S3
Tutoriales y guías
- Aloja un sitio estático
- Lanza y configura una instancia de WordPress con Amazon Lightsail
- Cree un sitio de WordPress con equilibrio de carga en Amazon Lightsail
- Implemente una aplicación de una sola página basada en React en Amazon S3 y CloudFront
Presentaciones de AWS re:Invent
- PaaS: del código a la ejecución de una con AWS Elastic Beanstalk (DEV323, 2018)
- Implemente su código, escale su aplicación y reduzca los costos de la nube con Elastic Beanstalk (DOP326, 2019)
- Tienes una imagen de contenedor: Y ¿Ahora qué? (2021)
- La poderosa simplicidad de Amazon ECS (2021)
- Profundiza en Amazon EKS (2021)
- Kubernetes prácticamente en cualquier lugar y para todos (CON208-L, 2022)
- Un análisis detallado de AWS Fargate y AWS App Runner (CON406, 2022)
Este artículo fue traducido del Blog de AWS en Portugués
Acerca del autor
Ibrahim Cesar es arquitecto de soluciones en AWS para el segmento empresarial. Como arquitecto y como Builder, ha estado operando en el mercado de la tecnología durante más de 15 años, con experiencia desde el desarrollo hasta la gestión de aplicaciones. Está entusiasmado con el Framework Well-Architected como herramienta para evaluar y mejorar proyectos en la nube. Fuera del trabajo, es un lector voraz y participa activamente en iniciativas de código abierto y proyectos de tutoría.
Revisores
Luis Miguel es arquitecto de soluciones en AWS. Cuenta con más de 10 años de experiencia en la arquitectura de soluciones locales y en la nube, centrándose en la resiliencia, el rendimiento y la automatización. En la actualidad se especializa en computación sin servidor. En su tiempo libre le gusta leer, jugar un buen videojuego y pasar tiempo con familiares y amigos.
Neuton Assis es arquitecto de soluciones en AWS para el segmento empresarial. Antes de eso, trabajó durante más de 10 años en la arquitectura y el desarrollo de software destinados a automatizar las actividades de TI, la auditoría de sistemas y la gestión de identidades y accesos, trabajando principalmente en entornos Microsoft. Actualmente, ayuda a los clientes y socios de AWS a tener éxito en su transición hacia la computación en nube.
Davi Garcia se encuentra en Brasil y es un arquitecto de soluciones de AWS especializado en modernizar la infraestructura y las aplicaciones en la nube, lo que acelera el viaje de los clientes de varios segmentos de América Latina. Tiene una amplia experiencia en plataformas de contenedores, arquitecturas de nube nativas y automatización. En su tiempo libre, le gusta contribuir a proyectos de código abierto, divertirse con su familia con juegos de mesa y viajar.
Guillermo Fernandez es gerente de soluciones para clientes de Telco y TI en AWS. Antes de esto Guillermo trabajó más de 15 años como integrador de soluciones de telefonía móvil y como gerente de soluciones de nube para los principales OpCos de LATAM como Telefónica, Millicom, Entel, y Claro. Tiene amplia experiencia en la traducción de necesidades de los clientes a soluciones llave en mano en la vertical de Telco. Actualmente es el CSM para el cliente America Movil. En su tiempo libre, contribuye a proyectos de sostenibilidad en su comunidad y se divierte tocando música folklórica latinoamericana con sus amigos.