Header Ads Widget

Ticker

6/recent/ticker-posts

Una guía rápida para la API de instancias puntuales de AWS


Amazon Web Services (AWS) es el proveedor de nube más grande del mundo. En el núcleo de los servicios de Amazon se encuentra Elastic Compute Cloud (EC2), que proporciona máquinas virtuales llamadas "instancias de cómputo" bajo demanda, facturadas por segundos.

A medida que las organizaciones se trasladan a la nube, los costos de la nube se están convirtiendo en una preocupación para cualquier proyecto de desarrollo o de TI. Por lo tanto, existe un interés creciente en las instancias puntuales, que otorgan un descuento de hasta el 90% (lo leíste bien) sobre el costo regular por hora bajo demanda de Amazon.

Las instancias de spot son el mecanismo de Amazon para vender capacidad adicional. Básicamente, son instancias informáticas no utilizadas que AWS está preparado para vender con un gran descuento. El problema es que si el precio sube por encima de su oferta, las instancias se terminan con un aviso de dos minutos. Esto significa que, para aprovechar las instancias puntuales, los usuarios deben implementar la automatización para controlar estas máquinas en la nube mediante programación.

En este artículo, presentaremos instancias puntuales y cómo trabajar con la API de instancias puntuales. Esta es una API esencial para cualquier organización que aproveche la nube de Amazon, ya que puede descubrir ahorros drásticos en los costos de la nube.

Cómo funcionan las instancias puntuales

El precio de las instancias spot de AWS se determina de acuerdo con las tendencias de oferta y demanda en el mercado spot EC2. El sistema cobra las instancias al contado según el precio al contado al comienzo de la hora de la instancia. La facturación se redondea al segundo más cercano.

Las instancias de spot le permiten pagar menos o exactamente el precio máximo que defina. Cuando el precio de la instancia al contado supere su precio máximo o la capacidad no esté disponible, su instancia se cancelará automáticamente. Otra alternativa es detener o hibernar su instancia, pero debe habilitar esta opción.

Después de terminar una instancia puntual, el sistema le factura por cualquier hora parcial utilizada. Sin embargo, hay una excepción. Si un precio spot excede el precio máximo y la instancia spot se interrumpe, EC2 no cobra por una hora parcial de uso. Para obtener más detalles, consulte esta publicación detallada sobre instancias puntuales de AWS .

Flotas puntuales de AWS

Las flotas puntuales de AWS son colecciones de instancias puntuales que se ofrecen a un precio con descuento. Las flotas de spot responden automáticamente a eventos e instancias de encuesta. Las aplicaciones pueden realizar solicitudes de Spot Fleets a través de la API de Spot Fleet o mediante la interfaz de línea de comandos (CLI).

Los usuarios pueden solicitar una flota de spot definiendo el precio objetivo máximo para cada hora de instancia y la capacidad deseada, así como los tipos de instancia, la cantidad de instancias requeridas y las zonas de disponibilidad.

El precio de las instancias puntuales cambia constantemente y EC2 intenta mantener la capacidad de la flota puntual de acuerdo con los objetivos predefinidos. Una vez que los precios superan los límites definidos por el usuario, EC2 finaliza las instancias puntuales y lanza instancias de reemplazo que se ofrecen al precio más bajo disponible.

AWS automatiza la administración de Spot Fleets y las solicitudes permanecen activas hasta que se cancelan. Sin embargo, cuando cancela una solicitud de flota puntual, no cierra instancias puntuales individuales. Para permitir que AWS termine las instancias automáticamente, deberá definir un rol de administración de acceso e identidad (IAM) relevante para la flota de spot.

AWS Spot Fleet se utiliza normalmente en conjunto con el servicio AWS Auto Scaling, que puede escalar automáticamente las instancias EC2 hacia arriba y hacia abajo en función de programas predefinidos o cargas de aplicaciones según lo informado por las herramientas de supervisión de AWS .

Uso de la API de instancia de spot

Analicemos cómo funciona la API de instancia puntual. Nuestros ejemplos se basan en el código de la documentación de la API de instancias puntuales de Amazon .

Prerrequisitos

Para acceder a EC2 a través de una API, debe estar familiarizado con el lenguaje de marcado extensible (XML), las solicitudes HTTP y los servicios web. También debe estar familiarizado con uno o más lenguajes de programación, como Java, Python, PHP, C ++, Perl, Ruby y C #.

La API de consulta EC2 utiliza solicitudes HTTP / S con GET o POST. El parámetro de consulta se denomina Acción.

Estructura de solicitud

Las solicitudes de instancias puntuales y EC2 se componen de lo siguiente:

  • Punto final : una URL que sirve como punto de entrada para un servicio web.
  • Acción : una acción a realizar. Por ejemplo, usar RunInstancespara lanzar su instancia.
  • Parámetros : Para su acción. Debe separar cada parámetro utilizando un signo comercial (&).
  • Versión : una versión de API que puede utilizar.
  • Parámetros de autorización : los utiliza AWS para validar y autenticar cada solicitud.

