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.
Comment puis-je utiliser le nombre de CI enregistrés par mois pour comprendre la facturation AWS Config ?
Je souhaite récupérer le nombre d'éléments de configuration (CI) enregistrés par AWS Config. Puis, je souhaite utiliser ces informations pour comprendre ma facturation AWS Config.
Résolution
Pour vous aider à identifier les tendances de facturation passées et actuelles, utilisez Amazon Athena pour identifier le nombre de CI par mois pour votre compte.
Vérifier que votre compartiment Amazon S3 contient des fichiers de configuration
Le service AWS Config doit pouvoir être en mesure de transmettre correctement les fichiers d'historique de configuration au compartiment Amazon Simple Storage Service (Amazon S3) que vous avez désigné. AWS Config fournit des CI au compartiment sous forme de fichiers d'historique de configuration toutes les 6 heures. Pour plus d'informations, consultez la section Affichage de l'historique de conformité de vos ressources AWS avec AWS Config.
Procédez comme suit :
- Ouvrez la console AWS Config.
- Dans le volet de navigation, choisissez Paramètres.
- Dans la section Compartiment Amazon S3, notez le nom du compartiment.
- Ouvrez la console Amazon S3.
- Dans le volet de navigation, choisissez Compartiments, puis choisissez votre compartiment S3.
- Consultez le compartiment S3 pour les fichiers de configuration.
Remarque : S'il n'existe aucun fichier de configuration, il est possible que votre rôle ne dispose pas de certaines autorisations. Pour plus d'informations, consultez la section Gestion des identités et des accès AWS (AWS IAM) pour Amazon S3.
Créer une table dans Athena
Ouvrez la console Athena. Puis, créez une table avec la syntaxe de votre environnement.
Important : Dans la syntaxe de la table suivante, remplacez LOCATION par l'emplacement et la région AWS pour les éléments AWS Config stockés dans votre compartiment S3. Dans BUCKET-NAME, ACCOUNT-ID, REGION et ORG-ID, utilisez vos informations spécifiques.
Pour la mise en œuvre standard d'AWS Config
Utilisez la syntaxe de table suivante :
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/';
Pour le moteur Athena version 2
Si vous utilisez le moteur Athena version 2, la longueur de ligne maximale pour les fichiers texte est de 100 Mo. Si vous disposez de nombreuses ressources, les éléments AWS Config stockés dans le compartiment S3 désigné peuvent dépasser cette limite. Par exemple, AWS Config fournit également des fichiers d'instantanés de configuration dans le même compartiment LOCATION, et le fichier d'instantané de configuration peut dépasser cette limite. Si vous dépassez la limite, vous pouvez recevoir une erreur similaire à l’erreur suivante lorsque vous interrogez l'élément AWS Config :
« HIVE_BAD_DATA: Line too long in text file: <s3_path_to_config_data_object> »
Dans ce cas, utilisez la syntaxe de table suivante pour indiquer à Athena d'interroger directement le chemin Amazon S3 qui stocke les fichiers d'historique de configuration :
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/')
Remarque : L'exemple de table suivant partitionne la table Athena avec une projection de partitions de /2021/1/1/ à /2121/12/31/. Mettez à jour ces partitions en fonction de vos besoins. Le format de date du chemin Amazon S3 des données AWS Config n'est pas compatible avec le format de date de la projection des partitions Athena.
Pour les environnements AWS Control Tower
Si vous utilisez AWS Control Tower, pour adapter la structure du compte, utilisez la syntaxe de table suivante pour créer la table 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
Exemples de requête Athena
L'exemple de requête suivant permet de récupérer le nombre de modifications par ressource en février 2021, triées selon les modifications les plus fréquentes :
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
Lorsque vous excluez certains types de ressources d'AWS Config Recorder, celui-ci enregistre toujours la création et la suppression de ces ressources. Ces enregistrements sont réalisés sans aucun frais. Ces CI de ressources incluent les états suivants pour le champ configurationItemStatus :
- ResourceNotRecorded
- ResourceDeletedNotRecorded
Les enregistrements incluent également des métadonnées de base, telles que l'identifiant de ressource, l'ARN et le CI, mais n'incluent pas la configuration des ressources et les informations de relation.
Remarque : Cette requête compte toujours les informations ResourceNotRecorded. Pour exclure ces informations, exécutez la requête suivante :
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
Les résultats sont similaires à ceux de l'exemple suivant :
resourcetype resourceid NumberOfChanges AWS::EC2::VPC vpc-9ed00bfa 7 AWS::EC2::Subnet subnet-4472e248 5 AWS::EC2::SecurityGroup sg-450c6531 4
L'exemple de requête suivant permet de récupérer le nombre d'éléments de configuration par jour en février 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
Remarque : Pour filtrer les ressources non enregistrées, vous pouvez ajouter la clause supplémentaire suivante avant l'option GROUP BY :
« AND configurationItem.configurationItemStatus NOT IN ('ResourceNotRecorded','ResourceDeletedNotRecorded') »
Les résultats sont similaires à ceux de l'exemple suivant :
configurationitemcapturetime NumberOfChanges 2021-02-02 7 2021-02-03 3 2021-02-07 11 ...
Remarque : Lorsque vous comparez le nombre de CI entre les résultats de requête Athena et les données de facturation AWS pour le même mois et la même région, une divergence peut apparaître. Les données interrogées par Athena peuvent dépasser les limites du nombre de jours et inclure également des CI facturés les mois suivants. Les CI AWS Config sont mesurés en fonction de la date à laquelle vous avez lancé configurationItemCaptureTime.
Il est recommandé d'incrémenter d'un point le jour de fin spécifié à partir de la fin du mois.
Par exemple, vous pouvez remplacer la requête d'origine par la requête mise à jour suivante.
Requête initiale :
AND configurationItem.configurationItemCaptureTime <= '2021-02-28T%') result
Requête mise à jour :
AND configurationItem.configurationItemCaptureTime <= '2021-03-01T%') result
Remarque : Le dernier jour du mois est incrémenté d'un jour.
Informations connexes
- Sujets
- Management & Governance
- Balises
- AWS Config
- Langue
- Français
Vidéos associées


Contenus pertinents
- Réponse acceptéedemandé il y a un an
- demandé il y a un an
- demandé il y a 6 mois
- demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a 4 ans
AWS OFFICIELA mis à jour il y a 2 ans