Monitorar blocos de capacidade - Amazon Elastic Compute Cloud

Monitorar blocos de capacidade

Monitorar blocos de capacidade com o EventBridge

Quando a reserva do bloco de capacidade começa, o Amazon EC2 emite um evento por meio do EventBridge que indica que a capacidade está pronta para ser usada. Quarenta minutos antes do término da reserva do bloco de capacidade, você recebe outro evento do EventBridge informando que todas as instâncias em execução na reserva começarão a ser encerradas em dez minutos. Para obter mais informações sobre eventos do EventBridge, consulte Eventos do Amazon EventBridge.

As seguintes estruturas de eventos para eventos emitidos para blocos de capacidade:

Bloco de capacidade fornecido

O exemplo a seguir mostra um evento para o bloco de capacidade fornecido.

{ "customer_event_id": "[Capacity Reservation Id]-delivered", "detail_type": "Capacity Block Reservation Delivered", "source": "aws.ec2", "account": "[Customer Account ID]", "time": "[Current time]", "resources": [ "[ODCR ARN]" ], "detail": { "capacity-reservation-id": "[ODCR ID]", "end-date": "[ODCR End Date]" } }
Aviso de expiração do bloco de capacidade

O exemplo a seguir mostra um evento para aviso de expiração do bloco de capacidade.

{ "customer_event_id": "[Capacity Reservation Id]-approaching-expiry", "detail_type": "Capacity Block Reservation Expiration Warning", "source": "aws.ec2", "account": "[Customer Account ID]", "time": "[Current time]", "resources": [ "[ODCR ARN]" ], "detail": { "capacity-reservation-id": "[ODCR ID]", "end-date": "[ODCR End Date]" } }

Registrar em log chamadas de API de blocos de capacidade com o AWS CloudTrail

Os blocos de capacidade são integrados ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, um perfil ou um serviço da AWS em blocos de capacidade. O CloudTrail captura chamadas de API para blocos de capacidade como eventos. As chamadas capturadas incluem chamadas do console de blocos de capacidade e chamadas de código para as operações de API de blocos de capacidade. Se você criar uma trilha, poderá habilitar a entrega contínua de eventos do CloudTrail a um bucket do Amazon S3, incluindo eventos para blocos de capacidade. Se você não configurar uma trilha, ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Event history (Histórico de eventos). Com as informações coletadas pelo CloudTrail, você pode determinar a solicitação que foi feita para os blocos de capacidade, o endereço IP do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita e outros detalhes.

Para saber mais sobre o CloudTrail, consulte o Guia do usuário do AWS CloudTrail.

Informações sobre blocos de capacidade no CloudTrail

O CloudTrail é habilitado em sua Conta da AWS quando ela é criada. Quando ocorre alguma atividade nos blocos de capacidade, essa atividade é registrada em um evento do CloudTrail junto com outros eventos de serviço da AWS em Histórico de eventos. É possível visualizar, pesquisar e baixar eventos recentes em sua Conta da AWS. Para obter mais informações, consulte Como visualizar eventos com o histórico de eventos do CloudTrail.

Para ter um registro contínuo de eventos na Conta da AWS, incluindo os para blocos de capacidade, crie uma trilha. Uma trilha permite que o CloudTrail entregue arquivos de log a um bucket do Amazon S3. Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as Regiões da AWS. A trilha registra eventos de todas as regiões na partição da AWS e entrega os arquivos de log no bucket do Amazon S3 que você especificou Além disso, é possível configurar outros AWS serviços para melhor analisar e agir de acordo com dados coletados do evento nos logs CloudTrail. Para mais informações, consulte:

Todas os blocos de capacidade são registrados em log pelo CloudTrail e são documentados na Amazon EC2 API Reference. Por exemplo, as chamadas para as ações CapacityBlockScheduled e CapacityBlockActive geram entradas nos arquivos de log do CloudTrail.

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações de identidade ajudam a determinar:

  • Se a solicitação foi feita com credenciais de usuário raiz ou usuário do IAM AWS Identity and Access Management

  • Se a solicitação foi feita com credenciais de segurança temporárias de um perfil ou de um usuário federado.

  • Se a solicitação foi feita por outro AWS serviço.

Para mais informações, consulte Elemento userIdentity do CloudTrail.

Entender as entradas nos arquivos de log de capacidade

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log a um bucket do Amazon S3 especificado. Os arquivos de log CloudTrail contêm uma ou mais entradas de log. Um evento representa uma única solicitação de qualquer fonte, e inclui informações sobre a ação solicitada, data e hora da ação, parâmetros de solicitação e assim por diante. Os arquivos de log do CloudTrail não são um rastreamento de pilha ordenada de chamadas de API pública, portanto não são exibidos em uma ordem específica.

Os seguintes exemplos mostram entradas no log do CloudTrail para:

nota