Aquí hay parámetros opcionales que puede incluir en sus solicitudes:

  • DryRun : comprueba si tiene los permisos necesarios para realizar la acción. Esta verificación se realiza sin realizar la solicitud. Si los usuarios tienen el permiso requerido, la solicitud volverá DryRunOperationDe lo contrario, la solicitud volverá UnauthorizedOperation.
  • SecurityToken Un token de seguridad temporal que puede obtener mediante una llamada al AWS Security Token Service.

Crear una instancia de spot

Veamos cómo crear una solicitud de instancia puntual con los siguientes parámetros:

  • Solicitud única, por lo que las instancias no se reponen si fallan.
  • Solicitud de dos instancias.
  • El tipo de instancia es m3.medium(consulte todos los tipos de instancias de Amazon ).
  • Las instancias se crearán en una zona de disponibilidad específica: US West 2A. Esto también afecta a los precios: el precio al contado se determinará de acuerdo con la disponibilidad de este tipo de instancia en esa zona de disponibilidad en particular.
  • La solicitud proporciona la siguiente información adicional:
    • ID de la imagen de la máquina de Amazon (la imagen que se utilizará para ejecutar la instancia)
    • Par de claves para autenticación
    • ID del grupo de seguridad al que deben pertenecer las instancias
    • Nombre del perfil en Amazon Identity and Access Management (IAM), que define el nivel de acceso que tendrán las instancias a los recursos de Amazon.

La solicitud tiene este aspecto:

https://ec2.amazonaws.com/?Action=RequestSpotInstances
&InstanceCount=2
&Type=one-time
&LaunchSpecification.InstanceType=m3.medium
&LaunchSpecification.Placement.AvailabilityZone=us-west-2a
&LaunchSpecification.ImageId={AMI-ID}
&LaunchSpecification.KeyName={KEY-PAIR}
&LaunchSpecification.SecurityGroupId.1={SECURITY-GROUP-ID}
&LaunchSpecification.IamInstanceProfile.Name={IAM-PROFILE-NAME}
&AUTHPARAMS

Si la solicitud no solicita explícitamente una zona de disponibilidad (AZ), Amazon selecciona una automáticamente.

Creación de una solicitud de flota puntual

Una solicitud de flota puntual es una solicitud dinámica que especifica un grupo de instancias informáticas, que puede incluir instancias puntuales y bajo demanda regulares.

La combinación de instancias puntuales y bajo demanda es una estrategia importante: le permite "reservar" algo de capacidad incluso en caso de que las instancias puntuales se cancelen debido al precio o la disponibilidad. Para obtener información sobre la combinación de instancias puntuales y bajo demanda, consulte la documentación .

A continuación, se explica cómo crear una solicitud de flota de spot simple que cree una o más instancias de spot. La solicitud especifica los siguientes parámetros:

  • Capacidad de destino : la cantidad total de instancias necesarias.
  • Especificaciones de lanzamiento : la solicitud a continuación proporciona dos tipos de especificaciones de lanzamiento, lo que significa que Amazon puede cumplir con la solicitud utilizando dos tipos de instancias. Cada solicitud de lanzamiento especifica:
    • ID de imagen de máquina de Amazon (AMI)
    • Tipo de instancia
    • Subred en la que deben ejecutarse las instancias

Así es como se ve la solicitud:

https://ec2.amazonaws.com/?Action=RequestSpotFleet
&SpotFleetRequestConfig.IamFleetRole=arn:aws:iam::123456789011:role/spot-fleet-role
&SpotFleetRequestConfig.TargetCapacity=10
&SpotFleetRequestConfig.LaunchSpecifications.1.ImageId={AMI-ID-1}
&SpotFleetRequestConfig.LaunchSpecifications.1.InstanceType=m4.large
&SpotFleetRequestConfig.LaunchSpecifications.1.SubnetId={SUBNET-ID-1}
&SpotFleetRequestConfig.LaunchSpecifications.2.ImageId={AMI-ID-1}
&SpotFleetRequestConfig.LaunchSpecifications.2.InstanceType=m3.medium
&SpotFleetRequestConfig.LaunchSpecifications.2.SubnetId={SUBNET-ID-1}
&AUTHPARAMS

La respuesta incluye un enlace a un documento XML que detalla cómo se cumplió la solicitud.

Conclusión

En esta publicación, presentamos el concepto de instancias puntuales de AWS y demostramos cómo se pueden administrar a escala mediante el servicio AWS Spot Fleet. Finalmente, mostramos cómo dar sus primeros pasos con la API de instancia puntual de AWS:

  • Configurar la API y comprender la estructura de solicitud / respuesta
  • Crear una instancia con una solicitud única
  • Crear una flota de spot que crea múltiples instancias de spot y las repone de acuerdo con condiciones predefinidas

Fuera de AWS, GCP y Azure también ofrecen funcionalidades de instancia puntual comparables. Esperamos que este conocimiento lo ayude a aprovechar el poder de las instancias puntuales para comenzar a ahorrar en costos de nube para su organización.

Publicar un comentario

0 Comentarios