Blog de Amazon Web Services (AWS)

Un mar de máquinas

Amazon Web Services (AWS) sigue definiendo la nube con un conjunto sin igual de servicios para los desarrolladores de TI, y crunchers de datos.

¿Es posible reseñar Amazon Web Services en un artículo? De ninguna manera. ¿Un libro? Tal vez uno largo, preferiblemente con varios volúmenes. La realidad es que el negocio en la nube de Amazon es más grande que nunca, y ha generado nuevas características, servicios y opciones más rápidas que cualquier persona podría comenzar a seguir. La compañía está tragando la Internet mediante la entrega de la forma más sencilla para crear aplicaciones complejas, altamente escalables y ricas en datos.

El alcance del proyecto es increíble. Hay, en mi exploración, al menos 10 formas diferentes para almacenar sus datos y cuatro maneras diferentes para comprar computación en bruto. Si necesita más que potencia bruta, Amazon está a la cabeza en la entrega de versiones en la nube de muchas herramientas sofisticadas para el análisis de grandes conjuntos de datos, como Hadoop, Spark y Elasticsearch.

Estas herramientas están cambiando el juego para los programadores y analistas de datos, dándoles un menor número de razones para escribir código fresco y más razones para vincular diferentes servicios de alta gama de AWS. Si bien la potencia de la computación en bruto sigue siendo el foco, las nuevas herramientas y servicios proponen valor atractivo que pueden tener un buen sentido financiero. Escribir su propio código le da la libertad y el poder para trasladarse a otro lugar, pero confiando cada vez más en que el stack de Amazon puede ser dramáticamente más barato y más rápido. Es una decisión compleja.

Un mar de máquinas
El núcleo de la nube de AWS sigue siendo la colección de servidores virtuales conocidos como Elastic Compute Cloud (EC2). Si quiere una máquina, vaya a la página web de AWS, haga clic en algunos botones, y tendrá root. Sin embargo, cada vez más personas están utilizando la API. ¿Dije “personas”? También me refiero a bots, ya que la nube es cada vez más automatizada. Si va a hacer algo más que poner en marcha una única instancia para la experimentación, es mejor escribir código para volver a acelerar sus máquinas. Hay SDK para Java, .NET, PHP, Python, e incluso para el lenguaje Go de Google.

La gama de máquinas que Amazon alquila es cada vez más grande y más compleja. Existen al menos nueve clases generales de instancias disponibles -y esto es solo cuando se tienen en cuenta las máquinas que figuran como “generación actual”. Todavía puede alquilar instancias de familias anteriores de hardware, si es que su software parece necesitarlo por alguna razón. Cada una de las clases generales de máquina está disponible en varios modelos configurados con diferentes cantidades de memoria RAM y almacenamiento en disco local.

Es posible que haya demasiadas opciones en la lista de Amazon sobre los tipos de instancias como para que los simples mortales examinen y debatan. El i2.8xlarge, por ejemplo, viene con 244GB de memoria RAM y 32 CPU virtuales que bombean 104 unidades elásticas de cálculo (ECUs, por sus siglas en inglés), la métrica que Amazon utiliza para medir la potencia de sus máquinas. El d2.8xlarge viene con 244GB de memoria RAM y 36 CPUs virtuales que bombean 116 ECUs.

Estos ejemplos utilizan diferentes versiones de Xeon de Intel, y son solo dos entre docenas de opciones. Me rascaba la cabeza preguntándome cómo elegir. Si tiene un proyecto serio, querrá comparar su código en distintas instancias y averiguar la velocidad a la que se ejecuta su aplicación. Si está alquilando pocas máquinas para el trabajo eventual, puede que no tenga sentido pensar demasiado en ello. Pero si está ejecutando cientos de máquinas para grandes proyectos, la evaluación comparativa es la mejor solución. La métrica ECU, después de todo, no es más que un promedio mediante algunos puntos de referencia estándar. Como dicen en el negocio de automóviles, su experiencia puede variar.

Decisiones, decisiones
La elección del hardware es solo el principio. Amazon ha aumentado gradualmente el número de opciones, a medida que aprende más y más acerca de lo que puede salir mal, y la API refleja esta experiencia. Ahora hay un botón para “habilitar la protección de la terminación”, una especie de interruptor de seguridad para evitar borrar la instancia por error cuando está depurando su lista de máquinas que funcionan. Una vez que la activa, tiene que desactivarlo de forma explícita. Lo sé, lo sé, es probable que escriba un script para desactivarlo automáticamente, pero si lo hace, la culpa será suya. Amazon lo intentó. Esta es una de las pocas opciones que hacen la vida un poco más fácil -pero no más simple- en la nube de Amazon.

Las preguntas más difíciles vienen cuando decide cómo pagar. Puede alquilar y pagar el precio completo o buscar tasas más bajas. Amazon ofrece un mercado que le permite buscar capacidad adicional, y puede fluctuar de acuerdo a la demanda. Estos flujos pueden ser muy dramáticos porque algunos de los grandes servicios de video streaming a menudo asumen el control de las nubes los viernes y sábados por la noche.

Los ahorros pueden ser sorprendentemente grandes, pero no tiene forma de saber cuál será el precio final. En el momento en que estoy escribiendo esto, una instancia m3.medium cuesta 91 centavos de dólar por hora, mucho más bajo que el precio de lista de 6,7 centavos por hora. Todo el mundo pone sus ofertas para ejecutar su trabajo, y si el precio de la oferta ganadora se eleva por encima de su oferta máxima, y su máquina se apaga.

