Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Referencias
Lección 1 de 3
“Amazon Virtual Private Cloud (Amazon VPC) le permite lanzar recursos de AWS en una red virtual que haya
definido” (Amazon Web Services, s.f.a, https://amzn.to/2UcJvqD). Se trata de una red personalizable que le
permite definir su propio rango de direcciones IP, agregar y eliminar subredes, crear rutas, agregar puertas de
enlace VPN (virtual private network), asociar políticas de seguridad, conectar instancias EC2 (elastic compute
cloud) a su propio centro de datos, entre otras tantas funcionalidades.
Al principio, cuando la VPC no estaba disponible, todas las instancias de EC2 en la zona de disponibilidad se
encontraban en una única red plana que se compartía entre todos los clientes. ¿Qué tan cómodo se sentía el
cliente al poner su información en la nube? No mucho. Entre el lanzamiento de EC2 en 2007 y el lanzamiento de
VPC en 2009, las funciones de VPC fueron algunas de las características más solicitadas de AWS.
Desde diciembre de 2013, todas las instancias EC2 son solo de VPC. Es decir, ya no es posible crear una
instancia EC2 que no sea VPC (EC2-Classic). Si usamos un asistente de lanzamiento para crear nuestra instancia
EC2, se colocará automáticamente en una VPC predeterminada con una puerta de enlace de Internet virtual para
acceso público.
Video 2: Creación de una virtual private cloud con todos sus componentes en español
Cómo crear una red VPC, security groups, Gateway, ACL en ambiente de alta…
Fuente: Arquitectura AWS [Arquitectura AWS]. (2017). Cómo crear una red VPC, security groups, Gateway, ACL en ambiente de alta disponibilidad en
AWS [YouTube]. Recuperado de https://www.youtube.com/watch?v=rgUk0wGMmqo
Amazon Virtual Private Cloud es un servicio que nos permite provisionar una sección aislada de
forma lógica en la red de Amazon Web Services (AWS) donde poder lanzar recursos de AWS en una
red que se defina. Permite seleccionar el rango de direcciones IP que se desee, la creación de
subredes y configuración de tablas de enrutamiento y puertas de enlace de red.
Un ejemplo de configuración habitual es crear una subred para los servidores que necesiten acceso a
Internet, y otra subred, para los sistemas de back-end como bases de datos y servidores de
aplicaciones, de uso privado sin acceso a Internet. También permite crear una red privada virtual
(VPN) de hardware para conectar un centro de datos con la VPC.
La limitación de rango y clases de IP’s en las redes es de /16, es el recomendado para poder
“jugar” y no limitarte a la hora de escoger direccionamiento.
Permite la utilización de dhcp. En la mayoría de los casos es muy interesante el utilizarlo, ya que,
dada la elasticidad de los servicios de AWS al levantar una nueva instancia, se le asigna una IP del
rango seleccionado por el dhcp.
Elastic IP. Para que las instancias que están dentro de la VPC puedan alcanzarse desde Internet,
es posible utilizar las IP’s fijas que ofrece AWS. Como excepción, es posible utilizar un servidor “de
salto” (Bastion host), que tenga una IP pública y se conecte a las demás instancias dentro de la VPC
mediante las IP’s privadas de las mismas.
VPC Peering. En el caso de tener infraestructuras en varios países, cuando se hace necesario el
conectar unas VPC’s con otras, e incluso con VPC’s de distintas cuentas de AWS, se utiliza este tipo
de conexión. AWS aprovecha la infraestructura que crea la VPC para crear una conexión VPC
Peering. Consiste en crear una conexión de red entre 2 VPC’s que permite enrutar el tráfico entre
ellas a través de las direcciones privadas de las mismas, como si estuvieran dentro de una misma
red, lo que facilita la transferencia de datos y el acceso a los recursos.
Utilización de Listas de Control de Acceso (ACL’s). En algunos casos puede resultar interesante
controlar el tráfico a nivel de subredes filtrando el acceso de entrada y salida entre las mismas.
Utilizar Security Groups. Es el firewall que AWS ofrece para gestionar el acceso a IP’s y puertos.
Es primordial utilizar esta capa para restringir los accesos y dotar de seguridad a la VPC.
VPN. Si se desea (aunque es recomendable), se puede enrutar todo el tráfico proveniente y dirigido
a las instancias de la VPC mediante una conexión VPN encriptada. Hay diferentes casos de uso y
distintas configuraciones con respecto a las VPN’s:
AWS Direct Connect. Es un servicio de AWS que establece una conexión de red privada
dedicada desde un centro de datos, oficina o entorno de coubicación, a AWS. La conexión se
puede particionar en varias interfaces virtuales. Así, con la misma conexión, puedes acceder
mediante una interfaz virtual a servicios de Amazon o recursos que estén en la parte pública. Y
mediante otra interfaz virtual puedes acceder a recursos privados dentro de la VPC. Con ello se
mantiene el aislamiento de la red.
Instalando en una instancia dentro de la VPC un servidor de VPN como, por ejemplo, OpenVPN y
que todo el tráfico pase por esa instancia. (Ibáñez y Marco, 2017, https://bit.ly/3CIxn1J)
Se integra con servicios de AWS como EC2, IAM, S3, Amazon RDS, DynamoDB, SQS, SNS, ECS,
etc. ¿Qué podemos obtener de esas integraciones? Entre otras, las siguientes ventajas:
Levantar instancias EC2 directamente dentro de una VPC, al igual que el servicio de contenedores
ECS.
Provisionar IP’s dentro de la VPC, de servicios y recursos de AWS como, por ejemplo, Amazon RDS,
Load Balancer, Elasticache, etc.
Para limitar el acceso a los recursos de AWS (como buckets de Amazon S3, temas de Amazon SNS y
colas de Amazon SQS), se pueden crear directrices de IAM que limiten el acceso a dichos recursos
únicamente a las direcciones IP elásticas asociadas con la VPC. (Ibáñez y Marco, 2017,
https://bit.ly/3CIxn1J)
Fuente: [Imagen sin título sobre Amazon RDS]. (s.f.). Recuperado de https://images.app.goo.gl/BzE9zuNpEe1CGkgA6
Video 3: Introducción a Amazon RDS
Fuente: Amazon Web Services [Amazon Web Services]. (2018). Understanding Amazon Relational Database Service (RDS) [YouTube]. Recuperado de
https://www.youtube.com/watch?v=eMzCI7S1P9M
Amazon Relational Database Service o Amazon RDS es un servicio de base de datos en la nube
administrado de AWS. Fue diseñado para simplificar la creación, operación, administración y escalado
de una base de datos relacional para su uso como backend de aplicación. AWS lanzó el servicio RDS
inicialmente en octubre de 2009 con soporte para MySQL. Con el paso de los años, el servicio RDS
agregó servicios administrados para otras bases de datos como SQL Server, Oracle Database,
PostgreSQL y MariaDB. (Krishna, 2020, https://bit.ly/3lUDudp)
RDS es uno de los servicios más populares en AWS y cuenta con una amplia gama de clientes que
buscan reducir la dependencia de sus DBA y permiten que su personal existente opere más bases de
datos de las que podían hacerlo anteriormente. (Krishna, 2020, https://bit.ly/3lUDudp)
Características de Amazon RD
AWS ofrece varias formas de acceder y administrar el servicio RDS, incluida la Consola de
administración de AWS, la Interfaz de línea de comandos (CLI) de RDS y las llamadas a la API REST.
Tras la invocación de un proceso de creación de instancias de RDS con parámetros predefinidos, se
activa una instancia de RDS y está lista para su uso en cuestión de minutos. Los administradores
continúan teniendo acceso a los parámetros de configuración de la base de datos que pueden
modificar para obtener un rendimiento óptimo de su instancia de RDS. (Krishna, 2020,
https://bit.ly/3lUDudp)
Amazon maneja el parche del sistema operativo subyacente y la base de datos aliviando la carga de
los administradores de la base de datos. Sin embargo, los administradores de RDS siguen teniendo la
opción de decidir cuándo aplicar un parche a la instancia de RDS. Amazon RDS se asegura de que el
software de base de datos relacional que impulsa su implementación se mantenga actualizado con los
últimos parches. Puede ejercer control opcional sobre cuándo y si su instancia de base de datos
requiere parches. (Krishna, 2020, https://bit.ly/3lUDudp)
El servicio Amazon RDS ejecuta miles de bases de datos para varios clientes, lo que les permite
identificar las mejores prácticas para lograr una utilización, seguridad y rendimiento óptimos de la
instancia RDS. Los clientes de RDS reciben estas recomendaciones. Pueden evaluar la validez de las
recomendaciones y tomar las acciones adecuadas según sus preferencias o ignorar la sugerencia.
(Krishna, 2020, https://bit.ly/3lUDudp)
Los usuarios pueden elegir entre una gran cantidad de opciones de procesamiento y almacenamiento
que están disponibles en Amazon RDS. El almacenamiento respaldado por SSD admite casos de uso
de IOPS [Input and Output por Seconds. Medición de escritura y lectura, útil para evaluar si un disco
puede ser usado para almacenar bases de datos] aprovisionados y de uso general. (Krishna, 2020,
https://bit.ly/3lUDudp)
Escalabilidad de instancias de RDS
El almacenamiento, la computación y la memoria son los tres aspectos de una base de datos donde
se requiere escalabilidad. RDS ofrece una opción de escalabilidad de botón para los administradores y
les permite agregar más almacenamiento a su instancia de RDS o escalar hacia arriba o hacia abajo
la computación y la memoria asignada a la instancia. Las opciones de escalabilidad de
almacenamiento varían según el tipo de RDS en uso, es decir, MySQL, Oracle, SQL Server y otros.
No se requiere tiempo de inactividad para aprovisionar almacenamiento adicional para una instancia
de RDS. Actualmente, RDS limita las operaciones de escalado a un máximo de 32 CPU virtuales y
244 GiB de memoria. Escalar la computación implica tomar un tiempo de inactividad, aunque el tiempo
de inactividad generalmente dura solo unos minutos. (Krishna, 2020, https://bit.ly/3lUDudp)
RDS es una base de datos de instancia única. Como resultado, el usuario solo puede escalar para
abordar la creciente demanda de cargas de trabajo de escritura. Sin embargo, RDS también ofrece la
capacidad de crear múltiples réplicas de lectura para atender solicitudes de lectura provenientes de
usuarios de aplicaciones y usuarios de bases de datos en la instancia de RDS. (Krishna, 2020,
https://bit.ly/3lUDudp)
Las instancias de RDS se pueden implementar en varias zonas de disponibilidad para aumentar la
disponibilidad del servicio de base de datos. En una configuración de zona de disponibilidad múltiple,
RDS garantiza que el modo de espera esté actualizado con la instancia de RDS de producción. El
inicio de un proceso de conmutación por error ocurre automáticamente cuando falla una instancia de
producción.
Es una buena práctica para los entornos de producción tener un modo de espera en una zona
de disponibilidad diferente, preferiblemente una región, para mitigar los impactos de una falla
completa de la zona de disponibilidad. Aunque estos casos son raros, ocurren ocasionalmente. En
caso de una falla de hardware subyacente, RDS reemplaza el nodo de cálculo. (Krishna, 2020,
https://bit.ly/3lUDudp)
Cifrado
–
Los servicios de bases de datos en la nube pública generalmente vienen con capacidades de cifrado en reposo y en
tránsito. RDS ofrece sólidas capacidades de cifrado. Los usuarios pueden optar por administrar sus claves de cifrado
mediante AWS Key Management Service (KMS). Las capacidades de cifrado no se limitan a la instancia de producción.
Todas las instantáneas, copias de seguridad, réplicas de lectura y nodos en espera también están cifrados. SSL se utiliza
para proteger los datos en tránsito. (Krishna, 2020, https://bit.ly/3lUDudp)
Redes
–
El énfasis en la seguridad en la capa de red también es vital. Una instancia de base de datos se puede aislar del resto del
entorno ejecutando la instancia en su VPC. RDS también está bien integrado con servicios de AWS como firewall y VPN.
(Krishna, 2020, https://bit.ly/3lUDudp)
AWS Identity and Access Management
–
AWS Identity and Access Management (IAM) se integra con todos los servicios de AWS. IAM permite a los clientes
controlar el acceso a las instancias de RDS y otros recursos de la nube que se ejecutan en AWS. Los controles de
acceso basados en roles otorgan permisos específicos a los usuarios sobre las acciones que pueden realizar en la
instancia de RDS. (Krishna, 2020, https://bit.ly/3lUDudp)
Precios de RDS
–
Los precios de RDS son similares a otros servicios de bases de datos de AWS como Amazon Redshift. Pago por uso y
precios de instancia reservada con compromisos de varios años disponibles para que los clientes elijan. El precio de
pago por uso se aplica a entornos inferiores, mientras que los entornos de producción y de espera suelen ejecutarse en
instancias reservadas. (Krishna, 2020, https://bit.ly/3lUDudp)
Pros Contras
Fuente: Amazon Web Services [Amazon Web Services]. (2012). Amazon DynamoDB - What's It All About? [YouTube]. Recuperado de
https://www.youtube.com/watch?v=nMhWJJACZSA
Introducción
DynamoDB es una base de datos sin servidor NoSQL proporcionada por AWS. Sigue una estructura
de tienda de valor clave y adopta una arquitectura distribuida para alta disponibilidad y escalabilidad.
Los datos se organizan en tablas, que contienen elementos. Cada elemento contiene un conjunto de
pares de atributos clave-valor. Hay dos tipos especiales de atributos: el primary-key, que
funciona de manera similar a un ID de artículo, y el sort-key, que permite ordenar los artículos.
Dynamo admite índices secundarios. Se pueden utilizar para hacer referencia y ordenar artículos por
diferentes primary-key y sort-keys. Es una base de datos sin esquema, en la que los elementos
pueden tener diferentes conjuntos de atributos. Esto permite índices dispersos: compuestos solo por
elementos que contienen un atributo particular. (Dashbird, 2020, https://bit.ly/3xFHX69)
Conceptos principales
Tabla: como colección que puede contener una cantidad prácticamente infinita de elementos, también
puede tener índices secundarios asociados.
Atributo: un par clave-valor que contiene puntos de datos informativos sobre un elemento en la tabla
de la base de datos.
Clave principal: una forma especial de atributo que se utiliza para hacer referencia a elementos, de
manera similar a un ID de elemento.
Clave de clasificación: otra forma especial de atributo que se utiliza para organizar elementos en un
orden de clasificación diferente.
Flujos: un flujo constante de operaciones de cambio de estado ejecutadas contra una tabla.
Filtro: reglas para aplicar después de que se haya ejecutado una consulta o escaneo, pero antes de
que los resultados se devuelvan al solicitante. (Dashbird, 2020, https://bit.ly/3xFHX69)
Visión general
DynamoDB tiene dos tipos básicos de modelos de precios, según los modos de capacidad:
Capacidad aprovisionada.
Como sugiere el nombre, bajo demanda asignará recursos a medida que la aplicación los necesite, sin
ningún aprovisionamiento previo. Todos los costos se cobran por uso.
En el modo de capacidad prevista, los desarrolladores pueden elegir cuántos recursos recibirá cada
tabla de base de datos. También pueden elegir si DynamoDB puede escalar automáticamente los
recursos si es necesario, o si la base de datos debe comenzar a limitar las solicitudes una vez que se
alcanza la capacidad aprovisionada. (Dashbird, 2020b, https://bit.ly/2VHkd4L)
Conceptos básicos
Operación de lectura: una llamada a la API para leer datos de una tabla de DynamoDB.
Operación de escritura: una llamada a la API para insertar, modificar o eliminar un elemento en una
tabla de DynamoDB.
Cada operación de lectura puede leer hasta 4 KB de datos. Si el elemento es más grande, DynamoDB
cobrará varias operaciones de lectura, redondeadas al siguiente múltiplo de 4 KB. Las lecturas
consistentes eventuales se cobran solo la mitad de la operación. Las operaciones de lectura dentro de
las transacciones se cobran el doble del precio normal.
Cada operación de escritura puede escribir hasta 1 KB de datos. Para elementos más grandes,
DynamoDB cobrará varias operaciones de escritura, redondeadas al siguiente múltiplo de 1 KB. Las
operaciones de escritura dentro de las transacciones cuestan el doble del precio normal.
Tenga en cuenta que, al utilizar índices secundarios, DynamoDB necesita replicar todos los cambios
de la tabla principal en los índices. Se contará una operación de escritura adicional por cada índice
asociado. (Dashbird, 2020b, https://bit.ly/2VHkd4L)
El uso de la capacidad se cobra por unidades. Si la base de datos no llega a un millón de operaciones,
no se redondea al millón más cercano, sino que se cobra solo por las solicitudes realmente utilizadas.
Dynamo también cobra la cantidad de datos almacenados al precio de $ 0.25 por GB al mes.
DynamoDB corrientes tienen un coste de $ 0,02 por cada 100.000 operaciones de lectura.
Los datos solicitados por solicitantes fuera de la región de AWS donde se implementa la tabla de
DynamoDB se cobran a $ 0.09 por GB. (Dashbird, 2020b, https://bit.ly/2VHkd4L)
La capa gratuita de AWS le permite adquirir experiencia práctica sin cargo en los servicios de AWS.
Los siguientes beneficios de DynamoDB se incluyen como parte de la capa gratuita de AWS. Cada
beneficio se calcula mensualmente de acuerdo con la región y la cuenta de pago.
25 GB de almacenamiento de datos.
Precios aprovisionados
En el modo aprovisionado, la aplicación puede emitir varias consultas de lectura, por ejemplo, y cobrar
solo una unidad de capacidad. Si todas las solicitudes son secuenciales, consumen la misma
capacidad de lectura asignada.
Es posible reservar capacidad por adelantado con un compromiso mensual en trozos de 100 unidades
de capacidad (lectura o escritura). El precio es el siguiente:
100 operaciones con capacidad de lectura reservada: $ 150.00 (1 año, pagado por adelantado) o $
0.0128 por hora.
100 operaciones con capacidad de lectura reservada: $ 30,00 (1 año, pagado por adelantado) o $
0,0025 por hora.
La capacidad reservada puede reducir drásticamente los costos con DynamoDB. Sin embargo, si no
se utilizan, no queda crédito para el siguiente ciclo de facturación.
Las tablas globales (replicación multirregional) se cobran a $ 0,000975 por capacidad de lectura
consumida.
Backup, DynamoDB Streams y transferencia de datos tienen el mismo precio que el modo On-
Demand. (Dashbird, 2020b, https://bit.ly/2VHkd4L)
C O NT I NU A R
Lección 2 de 3
Utiliza verificaciones de estado del sistema para conocer el estado de los miembros del grupo de
aplicaciones (servidores de aplicaciones) y enruta el tráfico de manera adecuada a los servidores
disponibles, administra la conmutación por error a los objetivos de alta disponibilidad o activa
automáticamente la capacidad adicional. (Avi Networks, 2020, https://bit.ly/3CJXeGQ)
Elastic Load Balancing escala el tráfico a una aplicación a medida que la demanda cambia con el
tiempo. También escala las instancias de equilibrio de carga de forma automática y bajo demanda.
Dado que el equilibrio de carga elástico utiliza algoritmos de enrutamiento de solicitudes para distribuir
el tráfico de aplicaciones entrante en varias instancias o escalarlas según sea necesario, aumenta la
tolerancia a fallas de sus aplicaciones. (Avi Networks, 2020, https://bit.ly/3CJXeGQ)
¿Cómo funciona un Elastic Load Balancer?
Elastic Load Balancing escala su balanceador de carga a medida que cambia el tráfico hacia sus
servidores. Enruta el tráfico de aplicaciones entrante a través de instancias automáticamente. El
equilibrador de carga elástico actúa como punto de contacto para el tráfico entrante y, al monitorear el
estado de las instancias, el servicio de equilibrio de carga elástico puede enviar las solicitudes de
tráfico a las instancias en buen estado. (Avi Networks, 2020, https://bit.ly/3CJXeGQ)
¿Cuáles son las diferencias básicas entre Classic Load Balancer y Application Load Balancer?
Equilibrio de carga clásico. Esto se parece más al equilibrio de carga tradicional, pero los
dispositivos virtuales reemplazan el hardware físico para distribuir de manera uniforme las solicitudes
entrantes y garantizar una experiencia de usuario limpia y rápida.
“Classic Load Balancer admite EC2 Classic, mientras que Application Load Balancer no lo hace” (Sumo Logic,
2019, https://bit.ly/3jOYi3t).
Como práctica recomendada, desea al menos dos equilibradores de carga en un par agrupado. Si
solo tiene un equilibrador de carga y falla por cualquier motivo, todo su sistema fallará. Esto se conoce
como punto único de falla (SPOF). Con los balanceadores de carga, el número que necesita depende
de la cantidad de tráfico que maneja y de la disponibilidad de tiempo de actividad que desee.
Generalmente, cuantos más balanceadores de carga tenga, mejor. (Sumo Logic, 2019,
https://bit.ly/3jOYi3t)
El ELB clásico tiene una serie de funciones disponibles para ayudar a proporcionar alta disponibilidad,
monitoreo y mejor seguridad para su pila de aplicaciones.
AWS Classic Load Balancer (CLB) opera en la capa 4 del modelo OSI. Lo que esto significa es que el
equilibrador de carga enruta el tráfico entre los clientes y los servidores backend según la dirección IP
y el puerto TCP.
Por ejemplo, un ELB en una dirección IP determinada recibe una solicitud de un cliente en el puerto
TCP 80 (HTTP). Luego, enrutará esa solicitud según las reglas configuradas previamente al configurar
el balanceador de carga a un puerto específico en uno de un grupo de servidores backend. En este
ejemplo, el puerto en el que el equilibrador de carga enruta al servidor de destino a menudo será el
puerto 80 (HTTP) o 443 (HTTPS).
El servidor de destino backend cumplirá la solicitud del cliente y enviará los datos solicitados al ELB,
que luego reenviará la respuesta del servidor backend al cliente. Desde la perspectiva del cliente, esta
solicitud parecerá haber sido cumplida en su totalidad por el ELB. El cliente no tendrá conocimiento
del servidor backend o de los servidores que satisfacen las solicitudes del cliente. (Sumo Logic, 2019,
https://bit.ly/3jOYi3t)
Comprensión del balanceador de carga de aplicaciones
AWS Application Load Balancer (ALB) opera en la Capa 7 del modelo OSI. En la Capa 7, ELB tiene la
capacidad de inspeccionar el contenido a nivel de aplicación, no solo la IP y el puerto. Esto le permite
enrutar basándose en reglas más complejas que con el Classic Load Balancer.
En otro ejemplo, un ELB en una IP determinada recibirá una solicitud del cliente en el puerto 443
(HTTPS). Application Load Balancer procesará la solicitud, no solo al recibir el puerto, sino también al
mirar la URL de destino.
Varios servicios pueden compartir un solo equilibrador de carga mediante el enrutamiento basado en
rutas. En el ejemplo que se da aquí, el cliente podría solicitar cualquiera de las siguientes URL:
El Application Load Balancer conocerá cada una de estas URL en función de los patrones
establecidos al configurar el equilibrador de carga y puede enrutar a diferentes clústeres de servidores
según las necesidades de la aplicación. Las reglas también se pueden agregar en un momento
posterior a medida que agrega nuevas funciones a su pila.
El Application Load Balancer también se integra con EC2 Container Service (ECS) mediante
Service Load Balancing. Esto permite el mapeo dinámico de servicios a puertos, como se especifica
en la definición de tarea de ECS. Se pueden apuntar varios contenedores en la misma instancia EC2,
cada uno de los cuales ejecuta diferentes servicios en diferentes puertos. El programador de tareas de
ECS agregará automáticamente estas tareas al ALB. (Sumo Logic, 2019, https://bit.ly/3jOYi3t)
Hay algunos conceptos clave que necesitará conocer al configurar su ALB. En primer lugar, están las
reglas. Cada regla especifica una condición, un grupo objetivo y una prioridad.
Las reglas determinan qué acción se toma cuando una regla coincide con una solicitud del cliente. Se
pueden definir hasta 10 reglas basadas en URL en el ALB.
La condición es el patrón de ruta que desea que el ALB evalúe para que pueda enrutar las
solicitudes.
El grupo objetivo se utiliza para enrutar solicitudes a objetivos registrados como parte de una acción
para una regla. Los grupos de destino especifican un protocolo y un puerto de destino. Las
comprobaciones de estado se pueden configurar por grupo objetivo. Un ALB puede dirigirse a varios
grupos objetivo.
Los objetivos especifican los puntos finales y se registran en el ALB como parte de un grupo
objetivo.
La prioridad le dice al ALB en qué orden evaluar las reglas. Las reglas se evalúan numéricamente en
orden de menor a mayor valor. Cuando una regla coincide con una solicitud, el tráfico se enrutará al
grupo objetivo especificado. (Sumo Logic, 2019, https://bit.ly/3jOYi3t)
Amazon EC2 Auto Scaling te ayudará a garantizar que tenga la cantidad correcta de instancias de
Amazon EC2 disponibles para manejar la carga de su aplicación.
Si especifica políticas de escalado, Amazon EC2 Auto Scaling puede iniciar o finalizar instancias a
medida que la demanda en su aplicación aumenta o disminuye.
Por ejemplo, puede crear grupo de Auto Scaling que tenga un tamaño mínimo de una instancia, una
capacidad deseada de dos instancias y un tamaño máximo de cuatro instancias. Las políticas de
escalado que defina ajustan el número de instancias, dentro de su número mínimo y máximo de
instancias, según los criterios que especifique. (González, 2019, https://bit.ly/2UbVkND)
Componentes de autoescalado
Los grupos
–
Sus instancias de EC2 están organizadas en grupos para que puedan ser tratadas como una unidad lógica para fines de
escalado y administración. Cuando crea un grupo, puede especificar su número mínimo, máximo y el número deseado de
instancias de EC2. (González, 2019, González, 2019, https://bit.ly/2UbVkND)
Plantillas de configuración
–
Su grupo utiliza una plantilla de inicio o una configuración de inicio como plantilla de configuración para sus instancias de
EC2. Puede especificar información como el ID de AMI, el tipo de instancia, el par de claves, los grupos de seguridad y la
asignación de dispositivos de bloque para sus instancias. (González, 2019, González, 2019, https://bit.ly/2UbVkND)
Opciones de escalado
–
Amazon EC2 Auto Scaling le ofrece varias formas de escalar sus grupos de Auto Scaling. Por ejemplo, puede configurar
un grupo para escalar en función de la aparición de condiciones específicas (escala dinámica) o en una programación.
Puede especificar el número máximo de instancias en cada grupo de Auto Scaling. Amazon EC2 Auto Scaling garantizara
así que su grupo nunca supere este tamaño.
Si especifica la capacidad deseada, ya sea cuando cree el grupo o en cualquier momento posterior, Amazon EC2 Auto
Scaling garantiza que su grupo tenga tantas instancias. (González, 2019, González, 2019, https://bit.ly/2UbVkND)
El uso de AWS Auto Scaling puede ser tan perjudicial como beneficioso. A continuación,
estudiaremos las mejores prácticas a la hora de autoescalar nuestras instancias y lograr mejores
resultados en las aplicaciones.
AWS Auto Scaling es un proceso complejo que requiere la combinación correcta de configuración,
pruebas y supervisión para funcionar correctamente. La supervisión diligente de la aplicación y el
ajuste frecuente de su plan de escalado automático le ayudarán a obtener las recompensas posibles.
A continuación, se muestran algunas lecciones que hemos aprendido para mejorar el ajuste de escala
automático de AWS, para que usted no tenga que hacerlo. (Starmer, 2020, https://bit.ly/3CGjPEa)
Al comprender las métricas que controlan los recursos, puede comprender cómo
administrarlos para un mejor rendimiento. Esto es importante porque ciertas métricas,
como la utilización de la CPU, afectan su rendimiento. Estos valores le permitirán
determinar cómo necesita escalar sus recursos en relación con su carga de trabajo.
¿Por qué necesita AWS Auto Scaling? Vamos a analizarlo. Auto Scaling funciona
mediante el diseño de un grupo de Auto Scaling que administra instancias detrás de un
equilibrador de carga. Esto se hace para que el rendimiento se mantenga constante
aumentando la capacidad cuando aumenta la carga (para asegurar el rendimiento) y
disminuyendo la capacidad cuando la carga disminuye (para ahorrar costos). El ajuste
de escala automático de AWS se puede utilizar para cualquier aplicación, ya sea con
estado o sin estado. (Starmer, 2020, https://bit.ly/3CGjPEa)
4 Aprender cómo funcionan los grupos de Auto Scaling con Dynamic Auto Scaling
Para configurar sus recursos, debe especificarlos en la función AWS Auto Scaling
Groups. Los grupos de Auto Scaling definen un recurso máximo y mínimo que define
cuándo los recursos se lanzarán o eliminarán dinámicamente. AWS permite asignar
grupos de ajuste de escala automático a Elastic Load Balancers (ELB) para asegurarse
de que los recursos recién creados se descubran y utilicen sin problemas. (Starmer,
2020, https://bit.ly/3CGjPEa)
A menos que esté ejecutando una aplicación muy genérica, por ejemplo, un servidor de
WordPress, debería considerar mirar más allá de las métricas predeterminadas
proporcionadas por CloudWatch. Si se toma el tiempo de codificar una métrica
personalizada, puede ajustar el rendimiento de la aplicación en función de lo que le
importa específicamente. Incluso si define métricas específicas para su aplicación,
también puede usar las métricas predeterminadas. Las métricas personalizadas se
crean utilizando Python y el marco de Boto y se expresan como funciones booleanas.
Para configurar con precisión sus políticas de escalado automático, debe definirlas en
relación con sus Zonas de disponibilidad (AZ). La planificación previa de una política de
escalamiento basada en porcentajes que tenga en cuenta los costos variados entre las
diferentes regiones y zonas de disponibilidad puede resultar en un rendimiento óptimo y
costos reducidos. (Starmer, 2020, https://bit.ly/3CGjPEa)
6 Integrar servicios de cola simple (SQS)
“Es posible emparejar un SQS con una alerta de CloudWatch sobre la longitud de la cola.
CloudWatch puede activar un evento de escalado cuando las colas superan una longitud
predefinida” (Starmer, 2020, https://bit.ly/3CGjPEa)
Si bien las instancias EC2 son el objetivo más común de Auto Scaling, otros servicios
de AWS también pueden beneficiarse de él. Desde la perspectiva de la función de la
aplicación, los servicios de base de datos (por ejemplo, AWS DynamoDB) son
probablemente el segundo servicio más popular para escalar. Si bien existen ligeras
diferencias en las políticas entre Auto Scaling, si ha estado creando planes de escalado
automático para sus instancias EC2, escalar el almacenamiento de AWS DynamoDB o
Amazon RDS le resultará familiar. (Starmer, 2020, https://bit.ly/3CGjPEa)
Hasta ahora hemos analizado cómo escalar con los límites de recursos que ha
predefinido, también conocido como escalado dinámico. AWS también admite el escalado
predictivo según el rendimiento del sistema anterior según las métricas que haya
configurado. Pronostica y asegura que se disponga de una capacidad mínima de recursos
basada en el modelo predictivo. Debido a que el escalado predictivo asegura una
capacidad mínima de recursos, puede combinarlo con políticas de escalado dinámico para
que los aumentos de carga inesperados también se administren sin problemas. (Starmer,
2020, https://bit.ly/3CGjPEa)
Fuente: [Imagen sin título sobre Amazon CloudWatch]. (s.f.). Recuperado de https://cloudpack.media/wp-
content/uploads/2016/04/20160306153430.png
Cabe señalar que este servicio se configura de forma automática y de acuerdo a las demandas del
negocio. Además, al ser un servicio escalable, permite monitorear métricas de servicios adicionales
de AWS o aplicaciones externas. Lo que más llama la atención de CloudWatch es que ofrece una vista
unificada de todos los recursos y servicios contratados, ya sea que se encuentren alojados en
servidores locales o en la nube. (Redacción Apser, 2019, https://bit.ly/3lYCg12)
Como ya mencionamos, este servicio es muy sencillo de gestionar gracias a su gran capacidad de
integración. Entre los beneficios que proporciona podemos encontrar:
Seguimiento fácil y rápido: todos los datos e informes que proporciona CloudWatch permiten a los
usuarios hacer un seguimiento de la aplicación, uso de recursos, problemas operativos y limitaciones.
Esto ayuda a agilizar las operaciones en el área de IT.
Compatible con diversas instancias: aunque su uso es más común con instancias EC2, también
puede monitorear volúmenes de Amazon Elastic Book Store (EBS) o Elastic Load Balancers (ELB) e
instancias RDS, además de otras fuentes externas.
Siempre alerta: Amazon CloudWatch permite establecer alarmas o automatizar acciones basadas en
umbrales predefinidos o algoritmos. Ofrece herramientas como el Auto Scaling para EC2 o
CloudWatch Events para servicios Lambda, SNS y CloudFormation.
Supervisión básica: con este servicio se podrán seleccionar métricas específicas para su rastreo y
análisis. (Redacción Apser, 2019, https://bit.ly/3lYCg12)
Opciones de monitoreo
Por si fuera poco, CloudWatch cuenta con dos tipos de monitoreo adaptados a las necesidades y
capacidad de inversión de las empresas en cuanto a recursos EC2:
Monitoreo básico: no se requiere tarifa adicional a la que se paga de inicio. Incluye siete métricas
preseleccionadas y otras tres de verificación de estado.
Monitoreo detallado: con un cargo adicional, en donde se aumenta la frecuencia de todas las
métricas en intervalos de un minuto. (Redacción Apser, 2019, https://bit.ly/3lYCg12)
1. Métricas
Puedes ver las gráficas estadísticas de tus métricas publicadas con la Consola de Administración de
AWS. CloudWatch almacena la información métrica como una serie de puntos de data (data points),
cada punto está asociado con una etiqueta de tiempo. Incluso puedes publicar un conjunto estadístico
con un grupo de puntos de data.
2. Alarmas
Las características de las alarmas en CloudWatch te permite recibir notificaciones cada vez que tus
métricas se salgan de los niveles configurados, ya sea a la baja o al alza (…).
3. Escabilidad
Escabilidad puede implementarse con la ayuda de CloudWatch. Los clientes de Nub8 usan Amazon
CloudWatch con autoescabilidad para monitorear el uso del CPU para escalar desde 3 instancias de
Amazon EC2 a 9 durante los períodos pico de forma automática.
4. Autorrecuperación
La auto-recuperación puede ser implementada con la ayuda de CloudWatch, si una instancia falla un
chequeo del sistema, puedes usar CloudWatch para automáticamente reiniciarla o recuperarla.
5. Costos operativos
CloudWatch provee percepciones en tiempo real, así podrás mejorar los costos operacionales y los
recursos de AWS. (Nub8, 2020, https://bit.ly/3xH8M9O)
C O NT I NU A R
Lección 3 de 3
Referencias
Amazon Web Services [Amazon Web Services] (2019). Monitor AWS Resources Using Amazon CloudWatch
Dashboards [YouTube]. Recuperado de https://www.youtube.com/watch?v=I7EFLChc07M
Amazon Web Services [Amazon Web Services]. (2012). Amazon DynamoDB - What's It All About? [YouTube].
Recuperado de https://www.youtube.com/watch?v=nMhWJJACZSA
Amazon Web Services [Amazon Web Services]. (2018). Understanding Amazon Relational Database Service
(RDS) [YouTube]. Recuperado de https://www.youtube.com/watch?v=eMzCI7S1P9M
Apoorva, N. (2019). What are some advantages and disadvantages of using CloudWatch for monitoring?
Recuperado de https://www.quora.com/What-are-some-advantages-and-disadvantages-of-using-CloudWatch-for-
monitoring.
Arquitectura AWS [Arquitectura AWS]. (2017). Cómo crear una red VPC, security groups, Gateway, ACL en
ambiente de alta disponibilidad en AWS [YouTube]. Recuperado de https://www.youtube.com/watch?
v=rgUk0wGMmqo
Arranz, M. [Miguel Arranz Videocursoscloud] (2016). Usar Auto Scaling con la cuenta gratuita [YouTube].
Recuperado de https://www.youtube.com/watch?v=BhNZd_cxxko
Ashish, P. (s.f.). AWS — Amazon RDS vs. Amazon EC2 Relational Databases — Comparison. Recuperado de
https://medium.com/awesome-cloud/aws-amazon-rds-vs-amazon-ec2-relational-databases-comparison-
b28eb0802355
Ibáñez, E. y Marco, E. (2017). Cómo montar tu propia nube con la ayuda de AWS y Cloudformation. Recuperado
de https://www.paradigmadigital.com/dev/montar-nube-la-ayuda-aws-cloudformation/.
Kalerolinex [Kalerolinex]. (2017). AWS050: VPC - Ejemplo gráfico de una Virtual Private Cloud [YouTube].
Recuperado de https://www.youtube.com/watch?v=8fhbmfXycjs
Krishna, (2020). Pros y contras de Amazon RDS: descripción general detallada [entrada de blog]. Recuperado de
https://sarasanalytics.com/blog/amazon-rds-pros-and-cons
Neeru, J. (2017). Basics of VPC Peering – Amazon Virtual Private Cloud [entrada de blog]. Recuperado de
https://www.whizlabs.com/blog/vpc-peering-basics/
Open Data Science (2020). An Introduction to AWS Networking — Virtual Private Cloud. Recuperado de
https://medium.com/@ODSC/an-introduction-to-aws-networking-virtual-private-cloud-1639a91c67c1
Redacción Apser (2019). Un vistazo a CloudWatch de Amazon Web Services. Recuperado de https://apser.es/un-
vistazo-a-cloudwatch-de-amazon-web-services/.
Squadex, (2018). Big Data Platform & Next Generation Business Intelligence. Recuperado de
https://squadex.com/big-data-analytics/big-data-platform-next-generation-business-intelligence/
Starmer, J. (2020). 8 lecciones que hemos aprendido sobre AWS Auto Scaling. Recuperado de
https://opsani.com/blog/8-lessons-learned-aws-auto-scaling/
Sumo Logic (2019). AWS Elastic Load Balancer: el Classic Load Balancer frente al Application Load Balancer.
Recuperado de https://webcache.googleusercontent.com/search?
q=cache%3APy4oyCyTk7cJ%3Ahttps%3A%2F%2Fwww.sumologic.com%2Finsight%2Faws-elastic-load-
balancers-classic-vs-application%2F+&cd=1&hl=es&ct=clnk&gl=ar
Vinoth, G. (s.f.). High Availability and Disaster Recovery for Application Architects. Recuperado de
https://medium.com/@vinot84/high-availability-and-disaster-recovery-for-application-architects-a05378ccb094