AWS Germany – Amazon Web Services in Deutschland

Überprüfen Sie Ihre AWS Free Tier-Nutzung programmatisch mit einer neuen API

Von Danilo Poccia, Chief Evangelist, übersetzt von Alex König, Sr. Solutions Architect, AWS

Ab heute können Sie Ihre Nutzung des AWS Free Tier mit der neuen AWS Free Tier API überprüfen. Sie können die API direkt mit der AWS-Befehlszeilenschnittstelle (AWS CLI) verwenden oder sie mit den AWS SDKs in eine Anwendung integrieren.

Das AWS Free Tier-Programm bietet Ihnen die Möglichkeit, AWS-Services bis zu den für jeden Service festgelegten Grenzen kostenlos zu erkunden und auszuprobieren. Das AWS Free Tier-Programm umfasst drei verschiedene Arten von Angeboten:

  • Dauerhaft kostenlose Angebote ermöglichen es Kunden, einen Service bis zu bestimmten Grenzen kostenlos zu nutzen, solange sie AWS-Kunden sind.
  • Bei den 12-Monats-Angeboten können Kunden einen Dienst ein Jahr lang ab dem Datum der Aktivierung des Kontos bis zu den angegebenen Grenzen kostenlos nutzen.
  • Kurzzeitige Testversionen sind je nach Service für einen bestimmten Zeitraum oder bis zu einem einmaligen Limit kostenlos.

Sobald Sie beginnen, AWS-Ressourcen zu nutzen und mit AWS-Services zu interagieren, die ein kostenloses Kontingent anbieten, müssen Sie Ihren Fortschritt in Richtung des Limits für das kostenlose Kontingent verfolgen, damit Sie wissen, wann Sie mit dem Wechsel zum kostenpflichtigen Kontingent rechnen müssen.

Es gibt einige Möglichkeiten, wie Sie die Nutzung Ihres AWS Free Tier verfolgen können:

Schauen wir uns an, wie diese neue API in der Praxis funktioniert.

Verwendung der AWS Free Tier API mit der AWS CLI
Ich habe Zugang zu einem neuen Konto, das in den letzten Monaten erstellt wurde. Hier verwende ich die AWS-Befehlszeilenschnittstelle (AWS CLI), um die GetFreeTierUsage-API aufzurufen.

aws freetier get-free-tier-usage

Die Antwort ist ein JSON-Dokument, das eine Beschreibung der aktuellen Nutzung für jedes Angebot enthält, das für dieses Konto im aktuellen Abrechnungszeitraum gilt. Der Einfachheit halber zeige ich hier nur ein paar Angebote.

{
    "freeTierUsages": [
        {
            "service": "Amazon Simple Queue Service",
            "operation": "",
            "usageType": "Requests",
            "region": "global",
            "actualUsageAmount": 294387.0,
            "forecastedUsageAmount": 679354.6153846154,
            "limit": 1000000.0,
            "unit": "Requests",
            "description": "1000000.0 Requests are always free per month as part of AWS Free Usage Tier (Global-Requests)",
            "freeTierType": "Always Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "",
            "usageType": "EBS:VolumeUsage",
            "region": "global",
            "actualUsageAmount": 9.0,
            "forecastedUsageAmount": 33.0,
            "limit": 30.0,
            "unit": "GB-Mo",
            "description": "30.0 GB-Mo for free for 12 months as part of AWS Free Usage Tier (Global-EBS:VolumeUsage)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "RunInstances:0002",
            "usageType": "BoxUsage:freetier.micro",
            "region": "global",
            "actualUsageAmount": 476.0,
            "forecastedUsageAmount": 851.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "RunInstances",
            "usageType": "BoxUsage:freetier.micro",
            "region": "global",
            "actualUsageAmount": 225.0,
            "forecastedUsageAmount": 485.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Redshift",
            "operation": "RunComputeNode:0001",
            "usageType": "Node:dc2.large",
            "region": "global",
            "actualUsageAmount": 367.0,
            "forecastedUsageAmount": 735.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free per month during a short-term trial as part of AWS Free Usage Tier (Global-Node:dc2.large)",
            "freeTierType": "Free Trial"
        },
        ...
    ]
}

