View a markdown version of this page

Erstellen einer Infrastrukturkonfiguration - EC2 Image Builder

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen einer Infrastrukturkonfiguration

In diesem Abschnitt wird beschrieben, wie Sie die Image Builder-Konsole oder die imagebuilder Befehle in der verwenden können AWS CLI , um eine Infrastrukturkonfiguration zu erstellen.

Console

Gehen Sie folgendermaßen vor, um eine Infrastrukturkonfigurationsressource von der Image Builder-Konsole aus zu erstellen:

  1. Öffnen Sie die EC2 Image Builder-Konsole unter https://console.aws.amazon.com/imagebuilder/.

  2. Wählen Sie im Navigationsbereich die Option Infrastrukturkonfiguration aus.

  3. Wählen Sie Infrastrukturkonfiguration erstellen aus.

  4. Geben Sie im Abschnitt Allgemein die folgenden erforderlichen Informationen ein:

    • Geben Sie den Namen Ihrer Infrastrukturkonfigurationsressource ein.

    • Wählen Sie eine IAM-Rolle aus, die Sie dem Instanzprofil für Komponentenberechtigungen für Ihre Build- und Test-Instances zuordnen möchten. Image Builder verwendet diese Berechtigungen, um Ihre Komponenten herunterzuladen und auszuführen, Protokolle hochzuladen und alle zusätzlichen Aktionen auszuführen CloudWatch, die die Komponenten in Ihrem Rezept angeben.

  5. Konfigurieren Sie im Bereich AWS Infrastruktur die verbleibenden Infrastruktureinstellungen. Geben Sie die folgenden erforderlichen Informationen ein:

    • Instanztyp — Sie können einen oder mehrere Instanztypen angeben, die für diesen Build verwendet werden sollen. Image Builder wählt je nach Verfügbarkeit einen dieser Instanztypen aus.

      Anmerkung

      Mac-Instanzen werden auf .metal Instanztypen auf einem Dedicated Host ausgeführt. Ihr Instanztyp muss mit einem der Typen übereinstimmen, die für den Host definiert sind, auf dem er ausgeführt wird. Weitere Informationen zu Mac-Instances und eine Liste von Instance-Typen, die das macOS-Betriebssystem nativ unterstützen, finden Sie unter Amazon EC2 Mac-Instances im Amazon EC2-Benutzerhandbuch.

    • SNS-Thema (optional) — Wählen Sie ein SNS-Thema aus, um Benachrichtigungen und Warnmeldungen von EC2 Image Builder zu erhalten.

    Wenn Sie für die folgenden Einstellungen keine Werte angeben, verwenden sie gegebenenfalls dienstspezifische Standardwerte.

    • VPC, Subnetz und Sicherheitsgruppen — Image Builder verwendet Ihre Standard-VPC und Ihr Standard-Subnetz. Weitere Informationen zur Konfiguration von VPC-Schnittstellenendpunkten finden Sie unter. Image Builder und VPC-Endpunkte mit AWS PrivateLink Schnittstelle

    • Konfigurieren Sie im Abschnitt Einstellungen zur Fehlerbehebung die folgenden Werte:

      • Standardmäßig ist das Kontrollkästchen Instanz bei Ausfall beenden aktiviert. Wenn ein Build jedoch fehlschlägt, können Sie zur Fehlerbehebung eine Verbindung zur Amazon EC2-Instance herstellen. Wenn Sie möchten, dass Ihre Instance nach einem Build-Fehler weiter ausgeführt wird, deaktivieren Sie das Kontrollkästchen.

      • Schlüsselpaar — Wenn Ihre Amazon EC2-Instance nach einem Build-Fehler weiter läuft, können Sie ein Schlüsselpaar erstellen oder ein vorhandenes Schlüsselpaar verwenden, um eine Verbindung zur Instance herzustellen und Fehler zu beheben.

      • Protokolle — Sie können einen Amazon S3-Bucket angeben, in den Image Builder Anwendungsprotokolle schreiben kann, um Ihnen bei der Fehlerbehebung bei Ihrem Build und Ihren Tests zu helfen. Wenn Sie keinen Amazon S3-Bucket angeben, schreibt Image Builder die Anwendungsprotokolle in die Instance.

    • Konfigurieren Sie im Abschnitt Einstellungen für Instanz-Metadaten die folgenden Werte, die auf die Amazon EC2-Instances angewendet werden, die Image Builder zum Erstellen und Testen Ihres Images verwendet:

      • Wählen Sie die Metadatenversion aus, um festzustellen, ob Amazon EC2 einen signierten Token-Header für Anfragen zum Abrufen von Instance-Metadaten benötigt.

        • V1 und V2 (Token optional) — Standardwert, wenn Sie nichts auswählen.

        • V2 (Token erforderlich)

        Anmerkung

        Wir empfehlen, dass Sie alle EC2-Instances, die Image Builder von einem Pipeline-Build aus startet, so konfigurieren, dass IMDSv2 verwendet wird, sodass für Anfragen zum Abrufen von Instance-Metadaten ein signierter Token-Header erforderlich ist.

      • Antwort-Hop-Limit für Metadatentokens — Die Anzahl der Netzwerk-Hops, die das Metadaten-Token zurücklegen kann. Gültiger Bereich: 1—64. Wenn Sie keinen Wert festlegen, wendet Image Builder ein Hop-Limit von 2 an.

    • Konfigurieren Sie im Abschnitt Einstellungen für die Instance-Platzierung die folgenden Werte, die auf die Amazon EC2-Instances angewendet werden, die Image Builder zum Erstellen und Testen Ihres Images verwendet:

      • Sie können die Availability Zone auswählen, in der Image Builder Instances während der Image-Erstellung startet.

      • Wählen Sie optional Tenancy für die Server aus, auf denen die von Ihnen gestarteten Instanzen ausgeführt werden. Standardmäßig werden Amazon EC2-Instances auf gemeinsam genutzter Tenancy-Hardware ausgeführt. Das bedeutet, dass sich mehrere AWS-Konten möglicherweise dieselbe physische Hardware teilen. Eine Instanz mit dedicated Tenancy wird auf Single-Tenant-Hardware ausgeführt. Eine Instanz mit host Tenancy wird auf einem Dedicated Host ausgeführt.

        Mac-Instances benötigen einen Dedicated Host, der als Voraussetzung erstellt wird, bevor Sie ein benutzerdefiniertes Image erstellen. Wählen Sie host für Ihr macOS-Image. Sie können dann einen Zielhost oder eine Hostressourcengruppe auswählen, um Instances zu starten. Dies ist jedoch nicht erforderlich, wenn Ihr Dedicated Host die automatische Platzierung aktiviert hat. Weitere Informationen finden Sie Auto-placement im Amazon EC2-Benutzerhandbuch.

        • Tenancy-Host-ID — Die ID des Dedicated Hosts, auf dem die Instances ausgeführt werden.

        • Tenancy-Host-Ressourcengruppe — Der Amazon-Ressourcenname (ARN) der Host-Ressourcengruppe, in der die Instances gestartet werden sollen.

  6. Im Abschnitt Infrastruktur-Tags (optional) können Sie der Amazon EC2-Instance, die Image Builder während des Build-Prozesses startet, Metadaten-Tags zuweisen. Geben Sie Tags als Schlüssel-Wert-Paare ein.

  7. Im Abschnitt „Tags“ (optional) können Sie der Infrastrukturkonfigurationsressource, die Image Builder als Ausgabe erstellt, Metadaten-Tags zuweisen. Geben Sie Tags als Schlüssel-Wert-Paare ein.

