Fuente de datos de instancias de spot - Amazon Elastic Compute Cloud

Fuente de datos de instancias de spot

Para ayudarlo a comprender los cargos de las instancias de spot, Amazon EC2 proporciona una fuente de datos que describe el uso que usted hace de las instancias de spot y los precios de estas. Esta fuente de datos se envía a un bucket de Amazon S3 que usted especifica al suscribirse a la fuente de datos.

Los archivos de fuente de datos llegan generalmente al bucket una vez cada hora, y cada hora de uso está registrada normalmente en un único archivo de datos. Estos archivos se comprimen (gzip) antes de que se entreguen al bucket. Amazon EC2 puede escribir varios archivos para una determinada hora de uso en la que los archivos sean grandes (por ejemplo, cuando el contenido del archivo para la hora exceda los 50 MB antes de comprimirlo).

nota

Solo puede crear una fuente de datos de instancias de spot por Cuenta de AWS. Si no tiene una instancia de spot en ejecución durante una determinada hora, no recibirá ningún archivo de fuente de datos para esa hora.

La fuente de datos de instancias de spot se admite en todas las regiones de AWS, excepto en China (Pekín), China (Ningxia), AWS GovCloud (EE. UU) y las Regiones desactivadas de forma predeterminada.

Nombre y formato del archivo de fuente de datos

El nombre del archivo de fuente de datos de la instancia de spot usa el siguiente formato (con la fecha y la hora en UTC):

bucket-name.s3.amazonaws.com/optional-prefix/aws-account-id.YYYY-MM-DD-HH.n.unique-id.gz

Por ejemplo, si el nombre del bucket es my-bucket-name y el prefijo es my-prefix, los nombres de los archivos serán similares al siguiente ejemplo:

my-bucket-name.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz

Para obtener más información acerca de los nombres de bucket, consulte Reglas para la nomenclatura de bucket en la Guía del usuario de Amazon S3.

Los archivos de fuente de datos de instancia de spot están delimitados por tabuladores. Cada línea en el archivo de datos corresponde a una hora de instancia y contiene los campos enumerados en la siguiente tabla.

Campo Descripción

Timestamp

La marca de tiempo que se usa para determinar el precio que se cobra por esta hora de instancia.

UsageType

El tipo de uso y el tipo de instancia por los que se le cobra. Para m1.small Instancias de spot, este campo está establecido en SpotUsage. Para todos los demás tipos de instancias, este campo está establecido en SpotUsage:{instance-type}. Por ejemplo, SpotUsage:c1.medium.

Operation

El producto por el que se le cobra. Para las Instancias de spot de Linux, este campo está establecido en RunInstances. Para las Instancias de spot de Windows, este campo está establecido en RunInstances:0002. El uso de spots se agrupa por zona de disponibilidad.

InstanceID

El ID de la instancia de spot que generó este uso de instancia.

MyBidID

El ID de la solicitud de instancia de spot que generó este uso de instancia.

MyMaxPrice

El precio máximo especificado para esta solicitud de spot.

MarketPrice

El precio de spot a la hora especificada en el campo Timestamp.

Charge

El precio que se le cobra por este uso de instancia.

Version

La versión de la fuente de datos. La versión posible es la 1.0.

Requisitos del bucket de Amazon S3

Cuando se suscribe a la fuente de datos, debe especificar un bucket de Amazon S3 donde almacenar los archivos de fuente de datos.

