Seguimiento de los costos de las instancias de spot mediante la 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. 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.
Cada hora de uso de la instancia de spot 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.
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.
Contenido
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 amzn-s3-demo-bucket
y el prefijo es my-prefix
, los nombres de los archivos serán similares al siguiente ejemplo:
amzn-s3-demo-bucket.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 |
---|---|
|
La marca de tiempo que se usa para determinar el precio que se cobra por esta hora de instancia. |
|
El tipo de uso y el tipo de instancia por los que se le cobra. Para |
|
El producto por el que se le cobra. Para las instancias de spot de Linux, este campo está establecido en |
|
El ID de la instancia de spot que generó este uso de instancia. |
|
El ID de la solicitud de instancia de spot que generó este uso de instancia. |
|
El precio máximo especificado para esta solicitud de spot. |
|
El precio de spot a la hora especificada en el campo |
|
El precio que se le cobra por este uso de instancia. |
|
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.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 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 usar una clave administrada por el cliente si cifra su bucket de Amazon S3 mediante el cifrado del lado del servidor con una clave de 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.
Suscribirse a su fuente de datos de instancia de spot
Para suscribirse a su fuente de datos, use el comando AWS CLI create-spot-datafeed-subscription.
aws ec2 create-spot-datafeed-subscription \ --bucket
amzn-s3-demo-bucket
\ [--prefixmy-prefix
]
A continuación, se muestra un ejemplo del resultado.
{
"SpotDatafeedSubscription": {
"OwnerId": "111122223333",
"Bucket": "amzn-s3-demo-bucket
",
"Prefix": "my-prefix
",
"State": "Active"
}
}
Si recibe un error que indica que el bucket no tiene permisos suficientes, consulte el siguiente artículo para obtener información sobre la solución de problemas: Troubleshoot the data feed for Spot Instances
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://
amzn-s3-demo-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 AWS CLI delete-spot-datafeed-subscription.
aws ec2 delete-spot-datafeed-subscription