Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

AWS Config Kosten im Griff: Einblicke und Strategien

By Nikhil PawarDec 23, 20248 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

Foto von SuPatMaN auf Shutterstock

Vorab eines: AWS Config ist ein hervorragender Service. Falls Sie ihn noch nicht kennen: AWS Config kann Konfigurationsänderungen an Ressourcen kontinuierlich bewerten, überwachen und aufzeichnen. Ich liste hier nicht alle Funktionen auf – mehr dazu finden Sie hier. Im Abschnitt AWS Config Pricing wird erläutert, wie AWS Config abgerechnet wird, inklusive einiger anschaulicher Beispiele. Kurz zusammengefasst: Die Kosten richten sich nach der Anzahl der erfassten Configuration Items, der Anzahl aktiver AWS Config Rule Evaluations und der Anzahl der Conformance Pack Evaluations in Ihrem Account – hinzu kommen Zusatzkosten etwa für S3-Storage und SNS. Bei einer dynamischen Infrastruktur mit vielen Konfigurationsänderungen können die AWS Config Kosten rasant steigen. Dieser Beitrag nimmt die AWS Config Kosten unter die Lupe, zeigt Strategien zur Kostensenkung und gibt Tipps, wie Sie unerwarteten Kostenspitzen auf den Grund gehen.

HINWEIS — Aus Datenschutzgründen nutze ich für die Demonstration meinen eigenen AWS-Playground. Dort liegen zwar nicht allzu viele Config-Daten, aber genug, um die Vorgehensweise nachvollziehbar zu machen.

  • Erfasste Configuration Items — Werfen Sie einen Blick auf die von AWS Config erfassten Configuration Items im AWS Config Dashboard (image1) oder rufen Sie dieselben Metriken in CloudWatch Metrics auf (image2).

image1 — Erfasste Configuration Items — AWS Config Dashboard

image2 — Erfasste Configuration Items — AWS CloudWatch Metrics

  • Das sagt uns allerdings nicht besonders viel, oder? Je nach Aktivität in Ihrem Account können diese erfassten Items täglich von einigen hundert auf einige tausend ansteigen. Um genauer zu verstehen, was tatsächlich aufgezeichnet wird, habe ich die von AWS Config in meinem konfigurierten S3-Bucket abgelegten Daten (image3) herangezogen und mit dem AWS Athena Service ausgewertet. Sie finden den Bucket unter AWS Config > Settings > Delivery Method.

image3 — S3-Bucket als Delivery Method für AWS Config Records

  • Ein Blick in S3 zeigt: Dort liegen zahlreiche von AWS Config abgelegte JSON-Dateien, sortiert nach Organisations-ID, Account-ID, Region, Monat, Datum usw. (siehe unten). Die Dateigrößen variieren je nach Anzahl der von AWS Config erfassten Items.

Von Config in S3 abgelegte Dateien

  • Anschließend habe ich versucht, die Dateien zu lesen und mir den Inhalt anzusehen. Beispielhaft habe ich die ersten beiden Dateien herangezogen.