In der freeTierUsages-Liste finde ich einige der am häufigsten genutzten Angebote:

Werfen wir einen Blick auf einige Eigenschaften dieser Angebote:

  • description gibt eine lesbare Beschreibung, worum es bei dem Angebot geht.
  • freeTierType gibt den Typ des Angebots an: Always Free (immer kostenlos), 12 Months Free (12 Monate kostenlos) oder Free Trial (zeitlich begrenzte, kostenlose Testversion).
  • unit beschreibt die Einheit, die zur Messung der Nutzung des Angebots verwendet wird. Zum Beispiel Hrs (Stunden) für EC2-Instanzen, GB-Mo (GB-Monat) für EBS-Volumes, Requests (Anfragen) für Amazon SQS und so weiter.

Drei interessante Eigenschaften sind das Limit des Angebots (limit), die tatsächliche Nutzungsmenge des Angebots (actualUsageAmount) und die prognostizierte Nutzungsmenge (forecastedUsageAmount) am Ende des Abrechnungszeitraums (des aktuellen Monats). Sie beruhen alle auf der vom Angebot verwendeten Einheit. Die Windows- und Linux-Compute-Angebote haben zum Beispiel jeweils ein Limit von 750 Stunden pro Monat. Für das Speicherangebot liegt die Grenze bei 30 GB pro Monat. Für Amazon SQS liegt das Limit des Angebots bei einer Million Anfragen pro Monat.

Einzelheiten zu den Limits und den kostenlos angebotenen Services finden Sie auf der Seite AWS Free Tier und auf der Preisseite des jeweiligen Services. Die von der AWS Free Tier-API bereitgestellten tatsächlichen und prognostizierten Nutzungsmengen werden bis zu dreimal pro Tag ausgewertet, ähnlich wie bei den AWS-Kosten- und Nutzungsberichten.

Wenn die prognostizierte Nutzung über dem Limit für das Angebot liegt, muss ich damit rechnen, dass ich vor Ende des Abrechnungszeitraums zum Umlageverfahren übergehe, wenn ich den Dienst weiterhin auf die gleiche Weise nutze. Die tatsächliche Nutzung wird von der GetFreeTierUsage-API nicht mehr verfolgt, sobald das Limit erreicht ist. Das bedeutet, dass die tatsächliche Nutzung nicht größer sein kann als das Limit. Wenn das der Fall ist, wird das entsprechende Angebot nicht von der API zurückgegeben.

Ich suche beispielsweise mit der Option --query der AWS-CLI nach den Angeboten, bei denen die Prognose größer als das Limit ist:

aws freetier get-free-tier-usage --query 'freeTierUsages[?forecastedUsageAmount > limit]'
{
    "freeTierUsages": [
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "",
            "usageType": "EBS:VolumeUsage",
            "region": "global",
            "actualUsageAmount": 9.0,
            "forecastedUsageAmount": 33.0,
            "limit": 30.0,
            "unit": "GB-Mo",
            "description": "30.0 GB-Mo for free for 12 months as part of AWS Free Usage Tier (Global-EBS:VolumeUsage)",
            "freeTierType": "12 Months Free"
        },
        {
            "service": "Amazon Elastic Compute Cloud",
            "operation": "RunInstances:0002",
            "usageType": "BoxUsage:freetier.micro",
            "region": "global",
            "actualUsageAmount": 476.0,
            "forecastedUsageAmount": 851.0,
            "limit": 750.0,
            "unit": "Hrs",
            "description": "750.0 Hrs for free for 12 months as part of AWS Free Usage Tier (Global-BoxUsage:freetier.micro)",
            "freeTierType": "12 Months Free"
        }
    ]
}

Diesem Ergebnis zufolge kann ich, wenn ich innerhalb der Free Tier-Grenzen bleiben möchte, überprüfen, wie ich EBS-Volumes und Amazon EC2-Compute mit Windows nutze.

Zum Beispiel nutze ich derzeit 476 Stunden der 750 Stunden, die in einem Monat für Windows EC2-Instanzen zur Verfügung stehen. Bei diesem Tempo werde ich voraussichtlich die Grenze überschreiten und etwa 851 Stunden erreichen. Wenn mich die Kosten stören, kann ich meine Windows-Instanzen, in der Nacht oder wenn sie nicht gebraucht werden, abschalten.

Wichtig zu Wissen

Zuvor war die Free Tier-API[EN] nicht öffentlich verfügbar und wurde intern für die Free Tier-Seite in der AWS Billing-Konsole verwendet, wo Sie dieselben Daten finden können. Wir hoffen, dass die Veröffentlichung der GetFreeTierUsage-API[EN] Ihnen dabei helfen kann, Spaß mit AWS zu haben. Die API unterstützt sie dabei die AWS Free Tier-Angebote besser zu nutzen und zu wissen, was kostenlos ist und was zu tun ist, wenn Sie ein Limit erreichen oder überschreiten.

Anhand dieser Informationen können Sie benutzerdefinierte Berichte erstellen, die Ihren Geschäftsanforderungen entsprechen. Wenn Sie beispielsweise Rechenkosten vermeiden möchten, können Sie Ihre EC2-Instanzen programmatisch stoppen, in den Ruhezustand versetzen oder die Größe einer EC2 Auto Scaling-Gruppe auf Null setzen. Sie können eines der AWS-SDKs verwenden, um eine Web-App zu erstellen oder diese Daten in eine Überwachungslösung zu integrieren.

Generell können Sie zusätzliche E-Mails oder Benachrichtigungen (z. B. über Amazon SES oder Amazon SNS) senden, wenn die Nutzung eines Angebots nahe an der Grenze ist. Auf diese Weise können Sie den maximalen Nutzen aus einem Angebot ziehen, ohne dass Ihnen zusätzliche Kosten entstehen. Sie können dies auch mit AWS-Budgets tun, wenn Sie ein Nutzungsbudget auf das Free Tier-Limit festlegen.

Wenn ein Angebot für dieses Konto nicht mehr gilt (z. B. weil es am Ende des Vormonats abgelaufen ist), wird der entsprechende Eintrag nicht in die Liste ihrer Free Tier Services aufgenommen. Wenn Sie die Ergebnisse früherer API-Aufrufe speichern, können Sie die Liste der Angebote mit denen vergleichen, die während des vorherigen Abrechnungszyklus gemeldet wurden. So sehen sie, welche Angebote kürzlich abgelaufen sind.

Um mehr darüber zu erfahren, wie Sie Ihre AWS Free Tier-Nutzung nachverfolgen können, haben wir diese drei 10-minütigen Kurse auf AWS Skill Builder erstellt, einem Online-Lernzentrum, in dem Sie von AWS-Experten lernen und online Cloud-Fähigkeiten aufbauen können:

Über die Autoren

Alex König ist ein Solutions Architect mit Sitz in Frankfurt, Deutschland. Er verfügt über mehr als 10 Jahre Erfahrung in der IT-Branche und hilft Kunden dabei sichere, kosteneffiziente und ausfallsichere Architekturen auf AWS zu gestalten.
Danilo arbeitet mit Startups und Unternehmen jeder Größe zusammen, um deren Innovation zu unterstützen. In seiner Rolle als Chief Evangelist (EMEA) bei Amazon Web Services setzt er seine Erfahrung ein, um Menschen dabei zu helfen, ihre Ideen zum Leben zu erwecken. Dabei konzentriert er sich auf serverlose Architekturen und ereignisgesteuerte Programmierung sowie auf die technischen und geschäftlichen Auswirkungen von maschinellem Lernen und Edge Computing. Er ist der Autor von AWS Lambda in Action von Manning.