

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.

# Utilisation d’Amazon EC2 dans l’AWS CLI
<a name="cli-services-ec2"></a>


| Présentation d’Amazon Elastic Compute Cloud | 
| --- | 
|  [![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/TsRBftzZsQo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/TsRBftzZsQo)  | 

Amazon Elastic Compute Cloud (Amazon EC2) fournit des environnements d’informatique virtuelle hautement évolutifs et flexibles. Amazon EC2 vous permet de provisionner et de gérer des serveurs virtuels, appelés instances Amazon EC2, afin de répondre à un large éventail de besoins informatiques.

Les instances Amazon EC2 sont des machines virtuelles qui peuvent être personnalisées avec diverses configurations de capacité d’UC, de mémoire, de stockage et de mise en réseau. Vous pouvez choisir parmi une sélection variée de types d’instances, allant d’options légères et économiques à des instances puissantes et performantes, en fonction des exigences de votre application. Cette flexibilité vous permet de répondre à vos besoins informatiques afin d’optimiser les performances et la rentabilité. 

En outre, Amazon EC2 propose une suite de fonctionnalités qui vous permettent de gérer efficacement vos ressources informatiques. Il s’agit notamment de la possibilité de lancer rapidement de nouvelles instances, de créer des AMI (Amazon Machine Images) personnalisées pour un déploiement rapide et d’augmenter ou de réduire la capacité de calcul selon les besoins. 

Vous pouvez accéder aux fonctionnalités d’Amazon EC2 à l’aide de l’AWS Command Line Interface (AWS CLI). Pour afficher les commandes de l’AWS CLI pour Amazon EC2, utilisez la commande suivante.

```
aws ec2 help
```

Avant d’exécuter des commandes, définissez vos informations d’identification par défaut. Pour plus d’informations, consultez [Configuration des paramètres de l’AWS CLI](cli-chap-configure.md).

Cette rubrique montre des exemples de commandes AWS CLI abrégées qui effectuent des tâches courantes d’Amazon EC2.

Pour des exemples de commandes AWS CLI détaillées, consultez le [Référentiel d’exemples de code de l’AWS CLI](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli) sur *GitHub*.

**Topics**
+ [Création, affichage et suppression de paires de clés Amazon EC2 dans AWS CLI](cli-services-ec2-keypairs.md)
+ [Création, configuration et suppression de groupes de sécurité Amazon EC2 dans le AWS CLI](cli-services-ec2-sg.md)
+ [Lancement, mise en vente et suppression d'instances Amazon EC2 dans AWS CLI](cli-services-ec2-instances.md)
+ [Modifiez le type d'instance Amazon EC2 à l'aide d'un script bash dans le AWS CLI](cli-services-ec2-instance-type-script.md)

# Création, affichage et suppression de paires de clés Amazon EC2 dans AWS CLI
<a name="cli-services-ec2-keypairs"></a>

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour créer, afficher et supprimer vos paires de clés pour Amazon Elastic Compute Cloud (Amazon EC2). Vous pouvez utiliser des paires clés pour vous connecter à une instance Amazon EC2. Vous devez fournir la paire de clés à Amazon EC2 quand vous créez l’instance, puis utiliser cette paire de clés pour vous authentifier quand vous vous connectez à l’instance.

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Conditions préalables](#cli-services-ec2-keypairs-prereqs)
+ [Création d’une paire de clés](#creating-a-key-pair)
+ [Affichage de votre paire de clés](#displaying-a-key-pair)
+ [Suppression de votre paire de clés](#deleting-a-key-pair)
+ [Références](#cli-services-ec2-keypairs-references)

## Conditions préalables
<a name="cli-services-ec2-keypairs-prereqs"></a>

Pour exécuter les commandes `ec2`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Définissez vos autorisations IAM pour autoriser l’accès Amazon EC2. Pour plus d’informations sur les autorisations IAM pour Amazon EC2, consultez [Politiques IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Création d’une paire de clés
<a name="creating-a-key-pair"></a>

Pour créer une paire de clés, utilisez la commande `[aws ec2 create-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html)` avec l’option `--query`, ainsi que l’option `--output text` pour rediriger votre clé privée directement dans un fichier.

```
$ aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem
```

En effet PowerShell, la `> file` redirection utilise par défaut le codage UTF-8, qui ne peut pas être utilisé avec certains clients SSH. Par conséquent, vous devez convertir la sortie en la transférant vers la commande `out-file` et explicitement définir l’encodage pour `ascii`.

```
PS C:\>aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text | out-file -encoding ascii -filepath MyKeyPair.pem
```

Le fichier `MyKeyPair.pem` qui en résulte ressemble à ce qui suit.

```
-----BEGIN RSA PRIVATE KEY-----
EXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/
vBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QW
Z/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1F
G50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPW
oPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu
/uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1
mb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2
bahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD9
81oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozR
oQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1
YkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/x
p9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuws
ayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnU
WA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUC
gYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bH
oMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGs
Arq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshy
WBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j
jjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDa
NWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qS
VRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc=
-----END RSA PRIVATE KEY-----
```

Votre clé privée n'est pas stockée AWS et ne peut être récupérée ***que*** lorsqu'elle est créée. Vous ne pouvez pas la récupérer plus tard. Au lieu de cela, si vous perdez votre clé privée, vous devez créer une nouvelle paire de clés.

Si vous vous connectez à votre instance depuis un ordinateur Linux, nous vous recommandons d’utiliser la commande suivante pour définir les autorisations de votre fichier de clé privée afin d’être la seule personne autorisée à le lire.

```
$ chmod 400 MyKeyPair.pem
```

## Affichage de votre paire de clés
<a name="displaying-a-key-pair"></a>

Une « empreinte » est générée à partir de votre paire de clés et vous pouvez utiliser cette empreinte pour vérifier que la clé privée présente sur votre ordinateur local correspond à la clé publique stockée dans AWS. 

L'empreinte digitale est un SHA1 hachage extrait d'une copie codée DER de la clé privée. Cette valeur est capturée lors de la création de la paire de clés et est stockée AWS avec la clé publique. Vous pouvez consulter l'empreinte digitale dans la console Amazon EC2 ou en exécutant la AWS CLI commande. `[aws ec2 describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)` 

L’exemple suivant affiche l’empreinte digitale pour `MyKeyPair`.

```
$ aws ec2 describe-key-pairs --key-name MyKeyPair
{
    "KeyPairs": [
        {
            "KeyName": "MyKeyPair",
            "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f"
        }
    ]
}
```

Pour plus d’informations sur les clés et les empreintes, consultez [Paires de clés Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Suppression de votre paire de clés
<a name="deleting-a-key-pair"></a>

Pour supprimer une paire de clés, exécutez la commande `[aws ec2 delete-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html)`, en remplaçant *`MyKeyPair`* par le nom de la paire à supprimer.

```
$ aws ec2 delete-key-pair --key-name MyKeyPair
```

## Références
<a name="cli-services-ec2-keypairs-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/latest/reference/ec2/index.html)`
+ `[aws ec2 create-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html)`
+ `[aws ec2 delete-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html)`
+ `[aws ec2 describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Création, configuration et suppression de groupes de sécurité Amazon EC2 dans le AWS CLI
<a name="cli-services-ec2-sg"></a>

Vous pouvez créer un groupe de sécurité pour vos instances Amazon Elastic Compute Cloud (Amazon EC2) qui fonctionne essentiellement comme un pare-feu, avec des règles qui déterminent le trafic réseau pouvant entrer et sortir. 

Utilisez le AWS Command Line Interface (AWS CLI) pour créer un groupe de sécurité, ajouter des règles aux groupes de sécurité existants et supprimer des groupes de sécurité. 

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Conditions préalables](#cli-services-ec2-sg-prereqs)
+ [Création d’un groupe de sécurité](#creating-a-security-group)
+ [Ajout de règles à votre groupe de sécurité](#configuring-a-security-group)
+ [Suppression de votre groupe de sécurité](#deleting-a-security-group)
+ [Références](#cli-services-ec2-sg-references)

## Conditions préalables
<a name="cli-services-ec2-sg-prereqs"></a>

Pour exécuter les commandes `ec2`, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Définissez vos autorisations IAM pour autoriser l’accès Amazon EC2. Pour plus d’informations sur les autorisations IAM pour Amazon EC2, consultez [Politiques IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Création d’un groupe de sécurité
<a name="creating-a-security-group"></a>

Vous pouvez créer des groupes de sécurité associés à des clouds privés virtuels (VPCs).

L’exemple `[aws ec2 create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html)` suivant montre comment créer un groupe de sécurité pour un VPC spécifié.

```
$ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-1a2b3c4d
{
    "GroupId": "sg-903004f8"
}
```

Pour afficher les informations initiales pour un groupe de sécurité, exécutez la commande `[aws ec2 describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html)`. Vous pouvez référencer un groupe de sécurité EC2-VPC uniquement par son `vpc-id` et non par son nom.

```
$ aws ec2 describe-security-groups --group-ids sg-903004f8
{
    "SecurityGroups": [
        {
            "IpPermissionsEgress": [
                {
                    "IpProtocol": "-1",
                    "IpRanges": [
                        {
                            "CidrIp": "0.0.0.0/0"
                        }
                    ],
                    "UserIdGroupPairs": []
                }
            ],
            "Description": "My security group"
            "IpPermissions": [],
            "GroupName": "my-sg",
            "VpcId": "vpc-1a2b3c4d",
            "OwnerId": "123456789012",
            "GroupId": "sg-903004f8"
        }
    ]
}
```

## Ajout de règles à votre groupe de sécurité
<a name="configuring-a-security-group"></a>

Lorsque vous exécutez une instance Amazon EC2, vous devez activer les règles dans le groupe de sécurité afin d’autoriser le trafic réseau entrant comme moyen de vous connecter à l’image. 

Par exemple, si vous lancez une instance Windows, vous ajoutez généralement une règle pour autoriser le trafic entrant sur le port TCP 3389 afin de prendre en charge le protocole RDP (Remote Desktop Protocol). Si vous lancez une instance Linux, vous ajoutez généralement une règle pour autoriser le trafic entrant sur le port TCP 22 afin de prendre en charge les connexions SSH. 

Utilisez la commande `[aws ec2 authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)` pour ajouter une règle à votre groupe de sécurité. L’un des paramètres obligatoires de cette commande est l’adresse IP publique de votre ordinateur ou le réseau (sous la forme d’une plage d’adresses) auquel votre ordinateur est attaché, en notation [CIDR](https://wikipedia.org/wiki/Classless_Inter-Domain_Routing).

**Note**  
Nous fournissons le service suivant, [https://checkip.global.api.aws/](https://checkip.global.api.aws/), pour vous permettre de déterminer votre adresse IP publique. Pour trouver d’autres services qui peuvent vous aider à identifier votre adresse IP, recherchez « *quelle est mon adresse IP* » sur votre navigateur. Si votre connexion s’effectue via un FSI ou derrière un pare-feu à l’aide d’une adresse IP dynamique (via une passerelle NAT depuis un réseau privé), votre adresse peut changer périodiquement. Dans ce cas, vous devez trouver la plage d’adresses IP utilisées par les ordinateurs clients.

L’exemple suivant montre comment ajouter une règle pour RDP (port TCP 3389) à un groupe de sécurité EC2-VPC portant l’ID `sg-903004f8` à l’aide de votre adresse IP.

Pour commencer, trouvez votre adresse IP.

```
$ curl https://checkip.amazonaws.com
x.x.x.x
```

Vous pouvez ensuite ajouter l’adresse IP à votre groupe de sécurité en exécutant la commande `[aws ec2 authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)`.

```
$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 3389 --cidr x.x.x.x/x
```

La commande suivante ajoute une autre règle pour activer SSH sur les instances dans le même groupe de sécurité.

```
$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 22 --cidr x.x.x.x/x
```

Pour afficher les changements dans le groupe de sécurité, exécutez la commande `[aws ec2 describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html)`.

```
$ aws ec2 describe-security-groups --group-ids sg-903004f8
{
    "SecurityGroups": [
        {
            "IpPermissionsEgress": [
                {
                    "IpProtocol": "-1",
                    "IpRanges": [
                        {
                            "CidrIp": "0.0.0.0/0"
                        }
                    ],
                    "UserIdGroupPairs": []
                }
            ],
            "Description": "My security group"
            "IpPermissions": [
                {
                    "ToPort": 22,
                    "IpProtocol": "tcp",
                    "IpRanges": [
                        {
                            "CidrIp": "x.x.x.x/x"
                        }
                    ]
                    "UserIdGroupPairs": [],
                    "FromPort": 22
                }
            ],
            "GroupName": "my-sg",
            "OwnerId": "123456789012",
            "GroupId": "sg-903004f8"
        }
    ]
}
```

## Suppression de votre groupe de sécurité
<a name="deleting-a-security-group"></a>

Pour supprimer un groupe de sécurité, exécutez la commande `[aws ec2 delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html)`. 

**Note**  
Vous ne pouvez pas supprimer un groupe de sécurité s’il est actuellement attaché à un environnement.

L’exemple de commande suivant supprime un groupe de sécurité EC2-VPC.

```
$ aws ec2 delete-security-group --group-id sg-903004f8
```

## Références
<a name="cli-services-ec2-sg-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/latest/reference/ec2/index.html)`
+ `[aws ec2 authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)`
+ `[aws ec2 create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html)`
+ `[aws ec2 delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html)`
+ `[aws ec2 describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Lancement, mise en vente et suppression d'instances Amazon EC2 dans AWS CLI
<a name="cli-services-ec2-instances"></a>

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour lancer, répertorier et supprimer des instances Amazon Elastic Compute Cloud (Amazon EC2). Si vous lancez une instance qui n'est pas incluse dans le niveau AWS gratuit, vous êtes facturé après le lancement de l'instance et vous êtes facturé pour la durée d'exécution de l'instance, même si elle reste inactive.

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Conditions préalables](#cli-services-ec2-instances-prereqs)
+ [Lancement de votre instance](#launching-instances)
+ [Ajout d’un périphérique de stockage en mode bloc à votre instance](#block-device-mapping)
+ [Ajout d’une balise à votre instance](#tagging-instances)
+ [Connexion à votre instance](#connecting-to-instances)
+ [Affichage de la liste de vos instances](#listing-instances)
+ [Suppression de votre instance](#terminating-instances)
+ [Références](#cli-services-ec2-instances-references)

## Conditions préalables
<a name="cli-services-ec2-instances-prereqs"></a>

Pour exécuter les commandes `ec2` de cette rubrique, vous devez respecter les conditions requises suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Définissez vos autorisations IAM pour autoriser l’accès Amazon EC2. Pour plus d’informations sur les autorisations IAM pour Amazon EC2, consultez [Politiques IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) dans le *Guide de l’utilisateur Amazon EC2*.
+ Créez une [paire de clés](cli-services-ec2-keypairs.md) et un [groupe de sécurité](cli-services-ec2-sg.md).
+ Sélectionnez une Amazon Machine Image (AMI) et notez son ID AMI. Pour plus d’informations, consultez [Recherche d’une AMI appropriée](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Lancement de votre instance
<a name="launching-instances"></a>

Pour lancer une instance Amazon EC2 à l’aide de l’AMI que vous avez sélectionnée, utilisez la commande `[aws ec2 run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)`. Vous pouvez lancer l’instance dans un cloud privé virtuel (VPC).

Au départ, votre instance apparait à l’état `pending`, mais passe à l’état `running` après quelques minutes.

L’exemple suivant montre comment lancer une instance `t2.micro` dans le sous-réseau spécifié d’un VPC. Remplacez les valeurs de paramètre *italicized* par vos propres valeurs.

```
$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e
{
    "OwnerId": "123456789012",
    "ReservationId": "r-5875ca20",
    "Groups": [
        {
            "GroupName": "my-sg",
            "GroupId": "sg-903004f8"
        }
    ],
    "Instances": [
        {
            "Monitoring": {
                "State": "disabled"
            },
            "PublicDnsName": null,
            "Platform": "windows",
            "State": {
                "Code": 0,
                "Name": "pending"
            },
            "EbsOptimized": false,
            "LaunchTime": "2013-07-19T02:42:39.000Z",
            "PrivateIpAddress": "10.0.1.114",
            "ProductCodes": [],
            "VpcId": "vpc-1a2b3c4d",
            "InstanceId": "i-5203422c",
            "ImageId": "ami-173d747e",
            "PrivateDnsName": "ip-10-0-1-114.ec2.internal",
            "KeyName": "MyKeyPair",
            "SecurityGroups": [
                {
                    "GroupName": "my-sg",
                    "GroupId": "sg-903004f8"
                }
            ],
            "ClientToken": null,
            "SubnetId": "subnet-6e7f829e",
            "InstanceType": "t2.micro",
            "NetworkInterfaces": [
                {
                    "Status": "in-use",
                    "SourceDestCheck": true,
                    "VpcId": "vpc-1a2b3c4d",
                    "Description": "Primary network interface",
                    "NetworkInterfaceId": "eni-a7edb1c9",
                    "PrivateIpAddresses": [
                        {
                            "PrivateDnsName": "ip-10-0-1-114.ec2.internal",
                            "Primary": true,
                            "PrivateIpAddress": "10.0.1.114"
                        }
                    ],
                    "PrivateDnsName": "ip-10-0-1-114.ec2.internal",
                    "Attachment": {
                        "Status": "attached",
                        "DeviceIndex": 0,
                        "DeleteOnTermination": true,
                        "AttachmentId": "eni-attach-52193138",
                        "AttachTime": "2013-07-19T02:42:39.000Z"
                    },
                    "Groups": [
                        {
                            "GroupName": "my-sg",
                            "GroupId": "sg-903004f8"
                        }
                    ],
                    "SubnetId": "subnet-6e7f829e",
                    "OwnerId": "123456789012",
                    "PrivateIpAddress": "10.0.1.114"
                }              
            ],
            "SourceDestCheck": true,
            "Placement": {
                "Tenancy": "default",
                "GroupName": null,
                "AvailabilityZone": "us-west-2b"
            },
            "Hypervisor": "xen",
            "BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/sda1",
                    "Ebs": {
                        "Status": "attached",
                        "DeleteOnTermination": true,
                        "VolumeId": "vol-877166c8",
                        "AttachTime": "2013-07-19T02:42:39.000Z"
                    }
                }              
            ],
            "Architecture": "x86_64",
            "StateReason": {
                "Message": "pending",
                "Code": "pending"
            },
            "RootDeviceName": "/dev/sda1",
            "VirtualizationType": "hvm",
            "RootDeviceType": "ebs",
            "Tags": [
                {
                    "Value": "MyInstance",
                    "Key": "Name"
                }
            ],
            "AmiLaunchIndex": 0
        }
    ]
}
```

## Ajout d’un périphérique de stockage en mode bloc à votre instance
<a name="block-device-mapping"></a>

Un volume de périphérique racine est associé à chaque instance que vous lancez. Vous pouvez utiliser un mappage de périphérique de stockage en mode bloc pour spécifier des volumes Amazon Elastic Block Store (Amazon EBS) supplémentaires ou des volumes de stockage d’instances à attacher à une instance lorsqu’elle est lancée.

Pour ajouter un périphérique de stockage en mode bloc à votre instance, indiquez l’option `--block-device-mappings` lorsque vous utilisez `run-instances`.

Dans l’exemple suivant, le paramètre alloue un volume Amazon EBS standard de 20 Go, et le mappe à votre instance à l’aide de l’identifiant `/dev/sdf`.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false}}]"
```

L’exemple suivant ajoute un volume Amazon EBS, mappé à `/dev/sdf`, sur la base d’un instantané existant. Un instantané représente une image qui est chargée sur le volume pour vous. Lorsque vous spécifiez un instantané, vous n’avez pas besoin de spécifier de volume ; il sera suffisamment grand pour contenir votre image. Cependant, si vous spécifiez une taille, elle doit être supérieure ou égale à la taille de l’instantané.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4\"}}]"
```

L’exemple suivant permet d’ajouter deux volumes à votre instance. Le nombre de volumes disponibles pour votre instance varie en fonction de son type d’instance.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\":\"/dev/sdg\",\"VirtualName\":\"ephemeral1\"}]"
```

L’exemple suivant crée le mappage (`/dev/sdj`), mais n’alloue pas de volume à l’instance.

```
--block-device-mappings "[{\"DeviceName\":\"/dev/sdj\",\"NoDevice\":\"\"}]"
```

Pour plus d’informations, consultez [Exemple de mappage de périphérique de stockage en mode bloc](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Ajout d’une balise à votre instance
<a name="tagging-instances"></a>

Une étiquette est une étiquette que vous attribuez à une AWS ressource. Elle vous permet d’ajouter des métadonnées à vos ressources que vous pouvez utiliser à des fins diverses. Pour plus d’informations, consultez [Balisage de vos ressources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) dans le Guide d’utilisateur *Amazon EC2*.

L’exemple suivant montre comment ajouter une balise avec le nom de clé « `Name` » et la valeur « `MyInstance` » pour l’instance spécifiée, en utilisant la commande `[aws ec2 create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)`.

```
$ aws ec2 create-tags --resources i-5203422c --tags Key=Name,Value=MyInstance
```

## Connexion à votre instance
<a name="connecting-to-instances"></a>

Lorsque votre instance est en cours d’exécution, vous pouvez vous y connecter et l’utiliser comme vous le feriez depuis un ordinateur devant lequel vous êtes assis. Pour plus d’informations, consultez [Connexion à votre instance Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) dans le *Guide de l’utilisateur Amazon EC2*.

## Affichage de la liste de vos instances
<a name="listing-instances"></a>

Vous pouvez utiliser le AWS CLI pour répertorier vos instances et consulter les informations les concernant. Vous pouvez afficher l’ensemble de vos instances, ou filtrer les résultats en fonction des instances qui vous intéressent.

Les exemples suivants montrent comment utiliser la commande `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)`.

La commande suivante affiche la liste de toutes vos instances.

```
$ aws ec2 describe-instances
```

La commande suivante filtre la liste uniquement pour vos instances `t2.micro` et fournit uniquement en sortie les valeurs `InstanceId` pour chaque correspondance.

```
$ aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
[
    "i-05e998023d9c69f9a"
]
```

La commande suivante liste toutes vos instances ayant la balise `Name=MyInstance`.

```
$ aws ec2 describe-instances --filters "Name=tag:Name,Values=MyInstance"
```

La commande suivante répertorie les instances qui ont été lancées à l'aide de l'une des AMIs méthodes suivantes : `ami-x0123456``ami-y0123456`, et`ami-z0123456`.

```
$ aws ec2 describe-instances --filters "Name=image-id,Values=ami-x0123456,ami-y0123456,ami-z0123456"
```

## Suppression de votre instance
<a name="terminating-instances"></a>

Vous pouvez utiliser le AWS CLI pour mettre fin (supprimer) à une instance Amazon EC2 lorsque vous n'en avez plus besoin.

**Important**  
**La résiliation d’une instance est définitive et irréversible.**  
Une fois que vous avez résilié une instance, vous ne pouvez plus vous y connecter et elle ne peut pas être récupérée. Tous les volumes Amazon EBS attachés qui sont configurés pour être supprimés à la résiliation sont également supprimés de manière définitive et ne peuvent pas être récupérés. L’intégralité des données stockées sur les volumes de stockage d’instance est définitivement perdue. Pour plus d'informations, consultez [Comment fonctionne la résiliation d'une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html).  
Avant de résilier à une instance, assurez-vous d’avoir sauvegardé toutes les données que vous devez conserver après la résiliation dans un stockage persistant.

Dès que l’état de l’instance passe à `shutting-down` ou `terminated`, l’instance ne vous est plus facturée. Si vous souhaitez vous reconnecter à une instance ultérieurement, utilisez [stop-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/stop-instances.html) au lieu de `terminate-instances`. Pour plus d’informations, consultez [Résilier une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) dans le *Guide de l’utilisateur Amazon EC2*.

L'exemple suivant montre comment supprimer une instance à l'aide de la `[aws ec2 terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html)` commande.

```
$ aws ec2 terminate-instances --instance-ids i-5203422c
{
    "TerminatingInstances": [
        {
            "InstanceId": "i-5203422c",
            "CurrentState": {
                "Code": 32,
                "Name": "shutting-down"
            },
            "PreviousState": {
                "Code": 16,
                "Name": "running"
            }
        }
    ]
}
```

## Références
<a name="cli-services-ec2-instances-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/latest/reference/ec2/index.html)`
+ `[aws ec2 create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)`
+ `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)`
+ `[aws ec2 run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)`
+ `[aws ec2 terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.

# Modifiez le type d'instance Amazon EC2 à l'aide d'un script bash dans le AWS CLI
<a name="cli-services-ec2-instance-type-script"></a>

Cet exemple de script bash pour Amazon EC2 modifie le type d'instance d'une instance Amazon EC2 à l'aide du (). AWS Command Line Interface AWS CLI Il arrête l’instance si elle est en cours d’exécution, modifie le type d’instance, puis, sur demande, redémarre l’instance. Les scripts Shell sont des programmes conçus pour être exécutés dans une interface de ligne de commande.

**Note**  
Pour des exemples de commandes supplémentaires, consultez le [de référence](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Avant de commencer](#cli-services-ec2-instance-type-script-prereqs)
+ [À propos de cet exemple](#cli-services-ec2-instance-type-script-about)
+ [Parameters](#cli-services-ec2-instance-type-script-params)
+ [Fichiers](#cli-services-ec2-instance-type-script-files.title)
+ [Références](#cli-services-ec2-instance-type-script-references)

## Avant de commencer
<a name="cli-services-ec2-instance-type-script-prereqs"></a>

Avant de pouvoir exécuter l’un des exemples ci-dessous, vous devez respecter les conditions requises suivantes.
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour vers la dernière version du AWS CLI](getting-started-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Le profil que vous utilisez doit disposer d'autorisations autorisant les AWS opérations effectuées dans les exemples.
+ Une instance Amazon EC2 en cours d’exécution dans le compte pour lequel vous disposez des autorisations d’arrêt et de modification. Si vous exécutez le script de test, il lance une instance pour vous, teste la modification du type, puis résilie l’instance.
+  AWS La meilleure pratique consiste à accorder à ce code le privilège minimal, ou uniquement les autorisations requises pour effectuer une tâche. Pour plus d’informations, consultez [Octroi du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dans le *Guide de l’utilisateur AWS Identity and Access Management (IAM)*.
+ Ce code n'a pas été testé dans toutes les AWS régions. Certains AWS services ne sont disponibles que dans certaines régions. Pour plus d’informations, consultez [Points de terminaison et quotas de service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) dans le *Guide de référence générale AWS *. 
+ L'exécution de ce code peut entraîner des frais sur votre AWS compte. Il est de votre responsabilité de vous assurer que toutes les ressources créées par ce script sont supprimées lorsque vous en avez fini avec elles. 

## À propos de cet exemple
<a name="cli-services-ec2-instance-type-script-about"></a>

Cet exemple est écrit sous forme de fonction dans le fichier de script shell `change_ec2_instance_type.sh` que vous pouvez obtenir comme `source` à partir d’un autre script ou de la ligne de commande. Chaque fichier de script contient des commentaires décrivant chacune des fonctions. Une fois la fonction en mémoire, vous pouvez l’invoquer à partir de la ligne de commande. Par exemple, les commandes suivantes remplacent le type de l’instance spécifiée par `t2.nano` :

```
$ source ./change_ec2_instance_type.sh
$ ./change_ec2_instance_type -i *instance-id* -t new-type
```

Pour obtenir l'exemple complet et les fichiers de script téléchargeables, consultez [Modifier le type d'instance Amazon EC2](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/ec2/change-ec2-instance-type) dans le *référentiel d'exemples de AWS code* sur. *GitHub*

## Parameters
<a name="cli-services-ec2-instance-type-script-params"></a>

**-i** : *(chaîne)* spécifie l’ID d’instance à modifier.

**-t** : *(chaîne)* spécifie le type d’instance Amazon EC2 vers lequel basculer.

**-r** : *(commutateur)* par défaut, ce paramètre n’est pas défini. Si `-r` est défini, redémarre l’instance après le basculement de type.

**-f** : *(commutateur)* par défaut, le script invite l’utilisateur à confirmer l’arrêt de l’instance avant de procéder au basculement. Si `-f` est défini, la fonction n’invite pas l’utilisateur avant d’arrêter l’instance pour effectuer le basculement de type

**-v** : *(commutateur)* par défaut, le script fonctionne en mode silencieux et affiche le résultat uniquement en cas d’erreur. Si `-v` est défini, la fonction affiche l’état tout au long de son fonctionnement.

## Fichiers
<a name="cli-services-ec2-instance-type-script-files.title"></a>

**`change_ec2_instance_type.sh`**  
Le fichier de script principal contient la fonction `change_ec2_instance_type()` qui effectue les tâches suivantes :  
+ Vérifie que l’instance Amazon EC2 spécifiée existe.
+ À moins que `-f` ne soit sélectionné, avertit l’utilisateur avant d’arrêter l’instance.
+ Modifie le type d’instance
+ Si vous définissez `-r`, redémarre l’instance et confirme qu’elle est en cours d’exécution
Consultez le code correspondant `[change\$1ec2\$1instance\$1type.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/change_ec2_instance_type.sh)` à *GitHub*.

**`test_change_ec2_instance_type.sh`**  
Le script `test_change_ec2_instance_type.sh` de fichier teste les différents chemins de code de la fonction `change_ec2_instance_type`. Si toutes les étapes du script de test fonctionnent correctement, le script de test supprime toutes les ressources qu’il a créées.  
Vous pouvez exécuter le script à l’aide des paramètres suivants :  
+ **-v** - *(switch)* Chaque test affiche un pass/failure état au fur et à mesure de son exécution. Par défaut, les tests s'exécutent silencieusement et la sortie inclut uniquement le pass/failure statut global final.
+ **-i** : *(commutateur)* le script s’arrête après chaque test pour vous permettre de parcourir les résultats intermédiaires de chaque étape. Vous permet d’examiner l’état actuel de l’instance à l’aide de la console Amazon EC2. Le script passe à l’étape suivante une fois que vous avez appuyé sur *ENTRÉE* à l’invite.
Consultez le code correspondant `[test\$1change\$1ec2\$1instance\$1type.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/test_change_ec2_instance_type.sh)` à *GitHub*.

**`awsdocs_general.sh`**  
Le fichier de script `awsdocs_general.sh` contient les fonctions générales utilisées dans les exemples avancés de l’ AWS CLI.  
Consultez le code correspondant `[awsdocs\$1general.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/awsdocs_general.sh)` à *GitHub*.

## Références
<a name="cli-services-ec2-instance-type-script-references"></a>

**AWS CLI référence :**
+ `[aws ec2](https://docs.aws.amazon.com/cli/v1/reference/ec2/index.html)`
+ `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/describe-instances.html)`
+ `[aws ec2 modify-instance-attribute](https://docs.aws.amazon.com/cli/v1/reference/ec2/modify-instance-attribute.html)`
+ `[aws ec2 start-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/start-instances.html)`
+ `[aws ec2 stop-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/stop-instances.html)`
+ `[aws ec2 wait instance-running](https://docs.aws.amazon.com/cli/v1/reference/ec2/wait/instance-running.html)`
+ `[aws ec2 wait instance-stopped](https://docs.aws.amazon.com/cli/v1/reference/ec2/wait/instance-stopped.html)`

**Autre référence :**
+ [Documentation Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Pour consulter le AWS SDK et les exemples de AWS CLI code et y contribuer, consultez le [référentiel d'exemples de AWS code](https://github.com/awsdocs/aws-doc-sdk-examples/) sur *GitHub*.