nikhilpawar@MacBookPro Downloads % cat xxxxxxxxxx_Config_us-east-1_ConfigHistory_AWS__AppConfig__DeploymentStrategy_20241029T013419Z_20241029T013419Z_1.json
{"fileVersion":"1.0","configurationItems":[{"relatedEvents":[],"relationships":[],"configuration":{"Id":"AppConfig.AllAtOnce","ReplicateTo":"NONE","GrowthType":"LINEAR","Description":"Quick","DeploymentDurationInMinutes":0,"GrowthFactor":100.0,"FinalBakeTimeInMinutes":10,"Name":"AppConfig.AllAtOnce","Tags":[]},"supplementaryConfiguration":{},"tags":{},"configurationItemVersion":"1.3","configurationItemCaptureTime":"2024-10-29T01:34:19.420Z","configurationStateId":1730165659420,"awsAccountId":"xxxxxxxxxx","configurationItemStatus":"ResourceDiscovered","resourceType":"AWS::AppConfig::DeploymentStrategy","resourceId":"AppConfig.AllAtOnce","resourceName":"AppConfig.AllAtOnce","ARN":"arn:aws:appconfig:us-east-1:xxxxxxxxxx:deploymentstrategy/AppConfig.AllAtOnce","awsRegion":"us-east-1","availabilityZone":"Regional","configurationStateMd5Hash":""},{"relatedEvents":[],"relationships":[],"configuration":{"Id":"AppConfig.Canary10Percent20Minutes","ReplicateTo":"NONE","GrowthType":"EXPONENTIAL","Description":"AWS Recommended","DeploymentDurationInMinutes":20,"GrowthFactor":10.0,"FinalBakeTimeInMinutes":10,"Name":"AppConfig.Canary10Percent20Minutes","Tags":[]},"supplementaryConfiguration":{},"tags":{},"configurationItemVersion":"1.3","configurationItemCaptureTime":"2024-10-29T01:34:19.546Z","configurationStateId":1730165659546,"awsAccountId":"xxxxxxxxxx","configurationItemStatus":"ResourceDiscovered","resourceType":"AWS::AppConfig::DeploymentStrategy","resourceId":"AppConfig.Canary10Percent20Minutes","resourceName":"AppConfig.Canary10Percent20Minutes","ARN":"arn:aws:appconfig:us-east-1:xxxxxxxxxx:deploymentstrategy/AppConfig.Canary10Percent20Minutes","awsRegion":"us-east-1","availabilityZone":"Regional","configurationStateMd5Hash":""},{"relatedEvents":[],"relationships":[],"configuration":{"Id":"AppConfig.Linear20PercentEvery6Minutes","ReplicateTo":"NONE","GrowthType":"LINEAR","Description":"AWS Recommended","DeploymentDurationInMinutes":30,"GrowthFactor":20.0,"FinalBakeTimeInMinutes":30,"Name":"AppConfig.Linear20PercentEvery6Minutes","Tags":[]},"supplementaryConfiguration":{},"tags":{},"configurationItemVersion":"1.3","configurationItemCaptureTime":"2024-10-29T01:34:19.625Z","configurationStateId":1730165659625,"awsAccountId":"xxxxxxxxxx","configurationItemStatus":"ResourceDiscovered","resourceType":"AWS::AppConfig::DeploymentStrategy","resourceId":"AppConfig.Linear20PercentEvery6Minutes","resourceName":"AppConfig.Linear20PercentEvery6Minutes","ARN":"arn:aws:appconfig:us-east-1:xxxxxxxxxx:deploymentstrategy/AppConfig.Linear20PercentEvery6Minutes","awsRegion":"us-east-1","availabilityZone":"Regional","configurationStateMd5Hash":""},{"relatedEvents":[],"relationships":[],"configuration":{"Id":"AppConfig.Linear50PercentEvery30Seconds","ReplicateTo":"NONE","GrowthType":"LINEAR","Description":"Test/Demo","DeploymentDurationInMinutes":1,"GrowthFactor":50.0,"FinalBakeTimeInMinutes":1,"Name":"AppConfig.Linear50PercentEvery30Seconds","Tags":[]},"supplementaryConfiguration":{},"tags":{},"configurationItemVersion":"1.3","configurationItemCaptureTime":"2024-10-29T01:34:19.475Z","configurationStateId":1730165659475,"awsAccountId":"xxxxxxxxxx","configurationItemStatus":"ResourceDiscovered","resourceType":"AWS::AppConfig::DeploymentStrategy","resourceId":"AppConfig.Linear50PercentEvery30Seconds","resourceName":"AppConfig.Linear50PercentEvery30Seconds","ARN":"arn:aws:appconfig:us-east-1:xxxxxxxxxx:deploymentstrategy/AppConfig.Linear50PercentEvery30Seconds","awsRegion":"us-east-1","availabilityZone":"Regional","configurationStateMd5Hash":""}]}%                                                  nikhilpawar@MacBookPro Downloads % cat xxxxxxxxxx_Config_us-east-1_ConfigHistory_AWS__AppConfig__DeploymentStrategy_20241029T013419Z_20241029T013419Z_1.json | jq
{
  "fileVersion": "1.0",
  "configurationItems": [\
    {\
      "relatedEvents": [],\
      "relationships": [],\
      "configuration": {\
        "Id": "AppConfig.AllAtOnce",\
        "ReplicateTo": "NONE",\
        "GrowthType": "LINEAR",\
        "Description": "Quick",\
        "DeploymentDurationInMinutes": 0,\
        "GrowthFactor": 100.0,\
        "FinalBakeTimeInMinutes": 10,\
        "Name": "AppConfig.AllAtOnce",\
        "Tags": []\
      },\
      "supplementaryConfiguration": {},\
      "tags": {},\
      "configurationItemVersion": "1.3",\
      "configurationItemCaptureTime": "2024-10-29T01:34:19.420Z",\
      "configurationStateId": 1730165659420,\
      "awsAccountId": "xxxxxxxxxx",\
      "configurationItemStatus": "ResourceDiscovered",\
      "resourceType": "AWS::AppConfig::DeploymentStrategy",\
      "resourceId": "AppConfig.AllAtOnce",\
      "resourceName": "AppConfig.AllAtOnce",\
      "ARN": "arn:aws:appconfig:us-east-1:xxxxxxxxxx:deploymentstrategy/AppConfig.AllAtOnce",\
      "awsRegion": "us-east-1",\
      "availabilityZone": "Regional",\
      "configurationStateMd5Hash": ""\
    },\
    {\
      "relatedEvents": [],\
      "relationships": [],\
      "configuration": {\
        "Id": "AppConfig.Canary10Percent20Minutes",\
        "ReplicateTo": "NONE",\
        "GrowthType": "EXPONENTIAL",\
        "Description": "AWS Recommended",\
        "DeploymentDurationInMinutes": 20,\
        "GrowthFactor": 10.0,\
        "FinalBakeTimeInMinutes": 10,\
        "Name": "AppConfig.Canary10Percent20Minutes",\
        "Tags": []\
      },\
      "supplementaryConfiguration": {},\
      "tags": {},\
      "configurationItemVersion": "1.3",\
      "configurationItemCaptureTime": "2024-10-29T01:34:19.546Z",\
      "configurationStateId": 1730165659546,\
      "awsAccountId": "xxxxxxxxxx",\
      "configurationItemStatus": "ResourceDiscovered",\
      "resourceType": "AWS::AppConfig::DeploymentStrategy",\
      "resourceId": "AppConfig.Canary10Percent20Minutes",\
      "resourceName": "AppConfig.Canary10Percent20Minutes",\
      "ARN": "arn:aws:appconfig:us-east-1:xxxxxxxxxx:deploymentstrategy/AppConfig.Canary10Percent20Minutes",\
      "awsRegion": "us-east-1",\
      "availabilityZone": "Regional",\
      "configurationStateMd5Hash": ""\
    },\
    {\
      "relatedEvents": [],\
      "relationships": [],\
      "configuration": {\
        "Id": "AppConfig.Linear50PercentEvery30Seconds",\
        "ReplicateTo": "NONE",\
        "GrowthType": "LINEAR",\
        "Description": "Test/Demo",\
        "DeploymentDurationInMinutes": 1,\
        "GrowthFactor": 50.0,\
        "FinalBakeTimeInMinutes": 1,\
        "Name": "AppConfig.Linear50PercentEvery30Seconds",\
        "Tags": []\
      },\
      "supplementaryConfiguration": {},\
      "tags": {},\
      "configurationItemVersion": "1.3",\
      "configurationItemCaptureTime": "2024-10-29T01:34:19.475Z",\
      "configurationStateId": 1730165659475,\
      "awsAccountId": "xxxxxxxxxx",\
      "configurationItemStatus": "ResourceDiscovered",\
      "resourceType": "AWS::AppConfig::DeploymentStrategy",\
      "resourceId": "AppConfig.Linear50PercentEvery30Seconds",\
      "resourceName": "AppConfig.Linear50PercentEvery30Seconds",\
      "ARN": "arn:aws:appconfig:us-east-1:xxxxxxxxxx:deploymentstrategy/AppConfig.Linear50PercentEvery30Seconds",\
      "awsRegion": "us-east-1",\
      "availabilityZone": "Regional",\
      "configurationStateMd5Hash": ""\
    }\
  ]
}
  • Diese JSON-Dateien manuell oder per Skript zu lesen, ist mühsam. Am besten greifen Sie zu AWS Athena – ebenfalls ein leistungsfähiger Service.
  • Athena-Tabelle anlegen — Beim Anlegen von Athena-Tabellen für AWS Config Daten lassen sich Abfragen für unterschiedliche Zeiträume und Datenbereiche zuschneiden. Die Syntax variiert je nachdem, was Sie auswerten möchten:
  • Snapshot eines einzelnen Tages
  • Daten über mehrere Tage
  • Bestimmter Monat oder bestimmtes Jahr
  • Vollständige historische Config-Daten

