Lancer des instances avec AWS CLI

Vous pouvez lancer une ou plusieurs instances personnalisées dans le Cloud public ou dans un Virtual Private Cloud (VPC) avec AWS CLI.

Vous pouvez définir les différentes caractéristiques des instances, et lancer plusieurs instances dans une même requête de lancement. Ces instances sont groupées dans une même réservation. Pour modifier les caractéristiques que vous avez définies pour une instance, voir Modifier un attribut d’une instance.

Lorsque vous lancez une instance avec AWS CLI, vous spécifiez l’image machine OUTSCALE (OMI), le type d’instance, les security groups et les keypairs à utiliser, le placement de l’instance, un ou plusieurs block device mappings, une protection contre la suppression, et ainsi de suite. Vous pouvez également ajouter des user data et des tags à une instance lors de son lancement.

Toutes les OMI officielles utilisent des keypairs comme système d’authentification. Pour lancer une instance depuis une OMI officielle, vous devez spécifier une keypair. Cependant, les OMI non officielles peuvent utiliser n’importe quel système d’authentifcation. Pour lancer une instance depuis une OMI non officielle, vous devez vérifier si une keypair est requise. Pour en savoir plus, voir À propos des keypairs.

Pour lancer une ou plusieurs instances, utilisez la commande run-instances suivant une de ces syntaxes :

Exemple de requête (syntaxe minimale)
$ aws ec2 run-instances \
    --profile YOUR_PROFILE \
    --image-id ami-12345678 \
    --endpoint https://fcu.eu-west-2.outscale.com
Exemple de requête (syntaxe complète)
$ aws ec2 run-instances \
    --profile YOUR_PROFILE \
    --image-id ami-12345678 \
    --key-name \
    --security-groups \
    --security-group-ids sg-187654321 \
    --user-data YOUR_USER_DATA \
    --instance-type t2.small \
    --placement  \
           "{ \
           \"AvailabilityZone\": \"eu-west-2a\", \
           \"Tenancy\": \"default\", \
           }" \
    --block-device-mappings YOUR_BLOCK_DEVICE_MAPPINGS \
    --subnet-id subnet-12345678 \
    --disable-api-termination \
    --instance-initiated-shutdown-behavior stop \
    --private-ip-address 10.0.1.100 \
    --client-token "" \
    --network-interfaces \
           "{ \
           \"NetworkInterfaceId\": \"eni-12345678\", \
           \"DeviceIndex\": 0, \
           \"SubnetId\": \"subnet-12345678\", \
           \"Description\": \"Network interface description\", \
           \"PrivateIpAddress\": \"10.0.1.100\", \
           \"Groups\": \"sg-187654321\", \
           \"DeleteOnTermination\": false \
           \"PrivateIpAddresses\": [ \
                                     { \
                                     \"PrivateIpAddress\": \"10.0.1.100\", \
                                     \"Primary\": true \
                                     } \
           }" \
    [--ebs-optimized NOT_SPECIFIED] \
    --count 1 \
    --endpoint https://fcu.eu-west-2.outscale.com

