En 2006, fue lanzado Amazon Web Services con el objetivo de poder mantener el crecimiento de su propia web de venta online. AWS fue una de las propulsoras del método pay-as-you-go, dando de este modo a los usuarios la libertad de escalabilidad en cómputo, almacenamiento y rendimiento.
AWS proporciona una plataforma de infraestructura escalable de alta fiabilidad y de bajo coste en la nube repartida por Europa, Oriente Medio y África, en 24 zonas de disponibilidad distribuidas en ocho regiones geográficas, con 39 ubicaciones de red de borde y dos ubicaciones de caché de borde regionales.
¿Qué servicios proporcionan AWS?
AWS comprende todos sus servicios en algunas categorías como:
- Capacidad de cómputo
- Almacenamiento de base de datos
- Gestión de datos
- Migraciones
- Hybrid cloud
- Gestión de redes
¿Cómo es el diseño de AWS?
A continuación, explicamos algunos de los elementos del diseño aplicados en AWS:
- VPC (Virtual Private Cloud) con un rango de red propio, disponibilidad de DHCP y capacidad de crear subredes tanto públicas como privadas.
- ELB (Elastic Load Balancer) es un balanceador de carga que distribuye automáticamente el tráfico entrante entre varias instancias de EC2, permite realizar comprobaciones de estado y mantener sesiones persistentes.
- ASG (Auto Scaling Groups) contiene una colección de instancias de EC2, donde el tamaño depende del número de instancias que se establezca, así como de la capacidad deseada. Se puede ajustar su tamaño para satisfacer la demanda, ya sea manualmente o mediante escalado automático.
¿Desde dónde lanzamos nuestras aplicaciones?
EC2 es un servicio web que proporciona servidores en la nube, también denominados instancias. Dichas instancias se pueden clasificar como: reservadas, bajo demanda o puntuales. EC2 nos permite asignar un almacenamiento adjunto a nuestra instancias llamado EBS.
Por supuesto, es adaptable con cualquier otro servicio de AWS y nos permite la elección de procesador, almacenamiento, red y sistema operativo.
¿Y si no queremos tener levantadas estas instancias?
Si estás familiarizado con el concepto de microservicios basados en eventos, sabrás que Lambda es un servicio serverless, basado en eventos que nos permite ejecutar código para cualquier tipo de aplicación o servicio sin necesidad de administrar o aprovisionar servidores. Puede ser lanzado desde casi todos los servicios de AWS, y solo pagamos por lo utilizado.
Algunos de los casos en los que deberíamos usar AWS Lambda son: para el procesamiento de datos a escala, para las ejecuciones de backends web y para la creación de aplicaciones basadas en eventos, facilitando la comunicación entre servicios desacoplados.
¿Y qué ocurrirá con nuestros archivos de mayor peso?
S3 es un sistema de almacenamiento de datos que asegura latencias casi nulas y nos permite la perfecta interacción con los demás servicios de AWS. Dependiendo de la frecuencia de acceso a nuestros archivos y la velocidad de obtención de los mismos, podremos crear reglas para clasificarlos en distintas categorías de S3 y AWS se encargará de moverlos según nuestras reglas. Respecto al ámbito de la seguridad, nos permite la transferencia de datos a través del protocolo SSL.
Una base de datos para gobernarlos a todos
RDS es un sistema de instancias de bases de datos relacionales capaces de soportar múltiples motores de bases de datos como SQL, PostgreSQL, SQL Server. Algunas características que nos encontramos son la escalabilidad horizontal y vertical, la generación de copias de seguridad automáticas y la implementación de Amazon Aurora, que permite una capa de almacenamiento virtualizada con tolerancia a fallos y recuperación automática.
También contamos con Amazon Multi-AZ para ofrecer una mejora de disponibilidad, tolerancia a fallos y durabilidad de nuestras bases de datos, Multi-AZ aprovisiona nuestra instancia de base de datos y crea una réplica en una zona de disponibilidad diferente en la que se replican también los datos de forma síncrona.
¿Existe una base de datos NoSQL?
Efectivamente, en AWS cuentan con DynamoDB, un servicio serverless que tiene atributos comunes a otras aplicaciones nativas de la nube, como la implementación de infraestructura elástica. DynamoDB es principalmente un almacén de clave-valor en el sentido de que su modelo de datos consta de pares de clave-valor en una tabla de filas (registros) no relacional, muy grande y sin esquemas por defecto. No admite métodos de sistemas de administración de bases de datos relacionales (RDBMS) para unir tablas a través de claves externas. También puede admitir un modelo de datos de almacenamiento de documentos mediante la notación de objetos de JavaScript (JSON).
Trata grandes cantidades de datos con AWS
La transmisión de datos es uno de los requisitos más importantes para las empresas en la actualidad por varias razones. AWS Kinesis el servicio serverless de análisis de datos ofrecido por Amazon Web Services y lo podemos encontrar disponible como una plataforma altamente escalable y administrada en su totalidad por AWS. AWS Kinesis se forma por cuatro componentes:
- Amazon Kinesis Data Firehose: especializado en la obtención y filtrado de datos obtenidos por varios flujos.
- Kinesis Data Streams: la solución más potente para la captura y almacenamiento de datos.
- Kinesis Data Analytics: herramienta de análisis de flujos datos. Integrado con Apache Flink y SQL.
- Kinesis Video Streams: enfocada a realizar una transmisión de video de manera más sencilla y segura a AWS desde dispositivos conectados con fines de aprendizaje automático (Machine Learning).
Es hora de controlar el acceso nuestros recursos
IAM es un servicio que nos ayuda a controlar de forma segura el acceso a los recursos de AWS. Utilizamos IAM para controlar quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos.
¿Cómo monitorizamos todos estos servicios?
AWS nos provee de una herramienta especializada para poder monitorizar la salud (el estado) de los componentes del proyecto, CloudWatch. Con CloudWatch se pueden recopilar y visualizar los recursos, aplicaciones y servicios de AWS, como también los recursos en el centro de datos local.
Además. con una nueva herramienta impulsada por AWS X-Ray, somos capaces de realizar análisis de rendimiento y depurar aplicaciones basadas en microservicios desde la consola de AWS.
¿Qué conocimientos de AWS necesitamos para desplegar toda la infraestructura?
Si queremos tener un modelo híbrido, juntando servicios on-premise y serverless, podemos optar por AWS Beanstalk, un servicio para implementar y escalar aplicaciones. En otros términos, esta plataforma como servicio (PaaS) coge nuestro código de aplicación y lo implementa mientras aprovisiona la infraestructura necesaria y los recursos para que se ejecute su código.
Hiberus es el socio tecnológico en microservicios que buscas. Somos Partner Select en AWS, entendemos tu negocio y nos adaptamos a tu contexto para ofrecerte la mejor solución y el mejor servicio en función de tus objetivos. ¿Te ayudamos?
¿Quieres más información sobre nuestros servicios de AWS?
Contacta con nuestro equipo de expertos en AWS