Alguns campos foram ocultados nos exemplos por questão de privacidade dos dados.

TerminateCapacityBlocksInstances

{ "eventVersion": "1.05", "userIdentity": { "accountId": "123456789012", "invokedBy": "AWS Internal;" }, "eventTime": "2023-10-02T00:06:08Z", "eventSource": "ec2.amazonaws.com", "eventName": "TerminateCapacityBlockInstances", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.25", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": null, "responseElements": null, "eventID": "a1b2c3d4-EXAMPLE", "readOnly": false, "resources": [ { "accountId": "123456789012", "type": "AWS::EC2::Instance", "ARN": "arn:aws:ec2:US East (N. Virginia):123456789012:instance/i-1234567890abcdef0" } { "accountId": "123456789012", "type": "AWS::EC2::Instance", "ARN": "arn:aws::ec2:US East (N. Virginia):123456789012:instance/i-0598c7d356eba48d7" } ], "eventType": "AwsServiceEvent", "recipientAccountId": "123456789012", "serviceEventDetails": { "capacityReservationId": "cr-12345678", } }

CapacityBlockPaymentFailed

{ "eventVersion": "1.05", "userIdentity": { "accountId": "123456789012", "invokedBy": "AWS Internal;" }, "eventTime": "2023-10-02T00:06:08Z", "eventSource": "ec2.amazonaws.com", "eventName": "CapacityBlockPaymentFailed", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.25", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": null, "responseElements": null, "eventID": "a1b2c3d4-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:ec2:US East (N. Virginia):123456789012:capacity-reservation/cr-12345678", "accountId": "123456789012", "type": "AWS::EC2::CapacityReservation" } ], "eventType": "AwsServiceEvent", "recipientAccountId": "123456789012", "serviceEventDetails": { "capacityReservationId": "cr-12345678", "capacityReservationState": "payment-failed" } }

CapacityBlockScheduled

{ "eventVersion": "1.05", "userIdentity": { "accountId": "123456789012", "invokedBy": "AWS Internal;" }, "eventTime": "2023-10-02T00:06:08Z", "eventSource": "ec2.amazonaws.com", "eventName": "CapacityBlockScheduled", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.25", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": null, "responseElements": null, "eventID": "a1b2c3d4-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:ec2:US East (N. Virginia):123456789012:capacity-reservation/cr-12345678", "accountId": "123456789012", "type": "AWS::EC2::CapacityReservation" } ], "eventType": "AwsServiceEvent", "recipientAccountId": "123456789012", "serviceEventDetails": { "capacityReservationId": "cr-12345678", "capacityReservationState": "scheduled" } }

CapacityBlockActive

{ "eventVersion": "1.05", "userIdentity": { "accountId": "123456789012", "invokedBy": "AWS Internal;" }, "eventTime": "2023-10-02T00:06:08Z", "eventSource": "ec2.amazonaws.com", "eventName": "CapacityBlockActive", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.25", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": null, "responseElements": null, "eventID": "a1b2c3d4-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:ec2:US East (N. Virginia):123456789012:capacity-reservation/cr-12345678", "accountId": "123456789012", "type": "AWS::EC2::CapacityReservation" } ], "eventType": "AwsServiceEvent", "recipientAccountId": "123456789012", "serviceEventDetails": { "capacityReservationId": "cr-12345678", "capacityReservationState": "active" } }

CapacityBlockFailed

{ "eventVersion": "1.05", "userIdentity": { "accountId": "123456789012", "invokedBy": "AWS Internal;" }, "eventTime": "2023-10-02T00:06:08Z", "eventSource": "ec2.amazonaws.com", "eventName": "CapacityBlockFailed", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.25", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": null, "responseElements": null, "eventID": "a1b2c3d4-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:ec2:US East (N. Virginia):123456789012:capacity-reservation/cr-12345678", "accountId": "123456789012", "type": "AWS::EC2::CapacityReservation" } ], "eventType": "AwsServiceEvent", "recipientAccountId": "123456789012", "serviceEventDetails": { "capacityReservationId": "cr-12345678", "capacityReservationState": "failed" } }

CapacityBlockExpired

{ "eventVersion": "1.05", "userIdentity": { "accountId": "123456789012", "invokedBy": "AWS Internal;" }, "eventTime": "2023-10-02T00:06:08Z", "eventSource": "ec2.amazonaws.com", "eventName": "CapacityBlockExpired", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.25", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": null, "responseElements": null, "eventID": "a1b2c3d4-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:ec2:US East (N. Virginia):123456789012:capacity-reservation/cr-12345678", "accountId": "123456789012", "type": "AWS::EC2::CapacityReservation" } ], "eventType": "AwsServiceEvent", "recipientAccountId": "123456789012", "serviceEventDetails": { "capacityReservationId": "cr-12345678", "capacityReservationState": "expired" } }