AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Como posso usar o número de CIs registrados por mês para entender o faturamento do AWS Config?
Quero recuperar o número de itens de configuração (CIs) que o AWS Config registrou. Depois, quero usar essas informações para entender meu faturamento do AWS Config.
Resolução
Para ajudar a identificar as tendências de faturamento passadas e atuais, use o Amazon Athena para identificar o número de CIs por mês da conta.
Verificar se o bucket do Amazon S3 contém arquivos de configuração
O serviço AWS Config deve ser capaz de entregar arquivos de histórico de configuração ao seu bucket designado do Amazon Simple Storage Service (Amazon S3). O AWS Config entrega CIs ao bucket como arquivos de histórico de configuração a cada 6 horas. Para mais informações, consulte Viewing Compliance History for your AWS Resources with AWS Config (Visualizar o histórico de conformidade dos recursos da AWS com o AWS Config).
Conclua as etapas a seguir:
- Abra o console do AWS Config.
- No painel de navegação, selecione Configurações.
- Na seção Bucket do Amazon S3, anote o Nome do bucket.
- Abra o console do Amazon S3.
- No painel de navegação, escolha Buckets e, em seguida, escolha seu bucket do S3.
- Analise o bucket do S3 para ver os arquivos de configuração.
Observação: se não houver arquivos de configuração, talvez seu perfil não tenha permissão. Para obter mais informações, consulte AWS Identity and Access Management (AWS IAM) para Amazon S3.
Criar uma tabela no Athena
Abra o console do Athena. Em seguida, crie uma tabela com a sintaxe do seu ambiente.
Importante: na sintaxe da tabela a seguir, substitua LOCATION pelo local e pela região da AWS para os itens do AWS Config armazenados em seu bucket do S3. Em BUCKET-NAME, ACCOUNT-ID, REGION e ORG-ID, use suas informações específicas.
Para implementação padrão do AWS Config
Use a seguinte sintaxe de tabela:
CREATE EXTERNAL TABLE awsconfig ( fileversion string, configSnapshotId string, configurationitems ARRAY < STRUCT < configurationItemVersion : STRING, configurationItemCaptureTime : STRING, configurationStateId : BIGINT, awsAccountId : STRING, configurationItemStatus : STRING, resourceType : STRING, resourceId : STRING, resourceName : STRING, ARN : STRING, awsRegion : STRING, availabilityZone : STRING, configurationStateMd5Hash : STRING, resourceCreationTime : STRING > > ) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 's3://BUCKET-NAME/AWSLogs/ACCOUNT-ID/Config/REGION/';
Para a versão 2 do mecanismo Athena
Se você estiver usando a versão 2 do mecanismo Athena, o comprimento máximo de linha para arquivos de texto é de 100 MB. Se você tiver muitos recursos, os itens do AWS Config armazenados no bucket designado do S3 podem exceder esse limite. Por exemplo, o AWS Config também envia arquivos de snapshot de configuração na mesma LOCALIZAÇÃO do bucket, e o arquivo de snapshot de configuração pode exceder esse limite. Se você exceder o limite, receberá um erro semelhante ao seguinte ao consultar o item do AWS Config:
"HIVE_BAD_DATA: Line too long in text file: <s3_path_to_config_data_object>"
Nesse caso, use a sintaxe da tabela a seguir para que o Athena consulte diretamente o caminho do Amazon S3 que armazena os arquivos do histórico de configuração:
CREATE EXTERNAL TABLE awsconfig ( fileversion string, configSnapshotId string, configurationitems ARRAY < STRUCT < configurationItemVersion : STRING, configurationItemCaptureTime : STRING, configurationStateId : BIGINT, awsAccountId : STRING, configurationItemStatus : STRING, resourceType : STRING, resourceId : STRING, resourceName : STRING, ARN : STRING, awsRegion : STRING, availabilityZone : STRING, configurationStateMd5Hash : STRING, resourceCreationTime : STRING > > ) PARTITIONED BY (`year` string,`month` string,`day` string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 's3://BUCKET-NAME/AWSLogs/ACCOUNT-ID/Config/REGION/' TBLPROPERTIES ( 'projection.enabled'='true', 'projection.year.interval'='1', 'projection.year.range'='2021,2121', 'projection.year.type'='integer', 'projection.month.interval'='1', 'projection.month.range'='1,12', 'projection.month.type'='integer', 'projection.day.interval'='1', 'projection.day.range'='1,31', 'projection.day.type'='integer', 'storage.location.template'='s3://BUCKET-NAME/AWSLogs/ACCOUNT-ID/Config/REGION/${year}/${month}/${day}/ConfigHistory/')
Observação: o exemplo de tabela a seguir particiona a tabela Athena com projeção de partições de /2021/1/1/ a /2121/12/31/. Atualize essas partições com base em seus requisitos. O formato de data do caminho do Amazon S3 de dados do AWS Config não é compatível com o formato de data da projeção de partições do Athena.
Para ambientes da AWS Control Tower
Se você usa a AWS Control Tower, para acomodar a estrutura da conta, use a seguinte sintaxe de tabela para criar a tabela do Athena:
CREATE EXTERNAL TABLE awsconfig ( fileversion string, configSnapshotId string, configurationitems ARRAY < STRUCT < configurationItemVersion : STRING, configurationItemCaptureTime : STRING, configurationStateId : BIGINT, awsAccountId : STRING, configurationItemStatus : STRING, resourceType : STRING, resourceId : STRING, resourceName : STRING, ARN : STRING, awsRegion : STRING, availabilityZone : STRING, configurationStateMd5Hash : STRING, resourceCreationTime : STRING > > ) PARTITIONED BY (account string,region string,year string,month string,day string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 's3://BUCKET-NAME/ ORG-ID/AWSLogs/' -- Bucket name and org should be updated TBLPROPERTIES ( 'projection.enabled'='true', 'projection.account.type'='enum', 'projection.account.values'='<account-id1, accountid2>', -- Enter all account ids 'projection.region.type'='enum', 'projection.region.values'='<region-1,region-2,region-3>', -- Enter all regions 'projection.year.interval'='1', 'projection.year.range'='2021,2121', 'projection.year.type'='integer', 'projection.month.interval'='1', 'projection.month.range'='1,12', 'projection.month.type'='integer', 'projection.day.interval'='1', 'projection.day.range'='1,31', 'projection.day.type'='integer', 'storage.location.template'='s3://BUCKET-NAME/ORG-ID/AWSLogs/${account}/Config/${region}/${year}/${month}/${day}/ConfigHistory/') -- Bucket name and org should be updated
Exemplo de consultas do Athena
O exemplo de consulta a seguir recupera o número de alterações por recurso em fevereiro de 2021, classificadas pelas alterações mais frequentes:
SELECT configurationItem.resourceType, configurationItem.resourceId, COUNT(configurationItem.resourceId) AS NumberOfChanges FROM default.awsconfig CROSS JOIN UNNEST(configurationitems) AS t(configurationItem) WHERE "$path" LIKE '%ConfigHistory%' AND configurationItem.configurationItemCaptureTime >= '2021-02-01T%' AND configurationItem.configurationItemCaptureTime <= '2021-02-28T%' GROUP BY configurationItem.resourceType, configurationItem.resourceId ORDER BY NumberOfChanges DESC
Quando você exclui certos tipos de recursos do AWS Config Recorder, este ainda registra a criação e a exclusão desses recursos. Essas gravações são feitas sem nenhum custo. Os CIs de recursos incluem os seguintes status para o campo configurationItemStatus:
- ResourceNotRecorded
- ResourceDeletedNotRecorded
As gravações também incluem metadados básicos, como resource-id, ARN e CI, mas não incluem informações de relacionamento e configuração de recursos.
Observação: essa consulta ainda conta as informações do ResourceNotRecorded. Para excluir essas informações, execute a seguinte consulta:
SELECT configurationItem.resourceType, configurationItem.resourceId, COUNT(configurationItem.resourceId) AS NumberOfChanges FROM default.awsconfig CROSS JOIN UNNEST(configurationitems) AS t(configurationItem) WHERE "$path" LIKE '%ConfigHistory%' AND configurationItem.configurationItemCaptureTime >= '2021-02-08T%' AND configurationItem.configurationItemCaptureTime <= '2021-02-28T%' AND configurationItem.configurationItemStatus NOT IN ('ResourceNotRecorded','ResourceDeletedNotRecorded') GROUP BY configurationItem.resourceType ORDER BY NumberOfChanges DESC
Os resultados são semelhantes ao exemplo a seguir:
resourcetype resourceid NumberOfChanges AWS::EC2::VPC vpc-9ed00bfa 7 AWS::EC2::Subnet subnet-4472e248 5 AWS::EC2::SecurityGroup sg-450c6531 4
O exemplo de consulta a seguir recupera o número de itens de configuração por dia em fevereiro de 2021:
SELECT result.configurationitemcapturetime, count(result.configurationitemcapturetime) AS NumberOfChanges FROM (SELECT regexp_replace(configurationItem.configurationItemCaptureTime, '(.+)(T.+)', '$1') AS configurationitemcapturetime FROM default.awsconfig CROSS JOIN UNNEST(configurationitems) AS t(configurationItem) WHERE "$path" LIKE '%ConfigHistory%' AND configurationItem.configurationItemCaptureTime >= '2021-02-01T%' AND configurationItem.configurationItemCaptureTime <= '2021-02-28T%') result GROUP BY result.configurationitemcapturetime ORDER BY result.configurationitemcapturetime
Observação: para filtrar recursos não registrados, é possível adicionar a seguinte cláusula adicional antes da opção GROUP BY:
"AND configurationItem.configurationItemStatus NOT IN ('ResourceNotRecorded','ResourceDeletedNotRecorded')"
Os resultados são semelhantes ao exemplo a seguir:
configurationitemcapturetime NumberOfChanges 2021-02-02 7 2021-02-03 3 2021-02-07 11 ...
Observação: ao comparar o número de CIs entre os resultados da consulta do Athena e os dados de faturamento da AWS para o mesmo mês e região, pode haver uma discrepância. Os dados consultados pelo Athena podem ultrapassar os limites do dia e incluir CIs faturados em meses próximos. Os CIs do AWS Config são medidos com base em quando você iniciou configurationItemCaptureTime.
A prática recomendada é incrementar o dia final especificado a partir do final do mês em um.
Por exemplo, é possível alterar a consulta original para a consulta atualizada a seguir.
Consulta original:
AND configurationItem.configurationItemCaptureTime <= '2021-02-28T%') result
Consulta atualizada:
AND configurationItem.configurationItemCaptureTime <= '2021-03-01T%') result
Observação: o último dia do mês é incrementado em um dia.
Informações relacionadas
Recording AWS Resources with AWS Config (Registrar recursos AWS com o AWS Config)
- Tópicos
- Management & Governance
- Tags
- AWS Config
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 4 meses
- feita há 5 meses
- feita há 3 meses
AWS OFICIALAtualizada há um ano