Comment puis-je comprendre la facturation AWS Config en récupérant le nombre d'éléments de configuration enregistrés par mois ?

Date de la dernière mise à jour : 24/06/2020

Je veux récupérer le nombre d'éléments de configuration enregistrés par AWS Config.

Solution

Pour identifier les tendances de facturation précédentes et actuelles, utilisez Amazon Athena pour identifier le nombre d'éléments de configuration (CI) par mois de votre compte.

Vérifier que votre compartiment Amazon S3 contient des fichiers de configuration

Remarque : vérifiez que le service AWS Config peut transmettre les fichiers d'historique de configuration vers votre compartiment Amazon Simple Storage Service (Amazon S3). Les fichiers d'historique de configuration ne sont disponibles que pour les 90 derniers jours. Pour plus d'informations, consultez Affichage des informations de configuration.

  1. Ouvrez la console d’AWS Config, puis choisissez Paramètres dans le volet de navigation.
  2. Dans la section Amazon S3 bucket (Compartiment Amazon S3), notez le nom du compartiment.
  3. Ouvrez la console d’Amazon S3, puis dans Bucket name (Nom du compartiment), choisissez votre compartiment S3. Vérifiez que le compartiment Amazon S3 que vous choisissez contient des fichiers de configuration.
    Remarque : s'il n'en contient pas, il se peut que des autorisations manquent pour votre rôle. Pour plus d'informations, consultez Définition des autorisations d'accès aux compartiments et aux objets.

Créer une table dans Athena

  1. Connectez-vous à la console d’Athena, puis suivez les instructions de la section pour créer une table à l'aide de l'assistant.
  2. Utilisez la syntaxe de table suivante.
    Remarque : pour LOCATION (EMPLACEMENT), utilisez l'emplacement et la région des éléments d’AWS Config stockés dans votre compartiment Amazon S3.
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>/';

Exemples de requêtes Athena

L'exemple de requête suivant extrait le nombre d'éléments de configuration par jour en février 2018 :

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 >= '2018-02-01T%'
            AND configurationItem.configurationItemCaptureTime <= '2018-02-28T%') result
GROUP BY  result.configurationitemcapturetime
ORDER BY  result.configurationitemcapturetime

Les résultats sont similaires à ceux ci-dessous :

configurationitemcapturetime    NumberOfChanges
2018-02-02    7
2018-02-03    3
2018-02-07   11
...

L'exemple de requête suivant extrait le nombre de modifications par ressource en février 2018, triées par ordre de modification la plus récente :

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 >= '2018-02-01T%'
        AND configurationItem.configurationItemCaptureTime <= '2018-02-28T%'
GROUP BY  configurationItem.resourceType, configurationItem.resourceId
ORDER BY  NumberOfChanges DESC

Les résultats sont similaires à ceux ci-dessous :
 

resourcetype              resourceid        NumberOfChanges
AWS::EC2::VPC             vpc-9ed00bfa        7
AWS::EC2::Subnet          subnet-4472e248     5
AWS::EC2::SecurityGroup   sg-450c6531         4

Remarque : lorsque vous comparez le nombre total d'éléments de configuration (CI), vous pouvez constater un écart entre les résultats de la requête Athena et les données de facturation d’AWS pour le même mois et la même région. Les données interrogées par Athena peuvent dépasser les limites quotidiennes et inclure également des éléments de configuration facturés dans les mois adjacents. Les éléments de configuration d’AWS Config sont mesurés à partir du lancement de configurationItemCaptureTime.

Il est préférable d'augmenter d’une unité le jour de fin spécifié à partir de la fin du mois.

Par exemple, remplacer la requête suivante :

AND configurationItem.configurationItemCaptureTime <= '2018-02-28T%') result

par la requête suivante :

AND configurationItem.configurationItemCaptureTime <= '2018-03-01T%') result

Remarque : le dernier jour du mois est prolongé d'un jour.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?