HINWEIS — Ersetzen Sie in den folgenden Abfragen "xxxxxxxxxx" durch Ihre AWS Account ID. Außerdem empfehle ich, statt alle Daten zu scannen, jeweils nur den benötigten Zeitraum abzufragen ( Athena Pricing).

1. Snapshot eines einzelnen Tages

1.1:- Athena-Tabelle anlegen: z. B. aws_config_table_single_day_2024_11_08

CREATE EXTERNAL TABLE aws_config_table_single_day_2024_11_08 (
  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://config-bucket-xxxxxxxxxxxx/AWSLogs/xxxxxxxxxxxx/Config/us-east-1/2024/11/8';

1.1:- Athena-Tabelle — Snapshot eines einzelnen Tages

1.2:- Gesamtanzahl der Records ermitteln: (Optional – Sie können die Gesamtzahl prüfen; sie sollte mit den eingangs betrachteten CloudWatch-Metriken übereinstimmen.)

SELECT
  COUNT(1) AS record_count
FROM
  default.aws_config_table_single_day_2024_11_08
CROSS JOIN
  UNNEST(configurationitems) AS t(configurationItem)
WHERE
  configurationItem.resourceType IS NOT NULL

1.2:- Gesamtanzahl der Records pro Tag

1.3:- Resource Type und Anzahl der erfassten Änderungen ermitteln: Mit der folgenden Abfrage identifizieren Sie die Resource Types mit den meisten Konfigurationsänderungen – und damit potenzielle Kostentreiber in Ihrem AWS Config Monitoring.

SELECT
  configurationItem.resourceType,
  COUNT(configurationItem.resourceId) AS NumberOfChanges
FROM
  default.aws_config_table_single_day_2024_11_08
CROSS JOIN
  UNNEST(configurationitems) AS t(configurationItem)
GROUP BY
  configurationItem.resourceType
ORDER BY
  NumberOfChanges DESC;

1.3:- Resource Types und Anzahl der erfassten Änderungen

1.4:- Resource IDs ermitteln: Um Resource Types mit hoher Änderungsfrequenz weiter zu analysieren, können Sie auf einzelne Ressourcen herunterbrechen. Beispiel: Die vorherige Abfrage hat ergeben, dass AWS:EC2:Subnet die meisten Konfigurationsänderungen aufweist. Die folgende Abfrage zeigt, welche konkreten Subnet-IDs zu dieser Änderungsfrequenz beitragen.

SELECT
  configurationItem.resourceType,
  configurationItem.resourceId,
  COUNT(configurationItem.resourceId) AS NumberOfChanges
FROM
  default.aws_config_table_single_day_2024_11_08
CROSS JOIN
  UNNEST(configurationitems) AS t(configurationItem)
GROUP BY
  configurationItem.resourceType,
  configurationItem.resourceId
ORDER BY
  NumberOfChanges DESC

1.4:- Identifizierte Resource IDs

Damit haben Sie ein klares Bild davon, was passiert. Dieselben Abfragemuster lassen sich auf beliebige Zeiträume anwenden. Ob monatliche Trends, bestimmte Datumsbereiche oder die gesamte Config-Historie – Sie passen lediglich die Zeitparameter an, der analytische Ansatz bleibt gleich.

2. Bestimmter Monat

2.1:- Athena-Tabelle anlegen: z. B. aws_config_table_november_2024

CREATE EXTERNAL TABLE aws_config_table_november_2024 (
  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://config-bucket-xxxxxxxxxxxx/AWSLogs/xxxxxxxxxxxx/Config/us-east-1/2024/10/';

2.1:- Athena-Tabelle — Daten eines Monats

2.2:- Gesamtanzahl der Records ermitteln: Siehe Schritt 1.2 (Gesamtanzahl der Records ermitteln) und passen Sie den Tabellennamen an.

2.2:- Gesamtanzahl der Records pro Monat

2.3:- Resource Type und Anzahl der erfassten Änderungen ermitteln: Siehe Schritt 1.3 (Resource Type und Anzahl der erfassten Änderungen ermitteln) und passen Sie den Tabellennamen an.

2.3:- Resource Types und Anzahl der erfassten Änderungen

2.4:- Resource IDs ermitteln: Siehe Schritt 1.4 (Resource IDs ermitteln) und passen Sie den Tabellennamen an.

2.4:- Identifizierte Resource IDs

3. Alle Config-Daten

3.1:- Athena-Tabelle anlegen: z. B. aws_config_table_all

CREATE EXTERNAL TABLE aws_config_table_all (
  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://config-bucket-XXXXXXXXXXXX/AWSLogs/XXXXXXXXXXXX/Config/us-east-1/';

3.1:- Athena-Tabelle — alle Config-Daten

3.2:- Gesamtanzahl der Records: Siehe Schritt 1.2 (Gesamtanzahl der Records ermitteln) und passen Sie den Tabellennamen an.

3.2:- Gesamtanzahl der Records

3.3:- Resource Type und Anzahl der erfassten Änderungen ermitteln: Siehe Schritt 1.3 (Resource Type und Anzahl der erfassten Änderungen ermitteln) und passen Sie den Tabellennamen an.

3.3:- Resource Types und Anzahl der erfassten Änderungen

3.4:- Resource IDs ermitteln: Siehe Schritt 1.4 (Resource IDs ermitteln) und passen Sie den Tabellennamen an.

3.4:- Identifizierte Resource IDs

4. Daten über mehrere Tage

4.1 Athena-Tabelle anlegen: In diesem Szenario partitionieren wir die Athena-Tabelle per Partition Projection für den Zeitraum 2024/11/7 bis 2024/11/10. Passen Sie den Zeitraum nach Bedarf an.

CREATE EXTERNAL TABLE aws_config_table_period_2024_11_07to2024_11_10 (
  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://config-bucket-xxxxxxxxxxxx/AWSLogs/xxxxxxxxxxxx/Config/us-east-1'
TBLPROPERTIES (
  'projection.enabled'='true',
  'projection.year.interval'='1',
  'projection.year.range'='2024,2024',
  'projection.year.type'='integer',
  'projection.month.interval'='1',
  'projection.month.range'='10,11',
  'projection.month.type'='integer',
  'projection.day.interval'='1',
  'projection.day.range'='7,10',
  'projection.day.type'='integer',
  'storage.location.template'='s3://config-bucket-xxxxxxxxxxxx/AWSLogs/xxxxxxxxxxxx/Config/us-east-1/${year}/${month}/${day}/ConfigHistory/')

4.1:- Athena-Tabelle — gewählter Zeitraum

4.2:- Gesamtanzahl der Records:

SELECT result.configurationitemcapturetime,
         count(result.configurationitemcapturetime) AS NumberOfChanges
FROM
    (SELECT regexp_replace(configurationItem.configurationItemCaptureTime,
         '(.+)(T.+)', '$1') AS configurationitemcapturetime
    FROM default.aws_config_table_period_2024_11_07to2024_11_10
    CROSS JOIN UNNEST(configurationitems) AS t(configurationItem)
    WHERE "$path" LIKE '%ConfigHistory%'
            AND configurationItem.configurationItemCaptureTime >= '2024-11-05T%'
            AND configurationItem.configurationItemCaptureTime <= '2024-11-12T%') result
GROUP BY  result.configurationitemcapturetime
ORDER BY  result.configurationitemcapturetime

4.2:- Gesamtanzahl der Records

4.3:- Resource Type und Anzahl der erfassten Änderungen ermitteln:

SELECT configurationItem.resourceType,
       configurationItem.resourceId,
       COUNT(configurationItem.resourceId) AS NumberOfChanges
FROM default.aws_config_table_period_2024_11_07to2024_11_10
CROSS JOIN UNNEST(configurationitems) AS t(configurationItem)
WHERE "$path" LIKE '%ConfigHistory%'
        AND configurationItem.configurationItemCaptureTime >= '2024-11-05T%'
        AND configurationItem.configurationItemCaptureTime <= '2024-11-12T%'
GROUP BY  configurationItem.resourceType, configurationItem.resourceId
ORDER BY  NumberOfChanges DESC

### oder ###

SELECT configurationItem.resourceType,
       configurationItem.resourceId,
       CAST(COUNT(configurationItem.resourceId) AS INTEGER) AS NumberOfChanges
FROM default.aws_config_table_period_2024_11_07to2024_11_10
CROSS JOIN UNNEST(configurationitems) AS t(configurationItem)
WHERE "$path" LIKE '%ConfigHistory%'
      AND configurationItem.configurationItemCaptureTime >= '2024-11-05T%'
      AND configurationItem.configurationItemCaptureTime <= '2024-11-12T%'
GROUP BY configurationItem.resourceType, configurationItem.resourceId
ORDER BY NumberOfChanges DESC

4.3:- Resource Types und Anzahl der erfassten Änderungen

4.4:- Resource IDs ermitteln

SELECT configurationItem.resourceId,
       configurationItem.resourceType,
       COUNT(configurationItem.resourceId) AS NumberOfChanges
FROM default.aws_config_table_period_2024_11_07to2024_11_10
CROSS JOIN UNNEST(configurationitems) AS t(configurationItem)
WHERE "$path" LIKE '%ConfigHistory%'
      AND configurationItem.configurationItemCaptureTime >= '2024-11-05T%'
      AND configurationItem.configurationItemCaptureTime <= '2024-11-12T%'
GROUP BY
     configurationItem.resourceId,
     configurationItem.resourceType
ORDER BY NumberOfChanges DESC

4.4:- Identifizierte Resource IDs

  • Damit haben Sie für den gewünschten Zeitraum die Resource IDs und Resource Types mit den meisten erfassten Items identifiziert.

Seit Juni 2023 unterstützt AWS Config das Ausschließen von Resource Types beim Recording. Sie können Ihre Einstellungen für Resource Types nun neu bewerten und entsprechend anpassen oder ungewöhnlichen Kostenspitzen an einzelnen Tagen gezielt nachgehen.

Erfasste Ressourcen

Ein weiterer Punkt, den ich erwähnen möchte: die Aufbewahrungsdauer der Daten (Data Retention Period). Sie lässt sich an Ihre Anforderungen anpassen.

Aufbewahrungsdauer

Fazit: AWS Config ist ein leistungsstarker Service, der gerade in dynamischen Umgebungen schnell teuer werden kann. Mit strategischen Ansätzen wie der Auswertung erfasster Configuration Items, dem Einsatz von AWS Athena für detaillierte Analysen, dem gezielten Ausschluss bestimmter Resource Types beim Recording sowie einer durchdachten Steuerung der Aufbewahrungsdauer erhalten Unternehmen granulare Einblicke in ihre AWS Config Kosten – ohne Abstriche bei der Transparenz ihrer Infrastruktur. Entscheidend ist nicht, das Monitoring abzuschalten, sondern zu optimieren, was und wie Sie überwachen. Wer die Änderungsmuster der eigenen Ressourcen kennt und gezielt aufzeichnet, bringt umfassendes Monitoring und kosteneffiziente Verwaltung in Einklang.

Wenn Sie das Potenzial Ihrer AWS Config Nutzung voll ausschöpfen möchten oder sich für unsere Services interessieren, melden Sie sich gern bei uns. Sie erreichen uns hier.