Antes de elegir un bucket de Amazon S3 para la fuente de datos, tenga en cuenta lo siguiente:

  • Debe tener permisos de FULL_CONTROL en ese bucket. Si es el propietario del bucket, tiene este permiso de forma predeterminada. En otro caso, el propietario del bucket debe concederle este permiso a su Cuenta de AWS.

  • Cuando se suscriba a una fuente de datos, estos permisos se utilizarán para actualizar la ACL del bucket para conceder el permiso AWS a la cuenta de fuente de datos de FULL_CONTROL. La cuenta de fuente de datos de AWS escribe los archivos de fuente de datos en el bucket. Si la cuenta no tiene los permisos necesarios, los archivos de fuente de datos no se pueden escribir en el bucket. Para obtener más información, consulte Registros enviados a Amazon S3 en la Guía del usuario de Registros de Amazon CloudWatch.

    nota

    Si actualiza la ACL y elimina los permisos de la cuenta de fuente de datos de AWS, los archivos de fuente de datos no se pueden escribir en el bucket. Debe volver a suscribirse a fuente de datos para recibir los archivos de fuente de datos.

  • Cada archivo de fuente de datos tiene su propia ACL (independiente de la ACL del bucket). El propietario del bucket tiene permiso FULL_CONTROL para los archivos de datos. La cuenta de fuente de datos de AWS tiene permisos de lectura y escritura.

  • Si ha aplicado ACL deshabilitadas a sus buckets, agregue una política de bucket que permita a los usuarios con el control total escribir en el bucket. Para obtener más información, consulte Revisar y actualizar políticas de bucket.

  • Si elimina su suscripción de fuente de datos, Amazon EC2 no elimina los permisos de lectura y escritura de la cuenta de fuente de datos de AWS ni del bucket ni de los archivos de datos. Debe eliminar esos permisos usted mismo.

  • Debe utilizar una clave administrada por el cliente si cifra su bucket de Simple Storage Service (Amazon S3) mediante el cifrado del lado del servidor con una clave AWS KMS almacenada en AWS Key Management Service (SSE-KMS). Para obtener más información, consulte Cifrado del lado del servidor del bucket de Amazon S3 en la Guía del usuario de Amazon CloudWatch Logs.

    nota

    Para la fuente de datos de instancia de spot, el recurso que genera los archivos S3 ya no son los registros de Amazon CloudWatch. Por lo tanto, debe eliminar la sección aws:SourceArn de la política de permisos del bucket de S3 y de la política de KMS.

Suscribirse a su fuente de datos de instancia de spot

Para suscribirse a su fuente de datos, use el comando create-spot-datafeed-subscription.

aws ec2 create-spot-datafeed-subscription \ --bucket my-bucket-name \ [--prefix my-prefix]

Ejemplo de resultados

{ "SpotDatafeedSubscription": { "OwnerId": "111122223333", "Bucket": "my-bucket-name", "Prefix": "my-prefix", "State": "Active" } }

Describir la fuente de datos de instancias de spot

Para describir la suscripción a la fuente de datos, utilice el comando describe-spot-datafeed-subscription.

aws ec2 describe-spot-datafeed-subscription

Ejemplo de resultados

{ "SpotDatafeedSubscription": { "OwnerId": "123456789012", "Prefix": "spotdata", "Bucket": "my-s3-bucket", "State": "Active" } }

Consulta de los datos de su fuente de datos

En la AWS Management Console, abra AWS CloudShell. Use el siguiente comando s3 sync para obtener los archivos .gz del bucket de S3 para su fuente de datos y guárdelos en la carpeta que especifique.

aws s3 sync s3://my-s3-bucket ./data-feed

Para mostrar el contenido de un archivo .gz, vaya a la carpeta en la que guardó el contenido del bucket de S3.

cd data-feed

Use el comando ls para ver los nombres de los archivos. Use el comando zcat con el nombre del archivo para mostrar el contenido del archivo comprimido. El siguiente comando es un ejemplo.

zcat 111122223333.2023-12-09-07.001.b959dbc6.gz

A continuación, se muestra un ejemplo del resultado.

#Version: 1.0 #Fields: Timestamp UsageType Operation InstanceID MyBidID MyMaxPrice MarketPrice Charge Version 2023-12-09 07:13:47 UTC USE2-SpotUsage:c7a.medium RunInstances:SV050 i-0c3e0c0b046e050df sir-pwq6nmfp 0.0510000000 USD 0.0142000000 USD 0.0142000000 USD 1

Eliminar la fuente de datos de instancia de spot

Para eliminar su fuente de datos, use el comando delete-spot-datafeed-subscription.

aws ec2 delete-spot-datafeed-subscription