¿Qué significan los principales nombres de AWS?
Amazon Web Services AWS es la plataforma de Amazon que nos provee de diferentes servicios basados en la nube con recursos tanto de cómputo, almacenamiento, bases de datos, análisis, redes, dispositivos móviles, herramientas para desarrolladores, herramientas de administración, IoT, seguridad y aplicaciones empresariales.
Cuando empezamos a usar AWS nos encontramos con una amalgama de términos que nos llega a producir vértigo.
Vamos a dar una explicación sencilla de los principales términos de cara a quitarnos ese miedo.
Terminología básica
- Región. Según la definición de Amazon, “AWS tiene el concepto de una región, que es una ubicación física en todo el mundo donde agrupamos los centros de datos”. La traducción más simple sería área extensa (estado, país, etc…) en el que AWS tiene disponible un conjunto de servicios. La cantidad de servicios disponibles puede variar entre regiones. En Europa podemos distinguir las siguientes: Frankfurt(eu-central-1), Ireland(eu-west-1), London(eu-west-2), Milan(eu-south-1), Paris(eu-west-3) y Stockholm(eu-north-1).
- Zona de disponibilidad. Dentro de cada Región, AWS hace una segunda división en lo que se llama Zona de disponibilidad. Por ejemplo para la Región Ireland, existen 3 Zonas de disponiblidad eu-west-1a, eu-west-1b y eu-west-1c. Podríamos considerarlos como Datecenters distintos.
Servicios de Datacenter clásicos
Entre todos los servicios que tiene AWS, los primeros que vamos a mencionar son aquellos servicios típicos que siempre nos hemos encontrado en un Datacenter:
-
EC2. EC2 es el servicio con el que podemos provisionar máquinas para poder usarlas como servidores. Existe una gran oferta de configuraciones de máquinas, tanto en Windows, Linux y Mac. Se realizará el cobro por tiempo que se encuentra levantada la máquina, el tamaño de los discos y el uso de E/S que realicemos.
-
Instancia. Una instancia es cada una de las máquinas que tenemos ejecutando.
-
Volumen. Los volúmenes son cada uno de los discos que tenemos conectados a nuestra máquinas.
-
Snapshot. Un snapshot es un backup instantáneo de un volumen. Puede usarse a nivel de backup.
-
Grupos de seguridad. Los grupos de seguridad son un conjunto de reglas en el Firewall que podemos agrupar bajo un mismo nombre. Podemos por ejemplo podemos crear un Grupo de seguridad para que los administradores puedan acceder por SSH desde la IP pública de la oficina y reutilizarla en todas las máquinas que creemos.
-
VPC. Las VPC de AWS son las redes privadas virtuales. Serían el símil a las redes físicas de una empresa en la que se encuentran conectadas los diferentes equipos. Nos permite crear diferentes VPC e indicar la interconexión entre los equipos de las mismas.
-
Subredes. Una VPC se puede dividir en subredes y asignar diferentes rangos de IPs a los equipos de las mismas.
-
-
Route 53. Route 53 es el servicio de DNS de AWS. Con él podremos registrar nuestros dominios y crear las entradas pertinentes tanto para los dominios como para sus subdominios.
-
ELB. ELB (Elastic Load Balancing) es nuestro balanceador de carga dentro de AWS. Tiene multitud de opciones de configuración. Con características especiales que nos permite escalar de forma dinámica el número de servidores que tenemos levantados en un momento dado.
-
CloudFront. CloudFront es el servicio de CDN de AWS. Algo imprescindible para garantizar unos tiempos adecuados de respuesta en la mayoría de los servicios web.
Servicios administrados
-
S3. S3 o Simple Storage Service y un servicio de almacenamiento dinámico de AWS. Es como un gran cajón en el que podemos enviar nuestros documentos. Tiene grandes características entre las que tenemos gestión de versionado, configuración de accesos detallada, generación de eventos de los cambios que ocurren, reglas de borrado automático de información obsoleta, etc…Aunque de forma visual se realiza una organización a nivel de directorios, realmente es una gran tabla que relaciona un nombre de documento (incluyendo las “rutas” intermedias) con su correspondiente documento.
- Bucket. Un Bucket en S3 es cada uno de los “discos virtuales” en los que particionamos nuestro S3. Gracias a ello podemos tener una gestión más correcta de los mismos.
-
RDS. RDS es el motor de Bases de datos autogestionado de AWS. Básicamente nos permite tener los principales motores de base de datos sin tener que ocuparnos de su mantenimiento. Como motores de base de datos podemos usar Aurora DB, PostgreSQL, MySQL, MariaDB, Oracle y MS SQL Server.
-
DynamoDB. DynamoDB es la base de datos NoSQL de AWS. Es una especie de MongoDB autoadministrado por AWS.
-
SNS/SQS. SNS y SQS son los sistemas de mensajería de AWS. SNS (Simple Notification Service) sería el sistema de mensajería desatendida y SQS (Simple Queue Service) el sistema de colas de AWS (una especie de ActiveMQ autoadministrado).
Serverless
-
Lambda. Lambda es el servicio Serveless o FaaS de AWS. Nos permite tener una serie de funciones programadas que puedan ser ejecutadas sin tener en cuenta el concepto de servidor asociado. Cuando un evento pide que se ejecute la función, Lambda se encarga de provisionar el hardware necesario y ejecutar dicha función. Si al cabo de un tiempo dado, no se vuelve a ejecutar dicha función, se liberará este hardware que se ha necesitado. Sólo pagamos por el tiempo que se ha ejecutado la función, atendiendo de unos límites de potencia de proceso y RAM que hemos configurado.
-
API Gateway. Amazon API Gateway nos permite establecer un API de acceso desde el exterior a los servicios que tenemos internamente. Esos servicios pueden ser nuestros propios, como una función Lambda que hayamos programado, como un servicio interno de AWS.
IaaS
- CouldFormation. CloudFormation es el servicio de provisionamiento de nuestra arquitectura por programación. Nos permite a través de la programación crear toda la infraestructura, tanto de equipos como de servicios, que necesita nuestra empresa o aplicación. Permite automatizar todo tipo de integraciones y distribuciones continuas (CI/CD).
Conclusiones
AWS se compone de más de 200 servicios y cada uno está pensado para resolver algún tipo de problema. Si tienes dudas sobre alguno, y puedo ayudarte, contáctame si tienes algún problema enviándome un email a lcbarco@gmail.com o a través de mi cuenta de Twitter https://twitter.com/lcbarco.