Puede pagar un poco más por ciertas garantías. Si desea que su máquina funcione durante al menos una hora, el precio (en el momento en que estoy escribiendo esto) salta a 3,7 centavos de dólar, aún mucho más bajo que el precio normal.

El modelo de precios no está dirigido solamente a una subasta continua. Si desea estabilidad en lugar de flexibilidad, aún hay más opciones en las listas de precios. Si está dispuesto a comprometerse a uno o tres años, puede ahorrar un 30%, 40%, o hasta 60% mediante el pago por adelantado y el bloqueo del precio -sin subastas, solo precios más bajos.

Todo esto significa que sus contadores tendrán un papel tan importante que desempeñar como sus programadores. Usted querrá sentarlos a los dos para diseñar la arquitectura debido a que el modelo de precios está destinado a fomentar el uso eficiente de los recursos. Los programadores tienen que preguntarse una y otra vez si pueden impulsar el cómputo en un trabajo por lotes que se pueda ejecutar en ocasiones cuando el costo de la computación cae en el mercado.

La invención de la nube
Es fácil encontrar ejemplos de servicios en la nube que se originaron con Amazon. MapReduce, almacenamiento de datos, procesamiento de flujo -AWS los tuvo primero. Solo que ahora los competidores comienzan a emular Lambda, servicio de computación de Amazon orientado a eventos sin servidor. Ninguna nube competidora tiene un par para Amazon Aurora, servicio MySQL trucado de Amazon, o la gama de bases de datos que Amazon ofrece como servicio.

Amazon sigue innovando, así como emulando a sus competidores. Elastic Beanstalk es una colección de paquetes de software que automatiza el proceso de construcción de un conjunto de máquinas que crece y se contrae con la demanda. Es un sistema más general que es compatible con una serie de plataformas de servidores comunes para aplicaciones escritas en Java, .Net, Python, PHP, Nodo, Ruby y Go. Las secuencias de comandos configuran automáticamente el equilibrio de carga y máquinas, inicia y detiene las instancias EC2 básicas, según sea necesario.

El Beanstalk es más como un conserje que un marco independiente que abarca todo. Ejecuta el código en instancias de EC2 genéricas que aparecerán en la lista de máquinas -importante tener en cuenta esto si observa que se inician nuevos casos. Una vez pasé varias horas matando instancias de zombies que seguían reviviendo antes de recordar la aplicación experimental Elastic Beanstalk que creé. Se mantuvo descubriendo que algo había matado a la instancia que faltaba, y diligentemente lo traía de nuevo a la existencia.

AWS Elastic Beanstalk es nominalmente libre. No tiene que pagar nada extra por sus servicios, pero hay que pagar las instancias de EC2 que se ejecutan en su nombre.

El contenedor de servicios EC2 de Amazon lleva el mismo enfoque con los contenedores Docker. Amazon tiene su propio pequeño agente que pondrá en marcha instancias de EC2 a nombre de su contenedor, a continuación, instalará el contenedor de estibador. Usted no paga por el servicio de contenedores, solo por los recursos subyacentes.

Alto y más alto
No todas las herramientas son gratuitas para alquilar más máquinas. Las instancias de clúster para Elastic MapReduce, conjunto de herramientas basadas en Hadoop de Amazon, cuestan alrededor de un 25% más en los precios de catálogo EC2 subyacentes. Amazon ha creado un paquete bastante estándar de las principales herramientas (Spark, Hadoop, Presto, Pig, Colmena) y las ha integrado con el sistema de almacenamiento S3 de Amazon. Si está rompiendo registros o datos en otras partes de la nube de Amazon, analizarlas con un clúster de Elastic MapReduce puede tener mucho sentido. La obtención de los datos en bruto de AWS lleva tiempo y ancho de banda.

Amazon también está escalando en la pila, proporcionando respuestas en vez de recursos informáticos. Amazon Web Services hace que la máquina de aprendizaje sea más sencilla para los desarrolladores o analistas de negocios. En última instancia, Amazon venderá también analítica.

Una de las más intrigantes nuevas incorporaciones a la nube son los datos públicos que Amazon está reuniendo para nosotros. Por ejemplo, se puede masticar en las imágenes de radar de una red de 160 sitios de radar Doppler de alta resolución, que proporcionan datos sobre la precipitación atmosférica y el movimiento en intervalos de cinco minutos. Amazon está colocando una serie de grandes conjuntos de datos públicos con la esperanza de que van a atraer a los proyectos que alquilan las instancias de EC2. Si su negocio consiste en el clima -pista comerciantes de productos básicos- es mucho más fácil jugar.

Servicios como éstos muestran cómo Amazon planea construir la nube en el futuro. La compañía ha dominado el proceso de entrega de un producto básico, y continúa con la mejora del servicio para hacer frente a las necesidades de una amplia base de usuarios. En la actualidad hay tantas opciones que puede tomar horas de investigación antes de que esté listo para empujar el botón y alquilar algunas -o no- máquinas.

Los nuevos servicios como el AWS Lambda y Amazon Machine Learning son capas limpias destinadas a abstraer la complejidad de simplemente alquilar y configurar instancias de EC2. Después de todo, nadie quiere ejecutar servidores. Queremos implementar código, recoger datos, y encontrar respuestas. Podemos esperar que Amazon continúe empujando el controlador, hacia la cima, para ofrecer servicios de mayor nivel que barren los servidores reales debajo de la alfombra. Mientras tanto, Amazon continúa ofreciendo la más amplia gama de tipos de instancias, junto con el conjunto más rico de servicios y opciones para sacar el máximo provecho de ellos.

-Peter Wayner, InfoWorld (EE.UU.)