

# Rastrear os custos das instâncias spot usando o feed de dados da instância spot
<a name="spot-data-feeds"></a>

Para compreender as cobranças relativas às suas instâncias spot, o Amazon EC2 fornece um feed de dados que descreve o uso que você faz de sua instância spot e a definição de preços. Esse feed de dados é enviado a um bucket do Amazon S3 que você especifica ao assinar um feed de dados.

O feed de dados normalmente chega em seu bucket uma vez por hora. Se você não tiver uma instância spot em execução em uma hora específica, não receberá um arquivo de feed de dados nessa hora.

Cada hora de uso de uma instância spot é coberto em um único arquivo de dados. Esses arquivos são compactados (gzip) antes de serem entregues ao seu bucket. O Amazon EC2 pode gravar vários arquivos em uma determinada hora de uso quando os arquivos estiverem muito grandes (por exemplo, quando o conteúdo dos arquivos para a hora ultrapassar 50 MB antes da compactação).

**nota**  
Você só pode criar um feed de dados de instância spot para cada Conta da AWS.

O feed de dados da instância spot é compatível em todas as regiões AWS, exceto China (Pequim), China (Ningxia), AWS GovCloud (EUA) e as [regiões que estão desabilitadas por padrão](using-regions-availability-zones.md#concepts-available-regions).

**Topics**
+ [Nome e formato de arquivo do feed de dados](#using-spot-instances-format)
+ [Requisitos do bucket do Amazon S3](#using-spot-instances-dfs3)
+ [Assinar seu feed de dados da instância spot](#using-spot-instances-datafeed-all)
+ [Visualização dos dados no feed de dados](#using-spot-instances-datafeed-view-data)
+ [Excluir seu feed de dados de instância spot](#using-spot-instances-datafeed-delete)

## Nome e formato de arquivo do feed de dados
<a name="using-spot-instances-format"></a>

O nome de arquivo do feed de dados de instância spot usa o seguinte formato (com a data e a hora em UTC): 

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

Por exemplo, se o nome do bucket for **amzn-s3-demo-bucket** e o prefixo for **my-prefix**, os nomes dos arquivos serão semelhantes ao seguinte:

```
amzn-s3-demo-bucket.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz
```

Para obter mais informações sobre os nomes de bucket, consulte [Regras de nomeação de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) no *Guia do usuário do Amazon S3*.

Os arquivos de feed de dados de instância spot são delimitados por tabulação. Cada linha no arquivo de dados corresponde a uma hora de instância e contém os campos listados na tabela a seguir.


|  Campo  |  Descrição  | 
| --- | --- | 
|   `Timestamp`   |  O time stamp usado para determinar o preço cobrado pelo uso dessa instância.  | 
|   `UsageType`   |  O tipo de uso e instância que está sendo cobrado. Para `m1.small` Instâncias spot, este campo está definido como `SpotUsage`. Para todos os outros tipos de instância, esse campo é definido como `SpotUsage:`\$1*instance-type*\$1. Por exemplo, `SpotUsage:c1.medium`.  | 
|   `Operation`   |  O produto que está sendo cobrado. Nas Instâncias spot do Linux, este campo é definido como `RunInstances`. Nas Instâncias spot do Windows, este campo é definido como `RunInstances:0002`. O uso de spot é agrupado de acordo com a zona de disponibilidade.  | 
|   `InstanceID`   |  O ID da instância spot que gerou este uso de instância.  | 
|   `MyBidID`   |  O ID da solicitação de instância spot que gerou este uso de instância.  | 
|   `MyMaxPrice`   |  O preço máximo especificado para essa solicitação de spot.  | 
|   `MarketPrice`   |  O preço spot na hora especificada no campo `Timestamp`.  | 
|   `Charge`   |  O preço cobrado por este uso de instância.  | 
|   `Version`   |  A versão do feed de dados. A versão possível é a 1.0.  | 

## Requisitos do bucket do Amazon S3
<a name="using-spot-instances-dfs3"></a>

Ao assinar o feed de dados, especifique um bucket do Amazon S3 pra armazenar os arquivos do feed de dados.

Antes de escolher um bucket do Amazon S3 para o feed de dados, considere o seguinte:
+ É necessário ter a permissão `FULL_CONTROL` para o bucket. Se você for o proprietário do bucket, terá essa permissão por padrão. Caso contrário, o proprietário do bucket deve conceder essa permissão à sua Conta da AWS.
+ Quando você assina um feed de dados, essas permissões são usadas para atualizar o ACL do bucket a fim de fornecer à conta de feed de dados da AWS a permissão `FULL_CONTROL`. A conta de feed de dados da AWS grava arquivos de feed de dados no bucket. Se sua conta não tiver as permissões necessárias, os arquivos de feed de dados não poderão ser gravados no bucket. Para obter mais informações, consulte [Logs enviados ao Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3) no *Guia do usuário do Amazon CloudWatch Logs*.

  Se você atualizar o ACL e eliminar as permissões para a conta do feed de dados da AWS, os arquivos de feed de dados não poderão ser gravados no bucket. É necessário assinar novamente o feed de dados para receber arquivos de feed de dados.
+ Cada arquivo do feed de dados tem sua própria ACL (separada da ACL do bucket). O proprietário do bucket tem a permissão `FULL_CONTROL` para os arquivos de dados. A conta de feed de dados da AWS tem permissões de leitura e gravação.
+ Se você excluir a assinatura do feed de dados, o Amazon EC2 não removerá as permissões de leitura e gravação para a conta de feed de dados da AWS no bucket nem nos arquivos de dados. Você precisa remover essas permissões por conta própria.
+ Caso criptografe o bucket do Amazon S3 usando criptografia no lado do servidor com uma chave do AWS KMS armazenada no AWS Key Management Service (SSE-KMS), você deverá usar uma chave gerenciada pelo cliente. Para obter mais informações, consulte [Criptografia no lado do servidor de bucket do Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-SSE-KMS-S3) no *Guia do usuário do Amazon CloudWatch Logs*.

## Assinar seu feed de dados da instância spot
<a name="using-spot-instances-datafeed-all"></a>

É possível se inscrever para receber o feed de dados da instância spot a qualquer momento. Não é possível realizar essa tarefa usando o console do Amazon EC2.

Se você receber um erro informando que o bucket não tem permissões suficientes, consulte o seguinte artigo para obter informações sobre solução de problemas: [Troubleshoot the data feed for Spot Instances](https://repost.aws/knowledge-center/s3-data-feed-ec2-spot-instances).

------
#### [ AWS CLI ]

**Para assinar seu feed de dados**  
Use o comando [create-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-spot-datafeed-subscription.html).

Para especificar um bucket com um prefixo, use o seguinte exemplo:

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket \
    --prefix my-prefix
```

Para especificar um bucket sem um prefixo, use o seguinte exemplo:

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket
```

------
#### [ PowerShell ]

**Para assinar seu feed de dados**  
Use o cmdlet [New-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2SpotDatafeedSubscription.html).

Para especificar um bucket com um prefixo, use o seguinte exemplo:

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket `
    -Prefix my-prefix
```

Para especificar um bucket sem um prefixo, use o seguinte exemplo:

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket
```

------

## Visualização dos dados no feed de dados
<a name="using-spot-instances-datafeed-view-data"></a>

No Console de gerenciamento da AWS, abra o AWS CloudShell. Use o comando [s3 sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) a seguir para obter os arquivos .gz do bucket do S3 para o feed de dados e armazená-los na pasta que você especificar.

```
aws s3 sync s3://amzn-s3-demo-bucket ./data-feed
```

Para exibir o conteúdo de um arquivo .gz, acesse a pasta em que você armazenou o conteúdo do bucket do S3.

```
cd data-feed
```

Use o comando **ls** para visualizar os nomes dos arquivos. Use o comando **zcat** com o nome do arquivo para exibir o conteúdo do arquivo compactado. O comando a seguir é um exemplo.

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

O seguinte é um exemplo de saída.

```
#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
```

## Excluir seu feed de dados de instância spot
<a name="using-spot-instances-datafeed-delete"></a>

Após terminar de usar o feed de dados da instância spot, será possível excluí-lo.

------
#### [ AWS CLI ]

**Para excluir seu feed de dados**  
Use o comando [delete-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-spot-datafeed-subscription.html).

```
aws ec2 delete-spot-datafeed-subscription
```

------
#### [ PowerShell ]

**Para excluir seu feed de dados**  
Use o cmdlet [Remove-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2SpotDatafeedSubscription.html).

```
Remove-EC2SpotDatafeedSubscription
```

------