Cette commande contient les attributs suivants que vous devez spécifier :

  • (optionnel) profile : Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Utiliser et configurer AWS CLI.

  • image-id : L’ID de l’OMI à utiliser pour lancer l’instance. Pour en savoir plus, voir Interface utilisateur des OMI ou Obtenir des informations sur vos OMI.

  • (optionnel) key-name : Le nom de la keypair à utiliser pour l’instance. Pour en savoir plus, voir À propos des keypairs.

    Il est fortement recommandé de spécifier une keypair au lancement de l’instance. Sinon, vous ne pouvez pas vous connecter à l’instance avant de lui avoir ajouté une keypair. Pour en savoir plus, voir Modifier la keypair utilisée par une instance.

  • (optionnel) security-groups : Un ou plusieurs noms de security group (seulement dans le Cloud public). Si non spécifié, le security group Default est utilisé.

  • (optionnel) security-group-ids : Un ou plusieurs ID de security group. Si non spécifié, le security group Default est utilisé.

  • (optionnel) user-data : Les user data pour l’instance. Pour en savoir plus, voir Configurer une instance avec les user data et les tags OUTSCALE.

    AWS CLI encode ensuite ces user data en Base64. La taille des user data encodées en Base64 ne doit pas dépasser 500 kibioctets (Kio).

  • (optionnel) instance-type : Le type d’instance. Si non spécifié, une instance t2.small est lancée. Pour en savoir plus, voir Types d’instances.

    Pour fonctionner correctement, les instances Windows nécessitent au moins un processeur de génération v3, 2 vCores et 4 Gio de mémoire.

  • (optionnel) placement : Le placement de l’instance. Cet attribut contient les éléments suivants que vous devez spécifier :

  • (optionnel) block-device-mappings : Un ou plusieurs block device mappings pour l’instance. Pour en savoir plus, voir Définir des block device mappings.

  • (optionnel) subnet-id : Dans un VPC, l’ID du subnet dans lequel vous souhaitez lancer l’instance.

  • (optionnel) disable-api-termination|enable-api-termination : Désactive ou active la possibilité de terminer l’instance (par défaut, activé).

  • (optionnel) instance-initiated-shutdown-behavior : Par défaut ou si paramétré sur stop, l’instance est arrêtée lorsque vous l’arrêtez ou la terminez. Si paramétré sur terminate, elle arrêtée puis terminée. Si paramétré sur restart, l’instance est arrêtée puis automatiquement redémarrée. Pour en savoir plus, voir À propos du cycle de vie des instances > Suppression.

  • (optionnel) private-ip-address : Dans un VPC, l’adresse IP principale.

    L’adresse IP doit faire partie de la plage d’adresses IP du subnet.

  • (optionnel) client-token : Un identifiant unique qui vous permet de gérer l’idempotence (s’il y en a un).

  • (optionnel) network-interfaces : Une ou plusieurs interfaces réseau. Si vous spécifiez ce paramètre, vous devez définir l’interface réseau principale de l’instance avec 0 en index du périphérique.

Cet attribut contient les éléments suivants que vous devez spécifier :

  • NetworkInterfaceId : L’ID de l’interface réseau de l’instance.

  • DeviceIndex : L’index du périphérique pour l’interface réseau (entre 0 et 7, tous deux inclus).

  • SubnetId : L’ID du subnet associé à l’interface réseau, si vous en créez une en lançant l’instance.

  • Description : Une description de l’interface réseau.

  • PrivateIpAddress : L’adresse IP privée de l’interface réseau.

  • Groups : L’ID d’un ou plusieurs security groups à associer à l’interface réseau.

  • DeleteOnTermination : Indique si l’interface réseau est supprimée lorsque l’instance est terminée.

  • PrivateIpAddresses : Une ou plusieurs adresses IP privées à associer à l’interface réseau.

    • Primary : Si paramétré sur true, l’adresse IP est la principale.

      Une seule adresse IP peut être principale.

    • PrivateIpAddress : L’adresse IP privée.

      • (optionnel) ebs-optimized : Indique si l’instance est optimisée pour BSU.

      • (optionnel) count : Le nombre d’instances à lancer.

        Vous pouvez spécifier :

        • Un nombre seul, considéré comme le nombre minimum d’instances à lancer (par défaut, 1).

        • Une plage de nombres au format min:max. Le premier nombre est le nombre minimum d’instances à lancer, le deuxième est le maximum.

      • endpoint : Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête.

La commande run-instances renvoie les éléments suivants :

  • OwnerId : L’ID de compte du propriétaire de l’instance.

  • Reservation : L’ID de la réservation. Pour en savoir plus, voir À propos des instances > Informations générales sur les instances.

  • Groups : Informations à propos des security groups associés à l’instance.

  • Instances : Informations à propos d’une ou plusieurs instances. Cet élément contient les informations suivantes pour chaque instance :

    • Monitoring : Indique si le monitoring est activé pour l’instance (toujours disabled).

    • PublicDnsName : Le nom DNS public de l’instance.

    • Platform : Pas d’information renvoyée.

    • State : Informations à propos de l’état de l’instance (le code et le nom de l’état).

    • EbsOptimized : Indique si l’instance est optimisée pour BSU.

    • LaunchTime : Le moment auquel l’instance a été lancée.

    • PublicIpAddress : Dans un Cloud public, l’adresse IP publique associée à l’instance (remplacée par l’External IP, s’il y en a une). Dans un VPC, l’External IP associée à l’instance, s’il y en a une.

    • PrivateIpAddress : L’adresse IP privée de l’instance.

    • ProductCodes : Pas d’information renvoyée si vous utilisez une OMI officielle.

    • Tags : Un ou plusieurs tags associés à l’instance, avec leur Value et leur Key (s’il y en a).

    • VpcId : L’ID du VPC dans lequel l’instance est.

    • InstanceId : L’ID de l’instance.

    • ImageId : L’ID de l’OMI utilisée pour lancer l’instance.

    • PrivateDnsName : Le nom DNS privé de l’instance.

    • KeyName : Le nom de la keypair utilisée pour l’instance. Pour en savoir plus, voir À propos des keypairs.

    • SecurityGroups : Les security groups associés à l’instance (nom et ID).

    • ClientToken : Un identifiant unique qui vous permet de gérer l’idempotence (s’il y en a un).

    • InstanceType : Le type d’instance. pour en savoir plus, voir Types d’instances.

    • NetworkInterfaces : Dans un VPC, une ou plusieurs interfaces réseau pour l’instance.

    • Placement : Information à propos du placement de l’instance. Cet élément contient les informations suivantes :

    • SourceDestCheck : Si true, la vérification source/destination du trafic réseau est activée. Si false, elle ne l’est pas.

    • Hypervisor : Le type d’hyperviseur de l’instance (toujours xen).

    • BlockDeviceMappings : Un ou plusieurs block device mappings pour l’nstance. Pour en savoir plus, voir Définir des block device mappings.

    • Architecture : L’architecture de l’instance.

    • KernelId : Pas d’information renvoyée.

    • RootDeviceName : Le nom du périphérique associé au volume système de l’instance.

    • VirtualizationType : Le type de virtualisation (toujours hvm).

    • RootDeviceType : Le type de volume système de l’instance (toujours ebs).

    • AmiLaunchIndex : L’index de lancement de l’instance. pour en savoir plus, voir À propos des instances > Informations générales sur les instances.

