Direkt zum Inhalt

Wie behebe ich Fehler im Daten-Feed für EC2-Spot-Instances, die mit Amazon S3 konfiguriert sind?

Lesedauer: 4 Minute
0

Ich habe einen Amazon Elastic Compute Cloud (Amazon EC2)-Daten-Feed mit Amazon Simple Storage Service (Amazon S3) konfiguriert. Ich möchte Probleme mit dem Daten-Feed beheben.

Kurzbeschreibung

Um deine Gebühren für Amazon-EC2-Spot-Instances zu überprüfen, konfiguriere einen Daten-Feed, der über die Nutzung und Preise deiner Spot Instances berichtet. Wenn du den Daten-Feed abonnierst, speichert Amazon EC2 diese Daten in einem S3-Bucket. Wenn du Probleme mit deinem Daten-Feed hast, führe je nach Problem die folgenden Schritte zur Fehlerbehebung durch.

Lösung

Hinweis: Wenn du beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhältst, stelle sicher, dass du die neueste Version von AWS CLI verwendest.

AWS-KMS-Verschlüsselung

Dein S3-Bucket ist möglicherweise mit einem vom Kunden verwalteten AWS Key Management Service (AWS KMS)-Schlüssel verschlüsselt. In diesem Fall musst du den Service delivery.logs.amazonaws.com innerhalb der Berechtigungen der AWS-KMS-Schlüsselrichtlinie zulassen. Dadurch kann AWS KMS den Daten-Feed an den verschlüsselten S3-Bucket übermitteln.

Nimm die folgenden Berechtigungen in deine Schlüsselrichtlinie auf:

{
  "Sid": "Allow Logs Delivery to use the key",
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "delivery.logs.amazonaws.com"
    ]
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}

Weitere Informationen findest du unter Serverseitige Amazon-S3-Bucket-Verschlüsselung.

ACL-Berechtigungen

Wenn du den Daten-Feed abonnierst, erhält dein Konto Zugriffssteuerungslistenberechtigungen (ACL) für deinen S3-Bucket, um den Daten-Feed zu empfangen. Ohne diese Berechtigungen stoppt der Daten-Feed die Übermittlung an den Bucket. Stelle sicher, dass diese Berechtigungen noch in deinem Konto vorhanden sind:

  1. Öffne die Amazon S3-Konsole.
  2. Wähle im Navigationsbereich Buckets aus und wähle dann den S3-Bucket aus, der deinem Daten-Feed zugeordnet ist.
  3. Wähle die Registerkarte Berechtigungen aus.
  4. Suche unter Zugriffssteuerungsliste (ACL) das externe Konto, das als Berechtigungsempfänger hinzugefügt wurde und den Daten-Feed abonniert hat. Stelle sicher, dass dieses Konto die FULL_CONTROL-Berechtigung für deinen S3-Bucket hat. Die ACL-Berechtigung für das AWS-Konto awslogsdelivery wird als kanonische ID für das Konto hinzugefügt:
    c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0

Wenn das Konto nicht über FULL_CONTROL verfügt, muss es den Daten-Feed erneut abonnieren, um die erforderlichen ACL-Berechtigungen zu erhalten. Führe dazu den AWS-CLI-Befehl create-spot-datafeed-subscription aus.

Hinweis: Wenn du dein Daten-Feed-Abonnement entfernst, werden dadurch nicht automatisch die zugehörigen ACL-Berechtigungen gelöscht. Wenn du deinen Daten-Feed löschen möchtest, musst du auf die Berechtigungen in der Amazon-S3-Konsole zugreifen (Schritte 1–4), um sie manuell zu löschen.

Daten-Feed-Limit

Du kannst nur einen Daten-Feed pro AWS-Konto erstellen. Um den Daten-Feed in einen anderen S3-Bucket zu übertragen, führe den AWS-CLI-Befehl create-spot-datafeed-subscription erneut mit einem anderen S3-Bucket aus.

EC2-Spot-Instance-Laufzeit

Du erhältst einen Daten-Feed nur für die Zeit, in der deine EC2-Spot-Instances ausgeführt werden. Wenn du beispielsweise deine Spot Instances für drei Stunden anhältst, stellt dein Daten-Feed für diese drei Stunden ebenfalls keine Daten mehr bereit. Dein Daten-Feed wird automatisch wieder aufgenommen, wenn die Spot-Instances erneut gestartet werden.

S3-Objektbesitz

Die Objektbesitzeinstellungen für den S3-Bucket deines Daten-Feeds müssen auf Bucket-Eigentümer bevorzugt oder Objekt-Writer gesetzt sein. Diese Einstellungen ermöglichen ACL-Berechtigungen für deinen S3-Bucket. Wenn du keine dieser Eigentümereinstellungen für deinen S3-Bucket hast, kannst du den Daten-Feed in deinem S3-Bucket nicht konfigurieren. In diesem Fall erhältst du eine Fehlermeldung:

"An error occurred (InaccessibleStorageLocation) when calling the CreateSpotDatafeedSubscription operation: The specified bucket does not exist or does not have enough permissions."

Weitere Informationen findest du unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für deinen Bucket.

Zusätzliche Erwägungen

Beachte bei der Konfiguration deines Daten-Feeds die folgenden Punkte:

  • Für die Aktivierung eines Daten-Feeds fallen keine zusätzlichen Kosten an. Es fallen jedoch Speicherkosten für den Daten-Feed-Speicher in deinem S3-Bucket an.
  • Daten-Feed-Dateien kommen normalerweise einmal pro Stunde in deinem Bucket an. In der Regel deckt eine einzige Datendatei jede Nutzungsstunde ab. Weitere Informationen zur Dateigröße und Ankunftszeit findest du unter Spot-Instance-Daten-Feed.
AWS OFFICIALAktualisiert vor 3 Jahren