AWS es una plataforma de infraestructura como servicio (IaaS), cuenta con muchas características que se incluyen en múltiples servicios que actualmente superan a cualquier proveedor de servicios en la nube. Aparte de los servicios de bases de datos, almacenamiento y cómputo, también cuenta con otras tecnologías para la inteligencia artificial, análisis e Internet de las Cosas, así como tutoriales para el aprendizaje autónomo.
Al inicio, la infraestructura principal se creó para cumplir con servicios de seguridad del ejército, bancos internacionales y otras empresas, cumpliendo siempre con una estricta confidencialidad. Es por lo que el entorno informático en la nube de AWS es flexible y seguro, contando con un respaldo amplio de herramientas de seguridad. AWS es compatible con 90 estándares de seguridad y certificaciones.
Por último, AWS también es una plataforma como servicio (PaaS) y software como servicio (SaaS). El primero elimina la necesidad de las organizaciones de administrar la infraestructura del hardware y sistemas operativos para centrarse en el desarrollo de aplicaciones y su correcta administración mejorando la eficacia de estos. El segundo proporciona aplicaciones completas que los proveedores de los servicios ejecutan y administran.
Se tiene que comprender la diferencia entre el software como servicio, infraestructura y plataforma para determinar los servicios que pueden ayudar a solventar las necesidades de las empresas.
Servicios de redes y conectividad
Los servicios de redes y de conectividad que abordarás en este apartado son los siguientes: modelo OSI, esenciales de redes para AWS, VPC, sub-redes, ruteo y compuertas de enlace a Internet y bastiones.
El modelo OSI (open system interconnection) es un marco de referencia para la interconexión de los sistemas abiertos; es un modelo creado por la Organización Internacional para la Estandarización (ISO).
Este modelo es solo una guía para entender cómo se realizan las comunicaciones en una red, las tareas en realidad las ejecutan los dispositivos de hardware y software; el modelo OSI solo define las actividades que llevan a cabo y los protocolos que ayudan a realizar esas actividades.
El modelo OSI consiste en siete capas y estas son las siguientes:
Las funciones específicas de cada capa son las siguientes:
El modelo OSI forma una pirámide de siete capas que marcan el proceso de transmisión de la información. Este marco teórico se utiliza para explicar y describir los protocolos reales de cada capa que se utilizan para la conexión de redes de transmisión de datos.
En AWS existen conceptos básicos de redes, así como el diseño de la nube privada virtual, la seguridad en la red y los servicios de redes. La creación de una red es uno de los cuatro servicios principales para todos los proveedores de servicios en la nube. Para las aplicaciones que se ejecutan en EC2, la arquitectura comienza en la red y en AWS se refiere a la VPC (virtual private cloud). Es importante que la red se implemente con un grado de seguridad y rendimiento para que esta funcione de una manera eficaz.
Amazon Virtual Private Cloud (Amazon VPC) permite lanzar recursos de AWS en una red virtual que se defina. Esta red virtual se parece mucho a una red tradicional que operaría en su propio centro de datos, con los beneficios de utilizar la infraestructura escalable de AWS.
Amazon VPC es la capa de red de Amazon EC2 y los conceptos claves son los siguientes (Amazon Web Services, s.f.-b):
Para crear, administrar y tener accesos en la VPC puedes utilizar alguna de las siguientes interfaces:
Una subred son múltiples direcciones IP de la VPC. Para los recursos que se vayas a conectar a Internet tienes que utilizar una subred pública y los recursos que no van a estar conectados a Internet utilizan la subred privada. Los grupos de seguridad y las listas de control de acceso a la red (ACL) se utilizan para proteger los recursos de AWS en cada subred.
Cuando se crea una nube privada virtual tienes que especificar un rango de direcciones IPv4 en forma de bloque que se llama classless inter-domain routing (CIDR). Por ejemplo, si se define la dirección IP 10.0.0.0 /16 (CIDR), significa que tiene un tamaño de 16 (máscara de subred) y un rango de 65,536 direcciones IPv4; si se define una dirección IP 10.0.0.0 /24 (CIDR), significa que tiene un tamaño de 24 (máscara de subred) y un rango de 256 direcciones IPv4.
Se pueden añadir más subredes en cada zona que esté disponible aun y cuando la VPC ya esté creada, y se pueden lanzar instancias EC2 en una subred específica. Cuando se crea una subred se tiene que especificar el bloque CIDR IPv4 (10.0.0.0 /16); las subredes tienen que estar alojadas dentro de la zona de disponibilidad.
También puedes agregar subredes en una zona local para los recursos de computación, almacenamiento, base de datos y otros servicios a usuarios finales. Estas zonas ayudan a que los usuarios finales puedan ejecutar aplicaciones que requieren latencias muy bajas (milisegundos). Si una subred se enruta a una puerta de enlace en Internet es una subred pública, si se requiere que una instancia EC2 se comunique con Internet a través de IPv4, tienes que especificar una dirección IPv4 pública o elástica; si se desea que la instancia se comunique con Internet a través de IPv6, tienes que especificar una dirección IPv6.
Figura 1. Subred pública.
Si la subred no tiene conexión a Internet, es una subred privada. Ahora, si la conexión es por VPN por medio de una puerta de enlace virtual, es una subred solo de VPN. En este último caso no se admiten las direcciones IPv6.
Es importante mencionar que para el ruteo y las compuertas de enlace a Internet (gateway), AWS crea una gateway de tránsito, el cual funge como un enrutador virtual regional del flujo de tráfico entre las nubes virtuales privadas (VPC) y las redes en las instalaciones. Una compuerta de enlace al Internet se escala de manera dinámica de acuerdo con el volumen de tráfico de la red. El enrutamiento a través de una de una compuerta de enlace funciona en la capa 3, donde los paquetes se envían a una conexión específica del grupo de paquetes en función de las direcciones IP de destino.
Cuando estás trabajando con instancias EC2 llegará un momento que la cantidad va a ir en aumento, así como los puntos de acceso administrativos a las instancias. Aquí es cuando tienes que empezar a considerar la aplicación de controles de acceso más estrictos y para esto, lo mejor es utilizar un bastión. Este es una instancia de servidor diseñado como el punto principal de acceso desde Internet que actúa como proxy para las otras instancias EC2 (muskanj895, 2020).
Una de las principales preocupaciones de cualquier organización es la seguridad de los servicios que se encargan de almacenar la información. Aunque Amazon ofrece seguridad en los servicios, también recomienda utilizar el acceso SSH para proteger aún más las instancias y los servicios. Aquí es cuando requieres de un bastión. Este es un servidor especial que se configura para prevenir ataques y contiene una sola aplicación. También cuenta con acceso a la red pública que se le llama jump box, el cual proporciona un alto nivel de seguridad, ya que es el punto principal de acceso desde Internet (anfitrión/host).
Para asegurarte de que el bastión no tenga fallas es importante contar con los grupos de seguridad, ya que estos tienen un papel importante en su mantenimiento y deben de usarse para permitir la conexión del bastión a la instancia privada.
Los grupos de seguridad desempeñan un papel fundamental en el mantenimiento de la seguridad y en asegurarse de que el host de bastión no falle. Crea un grupo de seguridad para permitir la conexión de un bastión a una instancia privada (la instancia es propiedad del usuario). Estos grupos deben de tener reglas de seguridad más estrictas que se apliquen a todas las instancias privadas. También deben de aceptar las solicitudes de RDP (escritorio remoto) o SSH que parten del bastión que está en la zona de disponibilidad del usuario.
En AWS, la mejor práctica es realizar las conexiones a instancias de Windows por medio del RDP o utilizar la técnica de reenvío del SSH para la conexión de instancias en Linux. Para esto es necesario contar con claves tanto privadas como públicas, las primeras las debe de tener el bastión para que se realice la autenticación de las conexiones y, de esta manera, contar con un método de seguridad de alto nivel.
La puerta de enlace NAT se encarga de la traducción de direcciones de red (NAT). Este servicio se utiliza para que las instancias de una subred privada se conecten a los servicios que estén fuera de la nube virtual privada. Los servicios que son externos no se pueden conectar con las instancias que cuentan con el servicio NAT.
Tipos de conectividad:
La dirección IP de origen de las instancias se reemplazan con la dirección de la NAT; para la NAT privada es la dirección privada de la puerta de enlace NAT y para la NAT pública es la dirección IP elástica. Las instancias, al tener tráfico de respuesta, la NAT vuelve a reemplazar las direcciones IPv4 del origen. Cada puerta de enlace NAT se tiene que crear en una zona específica de disponibilidad y se implementa con redundancia en esa zona.
Estas son algunas características y reglas de las puertas de enlace NAT:
Puedes crear una máquina virtual (AMI) con la traducción de direcciones de red y así lanzar una instancia EC2 como una instancia NAT, se lanza esta instancia en una subred pública para que las instancias de la subred privada tengan tráfico a Internet y a otros servicios externos de AWS.
Las listas de control de acceso a la red, por sus siglas en inglés (NACL), se consideran una capa de seguridad adicional que es de tipo opcional, las NACL se consideran funcionales cuando:
AWS Network Firewall (cortafuegos) es un servicio de cortafuegos de red que puedes administrar para prevenir y detectar ataques o intrusiones en el perímetro de la VPC.
Puedes implementar un firewall de red con los siguientes recursos de AWS:
Amazon Route 53 es un servicio de DNS (domain name system) que es utilizado para redirigir a los usuarios finales a los sitios de Internet mediante la traducción de nombres. Por ejemplo, una dirección IP que es 192.168.3,7 se traduce y redirige a un sitio web. Este servicio acepta direcciones IPv6.
El servicio Route 53 se encarga de conectar las solicitudes de los usuarios finales con la infraestructura de AWS como las instancias de Amazon EC2, balanceadores de cargas elásticas o cubetas de Amazon S3; también dirige a los usuarios a infraestructuras externas de Amazon Web Services.
El servicio Route 53 se llama así, ya que cuando se realizan consultas a los servidores DNS son a través del puerto 53 y las respuestas a estas consultas direccionan a los usuarios finales a los sitios o aplicaciones de Internet.
Los cortafuegos de AWS es un servicio de gestión para implementar las protecciones de red necesarias de una manera sencilla y rápida para todas las VPC. También te permiten definir un conjunto de reglas para brindar protecciones contra las amenazas de la red comunes y flujos de tráfico.
Servicios de almacenamiento
Amazon Simple Storage Service (Amazon S3) es un servicio para el almacenamiento de objetos que ofrece seguridad, rendimiento, disponibilidad de la información y escalabilidad de almacenaje. Con Amazon S3 los datos se almacenan y se protegen y además se les da varios usos, ya sea para sitios web, aplicaciones móviles o para crear copias de seguridad, entre otros. Además, cuenta con características de gestión para organizar la información y configurar controles de acceso para satisfacer las necesidades de las organizaciones.
Amazon S3 tiene varias clases de almacenamiento, según las necesidades de las empresas como:
S3 Estándar almacena objetos de alta durabilidad, rendimiento y disponibilidad para los datos a los que se tiene acceso regularmente. Esta clase de almacenamiento se utiliza para aplicaciones en la nube y dispositivos móviles, distribución de contenido, videojuegos y Big Data. Se pueden utilizar políticas del ciclo de vida S3 para mover los objetos automáticamente entre diferentes clases de almacenamiento sin impactar en los cambios de las aplicaciones.
Características (Amazon Web Services, s.f.-a):
S3 Capas inteligentes es la única clase de almacenamiento en la nube que disminuye automáticamente los costos del almacenamiento al cambiar los patrones de acceso a los datos sin impactar el rendimiento o los gastos operativos. Esta clase es ideal para el almacenamiento de datos con patrones de accesos desconocidos, impredecibles o cambiantes, no importa el tamaño del objeto o el tiempo de retención de este.
Características:
S3 Estándar-Acceso poco frecuente/Zona única se utiliza para almacenar los datos que son usados con poca frecuencia, pero se requiere el acceso a ellos cuando sea necesario; es ideal para almacenar las copias de seguridad y archivos para la recuperación de desastres. También se pueden utilizar las políticas del ciclo de vida S3 para mover los objetos automáticamente entre diferentes clases de almacenamiento sin impactar en los cambios de las aplicaciones.
Características:
S3 Glacier/Glacier Deep Archive son clases de almacenamiento de bajo costo para guardar datos, pero aun así es muy seguro y confiable. Proporciona opciones de recuperación que van desde las horas hasta solo minutos, también se pueden utilizar las políticas del ciclo de vida S3 para mover los objetos automáticamente entre diferentes clases de almacenamiento sin impactar en los cambios de las aplicaciones.
Características:
S3 Outposts almacena los objetos a su entorno de AWS en las instalaciones, esto quiere decir que almacena los datos localmente para tener los datos cerca de las aplicaciones o instalaciones.
Características:
Los permisos, en Amazon S3, son acciones específicas que permiten tener los accesos necesarios a los recursos y quien o quienes tendrán los accesos; existen diferentes métodos para el control de estos que dependen de los recursos como las cubetas y los objetos.
De manera predeterminada, solo la persona que crea el recurso o lo sube a la nube (cubeta/objeto) es el propietario de los permisos. El propietario de una cubeta (bucket) puede otorgar permisos a otros usuarios de AWS para subir los objetos. En este caso, el propietario de los objetos es del que los sube a la nube y el usuario que creó la cubeta no tiene permisos sobre los objetos.
El propietario de la cubeta es el que paga y, por lo tanto, es el que puede denegar los accesos a cualquier objeto, así como eliminarlos. No importa que otro usuario sea el propietario del objeto. El propietario de la cubeta puede también archivar los objetos o recuperarlos sin importar quienes son los propietarios.
Todas las solicitudes realizadas a una cubeta pueden ser autenticadas o no; las que requieren autenticación tienen que incluir la firma para autenticar el remitente de la solicitud y las que no son autenticadas no lo necesitan. El propietario de una cubeta puede permitir el acceso de las solicitudes no autenticadas. Por ejemplo, las solicitudes de un objeto PUT no autenticado se les permitirá el acceso si la cubeta cuenta con una política de acceso público. También se le puede otorgar el acceso por medio de la lista de control de accesos (ACL).
Las políticas de acceso: especifican quién tiene acceso a qué recurso, se tiene que asociar una política de acceso a una cubeta, objeto o usuario.
Políticas de recursos: las políticas de las cubetas, así como las listas de control de accesos son asociadas a los recursos de Amazon S3. Con las listas se pueden otorgar permisos de solo lectura o escritura en un esquema xml y las políticas de las cubetas se usan para dar permisos a otros usuarios con cuentas de AWS o de IAM, tanto para las cubetas como para los objetos que están en ellas.
Políticas de usuarios: se puede utilizar IAM para administrar los accesos a los recursos, ya que se pueden crear usuarios, roles y grupos en la cuenta y asociar las políticas a estas otorgando diferentes permisos a los recursos de Amazon S3.
Estas son algunas preguntas que tienes que responder para saber qué tipo de método para el control de accesos te conviene implementar:
AWS DataSync es un servicio para la transferencia de datos en línea que acelera las copias de grandes cantidades de datos entre diferentes sistemas y almacenamientos de una manera automatizada y simple. Este servicio puede copiar los datos entre el sistema de archivos de red (NFS), servidores de bloque de mensajes compartidos (SMB), AWS Snowcone, las cubetas de Amazon S3, sistemas de archivos de Amazon EFS y los sistemas de archivos de Amazon FSx for Windows File Server.
Este servicio elimina los procesos manuales de la administración como las secuencias de las copias o de las implementaciones, así como el ajuste de transferencia de las herramientas comerciales; también cuenta con monitoreo, así como el control de la transferencia de los datos y el ancho de banda.
El cifrado de los datos se realiza en el tránsito de estos por medio de la capa de seguridad de transporte (TLS). DataSync cuenta con un cifrado predeterminado que se utiliza en las cubetas de S3, en los datos en reposo del sistema de archivos de Amazon EFS y, por último, el cifrado en tránsito y reposo de Amazon FSx for Windows File Server.
El alojamiento estático para sitios se implementa mediante un servicio o una cubeta de S3. En un sitio estático, cada página web incluye contenido estático (puede contener scripts a ejecutar desde el cliente). Es importante mencionar que en caso de que se requiera de un servicio para alojar un sitio dinámico, es decir, que haya comandos o ejecución del lado del host (servidor) ya sea como PHP, JSP o ASP.NET, el servicio de AWS S3 no admite este tipo de ejecuciones, sin embargo, AWS incluye otros recursos para alojamiento de web dinámicos, para tipos de páginas de uso común como WordPress, Joomla, Drupal, Magento, etc., se puede implementar un servidor con AWS, para ello se puede utilizar Lightsail que es la manera más sencilla de implementar y administrar un servicio AWS.
S3 Versioning (versionamiento) es la capacidad de mantener varias versiones de las cubetas y restaurar archivos que se eliminen, o bien, que se sobrescriban accidentalmente. Amazon S3, al eliminar un objeto inserta un marcador de eliminación, el cual admite una especie de respaldo para que, de ser necesario, se pueda restaurar el objeto a una versión anterior. Cada cubeta de S3 cuenta con un subrecurso de control de versiones asociado, y con ello se asegura el seguimiento y la administración de los posibles escenarios en la pérdida accidental de la información.
Las políticas del ciclo de vida de Amazon ECR son utilizadas en la administración del ciclo de vida de las imágenes que están alojadas en un repositorio privado para obtener un mayor control en la misma. Estas políticas incluyen un grupo de reglas que definen las acciones de Amazon ECR. De esta manera se automatizan la limpieza de las imágenes que no están siendo utilizadas, así como las que ya están vencidas. Las políticas de ciclo de vida, al crearse y asociarse a las imágenes, vencerán en 24 horas.
En resumen, estas políticas son utilizadas para que las imágenes de un repositorio que sean marcadas caduquen en 24 horas.
La URL prefirmada permite el compartir recursos de los medios de almacenamiento de AWS, por lo general y por defecto, los objetos (archivos y directorios) son privados, es decir, no pueden ser accesibles desde el exterior, y solamente el propietario puede tener acceso a los mismos. Sin embargo, para efectos prácticos es posible compartir los archivos mediante el uso de URL prefirmada. Cuando se crea una URL prefirmada para el objeto se facilitan credenciales de seguridad, el nombre de la cubeta, se especifica el método http get, así como una vigencia de tiempo. Estas URL prefirmadas son válidas únicamente en la vigencia establecida, una vez que la fecha de vencimiento llega a su fin, la URL preafirmada se dará por terminada.
Los servicios de almacenamiento de Amazon ayudan a transformar a las organizaciones, ya que aceleran la innovación, reducen los costos y agilizan los procesos, además de que manejan una gran cantidad de soluciones para el almacenamiento, protección, acceso y análisis de la información.
Servicios de base de datos
AWS tiene una gran variedad de bases de datos personalizadas que contribuyen al ahorro, crecimiento e innovación de las empresas respecto a la seguridad, administración y rendimiento de la información. Existen cerca de 15 motores de personalización para las bases de datos incluyendo las bases de datos relacionales, gráficos y de documentos, entre otros. También se pueden monitorear para mantener las cargas de trabajo en buen funcionamiento con un almacenamiento y escalado automático y, de esta manera, concentrar los esfuerzos en el desarrollo de aplicaciones.
Amazon RDS (relational database service) es un servicio que ayuda en la configuración y escalamiento de las bases de datos relacionales en la nube para automatizar las tareas administrativas que son repetitivas o que requieren mucho tiempo realizarlas como la implementación de parches, copias de seguridad y el aprovisionamiento de hardware. Este servicio se puede usar con varios tipos de instancias de bases de datos.
Algunos de los motores de bases de datos que se pueden utilizar son los siguientes:
Con AWS Database Migration Service se pueden replicar o migrar las bases de datos a Amazon RDS y así convertir la concepción de cualquier proyecto en realidad.
Algunas de las características de Amazon RDS:
Amazon Aurora es un motor para bases de datos relacionales en la nube que tiene compatibilidad con PostgreSQL y MySQL. Combina la sencillez y rentabilidad de las bases de datos de código abierto con la disponibilidad y el rendimiento de las bases de datos tradicionales. Amazon Aurora es cinco veces más rápida que otras bases de datos, cuenta con seguridad, fiabilidad y disponibilidad a un costo bajo; una de las ventajas es que es administrada por completo por el servicio RDS y de esta manera se automatizan las tareas administrativas.
Por medio de la consola de Amazon RDS se pueden crear instancias de base de datos con Aurora y migrar las bases de datos de MySQL y PostgreSQL. Este motor también ofrece una recuperación automática hasta 128 TB por cada instancia de base de datos, almacenamiento distribuido y tolerancia contra fallas; es una buena opción para cualquier aplicación empresarial en la que se necesite una base de datos relacional.
Amazon DynamoDB es un motor para bases de datos NoSQL de clave de valor sin servidor que se administra completamente para controlar el rendimiento a cualquier escala. Cuenta con seguridad, copias de seguridad, almacenamiento en caché de memoria y herramientas de exportación de datos. Se pueden crear aplicaciones modernas sin necesidad de servidores para comenzar en pequeño; este motor está diseñado para aplicaciones con un alto rendimiento que podrían sobrecargas las bases de datos relacionales.
Con DynamoDB no hay necesidad de parchar, administrar, o aprovisionar servidores y, en cuanto a software se refiere, no hay necesidad de instalar, mantener o utilizar.
Estas son algunas características de Amazon DynamoDB:
Amazon ElastiCache es un servicio de almacenamiento de caché en memoria que se administra completamente en tiempo real; esto acelera la base de datos y el rendimiento de las aplicaciones y cuenta con dos motores Redis y Memcached.
Redis es un almacén de datos que ofrece latencias que son menores a un milisegundo para las aplicaciones que funcionan en tiempo real. Este motor es de código abierto y compatible con la API de Redis; aquí se combina la velocidad y la versatilidad, así como la escalabilidad y seguridad. Es una buena opción para los videojuegos, comercio electrónico, Internet de las Cosas y servicios financieros.
Memcached es un almacén clave-valor en memoria compatible, es escalable, completamente administrado y seguro; los datos de acceso permanecen en memoria y es una buena opción para los sitios web, videojuegos, aplicaciones móviles y comercio electrónico.
Amazon DynamoDB Accelerator (DAX) es un caché en memoria que es administrable que tiene un rendimiento en el procesamiento 10 veces mayor (microsegundos). Se encarga de acelerar la memoria de las tablas en DynamoDB; de esta manera no es necesaria la administración de los clústeres por parte de los desarrolladores ni el rellenado de datos.
Con las bases de datos personalizadas de AWS se logra ahorrar en recursos gracias a las migraciones de las bases de datos a AWS, obteniendo bajos costos y flexibilidad en las mismas, ya que son de código abierto. Los equipos de desarrollo ahorran tiempo, ya que se automatizan las tareas administrativas y así logran centrarse en actividades de valor enfocados a las aplicaciones, sin olvidar que ofrecen un rendimiento cinco veces mayor en comparación a las alternativas tradicionales ya que pueden procesar cerca de 20 millones de solicitudes por segundo con un almacenaje de petabytes y con una sólida arquitectura en microservicios.
Gracias a los cambios tecnológicos que se están viviendo hoy en día, la infraestructura en la nube está ampliando las oportunidades a los profesionales en el desarrollo de software, así como en el área de tecnologías de información. Anteriormente, las áreas de tecnologías pasaban la mayoría del tiempo en tareas centradas en los recursos con desarrollos largos y con cambios costosos. Ahora, con la nube y la automatización, se pueden crear infraestructuras tecnológicas en muy poco tiempo y las tareas pasaron a enfocarse en las áreas de innovación con estrategias flexibles e implementaciones más ágiles y rápidas.
Asegúrate de: