View a markdown version of this page

Créer une configuration d'infrastructure - EC2 Image Builder

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créer une configuration d'infrastructure

Cette section décrit comment utiliser la console ou les imagebuilder commandes d'Image Builder AWS CLI pour créer une configuration d'infrastructure.

Console

Pour créer une ressource de configuration d'infrastructure à partir de la console Image Builder, procédez comme suit :

  1. Ouvrez la console EC2 Image Builder à https://console.aws.amazon.com/imagebuilder/ l'adresse.

  2. Dans le volet de navigation, choisissez Configuration de l'infrastructure.

  3. Choisissez Créer une configuration d'infrastructure.

  4. Dans la section Général, entrez les informations requises suivantes :

    • Entrez le nom de votre ressource de configuration d'infrastructure.

    • Sélectionnez le rôle IAM que vous souhaitez associer au profil d'instance pour les autorisations des composants sur vos instances de génération et de test. Image Builder utilise ces autorisations pour télécharger et exécuter vos composants, charger les journaux et effectuer toutes les actions supplémentaires spécifiées par les composants de votre recette. CloudWatch

  5. Dans le panneau AWS Infrastructure, configurez les autres paramètres d'infrastructure. Saisissez les informations requises suivantes :

    • Type d'instance  : vous pouvez spécifier un ou plusieurs types d'instance à utiliser pour cette version. Image Builder sélectionne l'un de ces types d'instance en fonction de sa disponibilité.

      Note

      Les instances Mac s'exécutent sur des types d'.metalinstances sur un hôte dédié. Votre type d'instance doit correspondre à l'un des types définis pour l'hôte sur lequel elle s'exécute. Pour plus d'informations sur les instances Mac et une liste des types d'instances qui prennent en charge nativement le système d'exploitation macOS, consultez les instances Mac Amazon EC2 dans le guide de l'utilisateur Amazon EC2.

    • Rubrique SNS (facultatif)  : sélectionnez une rubrique SNS pour recevoir des notifications et des alertes de la part d'EC2 Image Builder.

    Si vous ne fournissez pas de valeurs pour les paramètres suivants, ils utilisent les valeurs par défaut spécifiques au service, le cas échéant.

    • VPC, sous-réseau et groupes de sécurité  : Image Builder utilise votre VPC et votre sous-réseau par défaut. Pour plus d'informations sur la configuration des points de terminaison de l'interface VPC, consultez. Image Builder et points de AWS PrivateLink terminaison VPC d'interface

    • Dans la section Paramètres de résolution des problèmes, configurez les valeurs suivantes :

      • Par défaut, la case à cocher Terminer l'instance en cas d'échec est sélectionnée. Toutefois, lorsqu'une compilation échoue, vous pouvez vous connecter à l'instance Amazon EC2 pour résoudre les problèmes. Si vous souhaitez que votre instance continue de fonctionner après un échec de compilation, désactivez la case à cocher.

      • Paire de clés  : si votre instance Amazon EC2 continue de fonctionner après un échec de génération, vous pouvez créer une paire de clés ou utiliser une paire de clés existante pour vous connecter à l'instance et résoudre les problèmes.

      • Journaux  : vous pouvez spécifier un compartiment Amazon S3 dans lequel Image Builder peut écrire des journaux d'application pour vous aider à résoudre les problèmes liés à votre build et à vos tests. Si vous ne spécifiez pas de compartiment Amazon S3, Image Builder écrit les journaux de l'application dans l'instance.

    • Dans la section Paramètres des métadonnées de l'instance, configurez les valeurs suivantes à appliquer aux instances Amazon EC2 qu'Image Builder utilise pour créer et tester votre image :

      • Sélectionnez la version des métadonnées pour déterminer si Amazon EC2 nécessite un en-tête de jeton signé pour les demandes de récupération de métadonnées d'instance.

        • V1 et V2 (jeton facultatif)  : valeur par défaut si vous ne sélectionnez rien.

        • V2 (jeton requis)

        Note

        Nous vous recommandons de configurer toutes les instances EC2 qu'Image Builder lance à partir d'une génération de pipeline pour utiliser IMDSv2 afin que les demandes de récupération des métadonnées d'instance nécessitent un en-tête de jeton signé.

      • Limite de sauts de réponse du jeton de métadonnées  : nombre de sauts réseau que le jeton de métadonnées peut parcourir. Plage valide : 1 à 64. Si vous ne définissez aucune valeur, Image Builder applique une limite de sauts de 2.

    • Dans la section Paramètres de placement des instances, configurez les valeurs suivantes à appliquer aux instances Amazon EC2 qu'Image Builder utilise pour créer et tester votre image :

      • Vous pouvez sélectionner la zone de disponibilité dans laquelle Image Builder lance les instances lors de la création de l'image.

      • Vous pouvez également sélectionner Tenancy pour les serveurs qui exécutent les instances que vous lancez. Par défaut, les instances Amazon EC2 s'exécutent sur du matériel de location partagée. Cela signifie que plusieurs Comptes AWS personnes peuvent partager le même matériel physique. Une instance avec dedicated location s'exécute sur du matériel à locataire unique. Une instance avec host location s'exécute sur un hôte dédié.

        Les instances Mac nécessitent la création d'un hôte dédié comme condition préalable à la création d'une image personnalisée. Sélectionnez host pour votre image macOS. Vous pouvez ensuite sélectionner un hôte cible ou un groupe de ressources d'hôtes pour lancer des instances, mais cela n'est pas obligatoire si le placement automatique est activé sur votre hôte dédié. Pour plus d'informations, consultez Auto-placement le guide de l'utilisateur Amazon EC2.

        • ID d'hôte de location  : ID de l'hôte dédié sur lequel les instances s'exécutent.

        • Groupe de ressources hôte Tenancy  : nom de ressource Amazon (ARN) du groupe de ressources hôte dans lequel lancer les instances.

  6. Dans la section Balises d'infrastructure (facultatif), vous pouvez attribuer des balises de métadonnées à l'instance Amazon EC2 qu'Image Builder lance pendant le processus de création. Entrez les balises sous forme de paires clé-valeur.

  7. Dans la section Tags (facultatif), vous pouvez attribuer des balises de métadonnées à la ressource de configuration d'infrastructure créée par Image Builder en sortie. Entrez les balises sous forme de paires clé-valeur.