AWS CLI

Das folgende Verfahren zeigt, wie Sie die Infrastruktur für Ihr Image mit dem create-infrastructure-configuration Befehl Image Builder im konfigurieren. AWS CLI Der Befehl in Schritt 2 nimmt die Datei auf, die Sie in Schritt 1 erstellt haben. Für diese Beispiele wird die Datei aus Schritt 1 aufgerufencreate-infrastructure-configuration.json.

Das folgende Beispiel legt allgemeine Infrastrukturfelder fest. Um IMDSv2-Token für die Build- und Testinstanzen zu benötigen, fügen Sie einen instanceMetadataOptions Block mit httpTokens set auf hinzu. required

Anmerkung

Wir empfehlen, dass Sie alle EC2-Instances, die Image Builder von einem Pipeline-Build aus startet, so konfigurieren, dass IMDSv2 verwendet wird, sodass für Anfragen zum Abrufen von Instance-Metadaten ein signierter Token-Header erforderlich ist.

  1. Erstellen einer CLI-Eingabe-JSON-Datei

    Die folgenden Beispiele zeigen Varianten der JSON-Datei, die Sie für die Infrastrukturkonfiguration erstellen könnten. Verwenden Sie ein Dateibearbeitungswerkzeug, um eine eigene JSON-Datei zu erstellen.

    Beispiel 1: Konfiguration zur Beibehaltung einer Instanz aus einem fehlgeschlagenen Build

    In diesem Beispiel werden zwei Instanztypen angegeben, m7i.large undm7i.xlarge. Wir empfehlen, mehr als einen Instanztyp anzugeben, da Image Builder so eine Instanz aus einem Pool mit ausreichender Kapazität starten kann. Dies kann Ihre vorübergehenden Build-Fehler reduzieren.

    Das instanceProfileName gibt das Instanzprofil an, das der Instanz die Berechtigungen gewährt, die das Profil zur Durchführung von Anpassungsaktivitäten benötigt. Wenn Sie beispielsweise über eine Komponente verfügen, die Ressourcen von Amazon S3 abruft, benötigt das Instanzprofil Berechtigungen für den Zugriff auf diese Dateien. Das Instanzprofil erfordert außerdem einen Mindestsatz an Berechtigungen, damit EC2 Image Builder erfolgreich mit der Instance kommunizieren kann. Weitere Informationen finden Sie unter Richten Sie sich ein, um benutzerdefinierte Images mit Image Builder zu erstellen.

    { "name": "ExampleInfraConfigDontTerminate", "description": "An example that will retain instances of failed builds", "instanceTypes": [ "m7i.large", "m7i.xlarge" ], "instanceProfileName": "myIAMInstanceProfileName", "securityGroupIds": [ "sg-12345678" ], "subnetId": "subnet-12345678", "logging": { "s3Logs": { "s3BucketName": "my-logging-bucket", "s3KeyPrefix": "my-path" } }, "keyPair": "myKeyPairName", "terminateInstanceOnFailure": false, "snsTopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic" }
    Beispiel 2: macOS-Konfiguration mit automatischer Platzierung

    In diesem Beispiel werden Instanztypen und deren Platzierung für eine Mac-Instanz angegeben, bei der die automatische Platzierung für den Dedicated Host aktiviert ist.

    { "name": "macOSInfraConfigAutoPlacement", "description": "An example infrastructure configuration for macOS.", "instanceProfileName": "EC2InstanceProfileForImageBuilder", "instanceTypes": ["mac1.metal", "mac2.metal"], "terminateInstanceOnFailure": false, "placement": { "tenancy": "host" } }
    Beispiel 3: macOS-Konfiguration mit angegebener Host-ID

    Dieses Beispiel spezifiziert den Instanztyp und die Platzierung für eine Mac-Instanz, die auf einen bestimmten Dedicated Host abzielt.

    { "name": "macOSInfraConfigHostPlacement", "description": "An example infrastructure configuration for macOS.", "instanceProfileName": "EC2InstanceProfileForImageBuilder", "instanceTypes": ["mac2-m1ultra.metal"], "terminateInstanceOnFailure": false, "placement": { "tenancy": "host", "hostId" : "h-1234567890abcdef0" } }
    Beispiel 4: Benutzerdefinierte VPC mit IMDSv2- und Amazon S3-Protokollierung

    Dieses Beispiel startet Instances in einem bestimmten Subnetz und einer bestimmten Sicherheitsgruppe, erfordert IMDSv2-Token und schreibt Anwendungsprotokolle in Amazon S3. Da das Beispiel festlegtsubnetId, muss es auch gesetzt werden. securityGroupIds

    { "name": "VpcInfraConfigWithLogging", "description": "Build in a custom VPC with IMDSv2 and S3 logging", "instanceTypes": ["m7i.large", "m8i.large"], "instanceProfileName": "EC2InstanceProfileForImageBuilder", "subnetId": "subnet-12345678", "securityGroupIds": ["sg-12345678"], "instanceMetadataOptions": { "httpTokens": "required", "httpPutResponseHopLimit": 2 }, "logging": { "s3Logs": { "s3BucketName": "my-logging-bucket", "s3KeyPrefix": "image-builder-logs" } }, "resourceTags": { "Project": "golden-ami" }, "terminateInstanceOnFailure": true }
    Beispiel 5: Platzierung eines dedizierten Hosts mit einer Host-Ressourcengruppe

    Dieses Beispiel zielt auf eine Hostressourcengruppe statt auf eine bestimmte Host-ID ab. tenancyDenn jahost, Sie können einen ARN für eine Hostressourcengruppe angeben. Geben Sie nicht auch eine anhostId.

    { "name": "HostResourceGroupInfraConfig", "instanceProfileName": "EC2InstanceProfileForImageBuilder", "instanceTypes": ["mac2.metal"], "terminateInstanceOnFailure": false, "placement": { "tenancy": "host", "hostResourceGroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/my-host-group" } }
  2. Verwenden Sie die von Ihnen erstellte Datei als Eingabe, wenn Sie den folgenden Befehl ausführen.
    aws imagebuilder create-infrastructure-configuration --cli-input-json file://create-infrastructure-configuration.json