Exemple de résultat
{
    "OwnerId": "1234567890000",
    "ReservationId": "r-87654321",
    "Groups": [
        {
            "GroupName": "default",
            "GroupId": "sg-12345678"
        }
    ],
    "Instances": [
        {
            "Monitoring": {
                "State": "disabled"
            },
            "PublicDnsName": "",
            "Platform": "",
            "State": {
                "Code": 0,
                "Name": "pending"
            },
            "EbsOptimized": false,
            "LaunchTime": "2016-04-20T08:26:26.540Z",
            "PrivateIpAddress": "10.10.10.0",
            "ProductCodes": [],
            "VpcId": "vpc-56781234",
            "InstanceId": "i-12345678",
            "ImageId": "ami-87654321",
            "PrivateDnsName": "ip-10-10-10-0.eu-west-2.compute.internal",
            "KeyName": "key name",
            "SecurityGroups": [
                {
                    "GroupName": "default",
                    "GroupId": "sg-12345678"
                }
            ],
            "ClientToken": "",
            "SubnetId": "subnet-56781234",
            "InstanceType": "t2.small",
            "NetworkInterfaces": [
                {
                    "Status": "in-use",
                    "MacAddress": "aa:c0:00:00:00:00",
                    "SourceDestCheck": true,
                    "VpcId": "vpc-56781234",
                    "Description": "Primary network interface",
                    "NetworkInterfaceId": "eni-12345678",
                    "PrivateIpAddresses": [
                        {
                            "PrivateDnsName": "ip-10-10-10-0.eu-west-2.compute.internal",
                            "Primary": true,
                            "PrivateIpAddress": "10.10.10.0"
                        }
                    ],
                    "PrivateDnsName": "ip-10-10-10-0.eu-west-2.compute.internal",
                    "Attachment": {
                        "Status": "attached",
                        "DeviceIndex": 0,
                        "DeleteOnTermination": true,
                        "AttachmentId": "eni-attach-12345678",
                        "AttachTime": "2016-04-20T08:26:26.540Z"
                    },
                    "Groups": [
                        {}
                    ],
                    "SubnetId": "subnet-56781234",
                    "OwnerId": "249064296596",
                    "PrivateIpAddress": "10.10.10.0"
                }
            ],
            "SourceDestCheck": true,
            "Placement": {
                "Tenancy": "default",
                "GroupName": "",
                "AvailabilityZone": "eu-west-2a"
            },
            "Hypervisor": "xen",
            "BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/sda1",
                    "Ebs": {
                        "Status": "attaching",
                        "DeleteOnTermination": true,
                        "VolumeId": "vol-87654321",
                        "AttachTime": "2016-04-20T08:26:26.540Z"
                    }
                }
            ],
            "Architecture": "x86_64",
            "KernelId": "",
            "RootDeviceName": "/dev/sda1",
            "VirtualizationType": "hvm",
            "RootDeviceType": "ebs",
            "AmiLaunchIndex": 0
        }
    ]
}

Les instances sont lancées.

Pages connexes

Méthode API correspondante

AWS™ et Amazon Web Services™ sont des marques de commerce d'Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.