AWS CLI

La procédure suivante montre comment configurer l'infrastructure de votre image à l'aide de la create-infrastructure-configuration commande Image Builder du AWS CLI. La commande de l'étape 2 intègre le fichier que vous avez créé à l'étape 1. Pour ces exemples, le fichier de l'étape 1 est appelécreate-infrastructure-configuration.json.

L'exemple suivant définit les champs d'infrastructure courants. Pour exiger des jetons IMDSv2 sur les instances de build et de test, ajoutez un instanceMetadataOptions bloc avec httpTokens set to. required

Note

Nous vous recommandons de configurer toutes les instances EC2 qu'Image Builder lance à partir d'une génération de pipeline pour utiliser IMDSv2 afin que les demandes de récupération des métadonnées d'instance nécessitent un en-tête de jeton signé.

  1. Créer un fichier JSON d'entrée CLI

    Les exemples suivants présentent des variantes du fichier JSON que vous pouvez créer pour la configuration de l'infrastructure. Utilisez un outil d'édition de fichiers pour créer votre propre fichier JSON.

    Exemple 1 : Configuration pour conserver une instance d'une compilation ayant échoué

    Cet exemple spécifie deux types d'instances, m7i.large etm7i.xlarge. Nous vous recommandons de spécifier plusieurs types d'instance, car cela permet à Image Builder de lancer une instance à partir d'un pool doté d'une capacité suffisante. Cela peut réduire vos échecs de construction transitoires.

    instanceProfileNameSpécifie le profil d'instance qui fournit à l'instance les autorisations dont elle a besoin pour effectuer des activités de personnalisation. Par exemple, si vous avez un composant qui extrait des ressources d'Amazon S3, le profil d'instance nécessite des autorisations pour accéder à ces fichiers. Le profil d'instance nécessite également un ensemble minimal d'autorisations pour qu'EC2 Image Builder puisse communiquer correctement avec l'instance. Pour de plus amples informations, veuillez consulter Préparez-vous à créer des images personnalisées avec Image Builder.

    { "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" }
    Exemple 2 : configuration macOS avec placement automatique

    Cet exemple spécifie les types d'instances et leur emplacement pour une instance Mac où le placement automatique est activé sur l'hôte dédié.

    { "name": "macOSInfraConfigAutoPlacement", "description": "An example infrastructure configuration for macOS.", "instanceProfileName": "EC2InstanceProfileForImageBuilder", "instanceTypes": ["mac1.metal", "mac2.metal"], "terminateInstanceOnFailure": false, "placement": { "tenancy": "host" } }
    Exemple 3 : configuration macOS avec l'ID d'hôte spécifié

    Cet exemple spécifie le type d'instance et l'emplacement d'une instance Mac qui cible un hôte dédié spécifique.

    { "name": "macOSInfraConfigHostPlacement", "description": "An example infrastructure configuration for macOS.", "instanceProfileName": "EC2InstanceProfileForImageBuilder", "instanceTypes": ["mac2-m1ultra.metal"], "terminateInstanceOnFailure": false, "placement": { "tenancy": "host", "hostId" : "h-1234567890abcdef0" } }
    Exemple 4 : VPC personnalisé avec IMDSv2 et journalisation Amazon S3

    Cet exemple lance des instances dans un sous-réseau et un groupe de sécurité spécifiques, nécessite des jetons IMDSv2 et écrit les journaux des applications sur Amazon S3. Parce que l'exemple définitsubnetId, il doit également définirsecurityGroupIds.

    { "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 }
    Exemple 5 : placement d'un hôte dédié auprès d'un groupe de ressources d'hôtes

    Cet exemple cible un groupe de ressources hôtes au lieu d'un ID d'hôte spécifique. Parce tenancy que ouihost, vous pouvez spécifier l'ARN d'un groupe de ressources hôtes. Ne spécifiez pas également unhostId.

    { "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. Utilisez le fichier que vous avez créé comme entrée lorsque vous exécutez la commande suivante.
    aws imagebuilder create-infrastructure-configuration --cli-input-json file://create-infrastructure-configuration.json