

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.

# Configuration AL2 des instances
<a name="configure-ec2-instance"></a>

Une fois que vous avez lancé et connecté votre AL2 instance avec succès, vous pouvez y apporter des modifications. Il existe de nombreuses façons différentes de configurer une instance afin de répondre aux besoins d’une application spécifique. Les tâches suivantes comptent parmi celles couramment utilisées pour vous permettre de débuter.

**Topics**
+ [Scénarios de configuration courants](#instance-configuration-scenarios)
+ [Gérez les logiciels sur votre AL2 instance](managing-software.md)
+ [Contrôle de l'état du processeur pour votre instance Amazon EC2 AL2](processor_state_control.md)
+ [Planificateur d'E/S pour AL2](io-scheduler.md)
+ [Modifier le nom d'hôte de votre instance AL2](set-hostname.md)
+ [Configurer le DNS dynamique sur votre AL2 instance](dynamic-dns.md)
+ [Configurez votre interface réseau à l'aide d'ec2-net-utils pour AL2](ec2-net-utils.md)

## Scénarios de configuration courants
<a name="instance-configuration-scenarios"></a>

La distribution de base d’Amazon Linux contient les packages logiciels et les utilitaires nécessaires aux opérations de base du serveur. Néanmoins, beaucoup plus de packages logiciels sont disponibles dans différents référentiels de logiciels et encore plus de packages sont disponibles pour permettre la création à partir du code source. Pour plus d’informations sur l’installation et la création de logiciels à partir de ces emplacements, consultez le didacticiel [Gérez les logiciels sur votre AL2 instance](managing-software.md).

Les instances Amazon Linux sont préconfigurées avec un `ec2-user`, mais il se peut que vous souhaitiez ajouter d’autres utilisateurs qui n’ont pas de privilèges du super-utilisateur. Pour plus d'informations sur l'ajout et la suppression d'utilisateurs, consultez [Gérer les utilisateurs sur votre Linux instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html) dans le guide de l'*utilisateur Amazon EC2*.

Si vous possédez votre propre réseau avec un nom de domaine enregistré, vous pouvez changer le nom d’hôte d’une instance pour l’identifier dans le cadre de ce domaine. Vous pouvez aussi changer l’invite du système pour avoir un nom plus descriptif sans changer les réglages du nom d’hôte. Pour plus d’informations, consultez [Modifier le nom d'hôte de votre instance AL2](set-hostname.md). Vous pouvez configurer une instance pour utiliser un fournisseur de services DNS dynamiques. Pour plus d’informations, consultez [Configurer le DNS dynamique sur votre AL2 instance](dynamic-dns.md).

Lorsque vous lancez une instance dans Amazon EC2, vous avez la possibilité de transmettre les données des utilisateurs vers l’instance qui peut être utilisée pour effectuer des tâches de configuration communes et même exécuter des scripts après le démarrage de l’instance. Vous pouvez transmettre deux types de données utilisateur vers Amazon EC2 : des directives cloud-init et des scripts shell. Pour plus d'informations, consultez la section [Exécuter des commandes sur votre Linux instance au lancement](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) dans le guide de l'*utilisateur Amazon EC2*.

# Gérez les logiciels sur votre AL2 instance
<a name="managing-software"></a>

La distribution de base d’Amazon Linux contient les packages logiciels et les utilitaires nécessaires aux opérations de base du serveur.

Ces informations s'appliquent à AL2. Pour plus d'informations AL2023, consultez la section [Gérer les packages et les mises à jour du système d'exploitation AL2023 dans](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) le *guide de l'utilisateur Amazon Linux 2023*.

Il est important de garder les logiciels à jour. Beaucoup de packages dans une distribution Linux sont souvent mis à jour pour résoudre les bogues, ajouter des fonctions et protéger contre le code malveillant. Pour de plus amples informations, veuillez consulter [Mettre à jour le logiciel de l'instance sur votre AL2 instance](install-updates.md).

Par défaut, AL2 les instances sont lancées avec les référentiels suivants activés :
+ `amzn2-core`
+ `amzn2extra-docker`

Bien que de nombreux packages soient disponibles dans ces référentiels et mis à jour par AWS, il se peut que vous souhaitiez installer un package contenu dans un autre référentiel. Pour de plus amples informations, veuillez consulter [Ajouter des référentiels sur une instance AL2](add-repositories.md). Pour obtenir de l’aide pour trouver et installer des packages dans les référentiels activés, consultez [Rechercher et installer des packages logiciels sur une AL2 instance](find-install-software.md).

Les logiciels ne sont pas tous disponibles dans les packages logiciels stockés dans les référentiels. Certains logiciels doivent être compilés sur une instance à partir de son code source. Pour de plus amples informations, veuillez consulter [Préparation à la compilation du logiciel sur une AL2 instance](compile-software.md).

AL2 les instances gèrent leurs logiciels à l'aide du gestionnaire de packages yum. Le gestionnaire de packages yum peut installer, supprimer et mettre à jour les logiciels ainsi que gérer l’ensemble des dépendances pour chaque package.

**Topics**
+ [Mettre à jour le logiciel de l'instance sur votre AL2 instance](install-updates.md)
+ [Ajouter des référentiels sur une instance AL2](add-repositories.md)
+ [Rechercher et installer des packages logiciels sur une AL2 instance](find-install-software.md)
+ [Préparation à la compilation du logiciel sur une AL2 instance](compile-software.md)

# Mettre à jour le logiciel de l'instance sur votre AL2 instance
<a name="install-updates"></a>

Il est important de garder les logiciels à jour. Les packages dans une distribution Linux sont souvent mis à jour pour résoudre les bogues, ajouter des fonctions et protéger contre le code malveillant. Lorsque vous lancez et vous vous connectez pour la première fois à une instance Amazon Linux, il se peut que vous voyez un message vous demandant de mettre à jour des packages logiciels à des fins de sécurité. Cette section explique comment mettre à jour l’ensemble d’un système ou juste un seul package.

Ces informations s'appliquent à AL2. Pour plus d'informations AL2023, consultez la section [Gérer les packages et les mises à jour du système d'exploitation AL2023 dans](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) le *guide de l'utilisateur Amazon Linux 2023*.

Pour plus d'informations sur les modifications et les mises à jour apportées AL2, consultez les [notes AL2 de publication](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html).

Pour plus d'informations sur les modifications et les mises à jour apportées AL2023, consultez les [notes AL2023 de publication](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html).

**Important**  
Si vous avez lancé une instance EC2 qui utilise une AMI Amazon Linux 2 dans un sous-réseau IPv6 réservé, vous devez vous connecter à l'instance et exécuter. `sudo amazon-linux-https disable` Cela permet à votre AL2 instance de se connecter au yum référentiel dans S3 IPv6 via le service de correctif HTTP.

**Pour mettre à jour tous les packages d'une AL2 instance**

1. (Facultatif) Lancez une session **screen** dans votre fenêtre shell. Il se peut que vous connaissiez parfois une interruption du réseau qui peut déconnecter la connexion SSH à votre instance. Si ce problème arrive pendant une longue mise à jour logicielle, cela peut laisser l’instance dans un état récupérable bien que désorienté. Une session **screen** vous permet de continuer à exécuter la mise à jour même si votre connexion est interrompue et vous pouvez vous reconnecter à la session plus tard sans problème.

   1. Exécutez la commande **screen** pour démarrer la session.

      ```
      [ec2-user ~]$ screen
      ```

   1. Si votre session est déconnectée, reconnectez-vous à votre instance et énumérez les écrans disponibles.

      ```
      [ec2-user ~]$ screen -ls
      There is a screen on:
      	17793.pts-0.ip-12-34-56-78	(Detached)
      1 Socket in /var/run/screen/S-ec2-user.
      ```

   1. Reconnectez-vous à l’écran à l’aide de la commande **screen -r** et l’ID du processus de la commande précédente.

      ```
      [ec2-user ~]$ screen -r 17793
      ```

   1. Lorsque vous avez terminé d’utiliser **screen**, servez-vous de la commande **exit** pour fermer la session.

      ```
      [ec2-user ~]$ exit
      [screen is terminating]
      ```

1. Exécutez la commande **yum update**. Le cas échéant, vous pouvez ajouter l’indicateur `--security` pour appliquer uniquement les mises à jour de sécurité.

   ```
   [ec2-user ~]$ sudo yum update
   ```

1. Vérifiez les packages énumérés, saisissez **y**, puis appuyez sur Entrée pour accepter les mises à jour. La mise à jour de tous les packages d’un système peut prendre plusieurs minutes. Les résultats **yum** montrent le statut de la mise à jour pendant son exécution.

1. (Facultatif) [Redémarrez votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html) pour vous assurer que vous utilisez les derniers packages et bibliothèques issus de votre mise à jour ; les mises à jour du noyau ne sont pas chargées tant qu'un redémarrage n'est pas effectué. Les mises à jour de n’importe quelle bibliothèque `glibc` devraient aussi être suivies d’un redémarrage. Pour les mises à jour des packages qui contrôlent les services, il peut s’avérer suffisant de redémarrer les services pour récupérer les mises à jour, mais un redémarrage du système assure que toutes les mises à jour précédentes des packages et des bibliothèques sont terminées.

**Pour mettre à jour un seul package sur une AL2 instance**

Utilisez cette procédure pour mettre à jour un seul package (et ses dépendances) et non l’ensemble du système.

1. Exécutez la commande **yum update** avec le nom du package que vous souhaiteriez mettre à jour.

   ```
   [ec2-user ~]$ sudo yum update openssl
   ```

1. Vérifiez les détails relatifs aux packages énumérés, saisissez **y**, puis appuyez sur Entrée pour accepter les mises à jour. Il peut arriver qu’il y ait plus d’un package énuméré s’il existe des dépendances de packages qui doivent être résolues. Les résultats **yum** montrent le statut de la mise à jour pendant son exécution.

1. (Facultatif) [Redémarrez votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html) pour vous assurer que vous utilisez les derniers packages et bibliothèques issus de votre mise à jour ; les mises à jour du noyau ne sont pas chargées tant qu'un redémarrage n'est pas effectué. Les mises à jour de n’importe quelle bibliothèque `glibc` devraient aussi être suivies d’un redémarrage. Pour les mises à jour des packages qui contrôlent les services, il peut s’avérer suffisant de redémarrer les services pour récupérer les mises à jour, mais un redémarrage du système assure que toutes les mises à jour précédentes des packages et des bibliothèques sont terminées.

# Ajouter des référentiels sur une instance AL2
<a name="add-repositories"></a>

Ces informations s'appliquent à AL2. Pour plus d'informations AL2023, consultez la section [Mises à niveau déterministes via des référentiels versionnés dans AL2023 le guide](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html) de l'utilisateur *Amazon Linux 2023.*

Par défaut, AL2 les instances sont lancées avec les référentiels suivants activés :
+ `amzn2-core`
+ `amzn2extra-docker`

S’il existe de nombreux packages disponibles dans ces référentiels qui sont mis à jour par Amazon Web Services, il est toutefois possible que vous trouviez un package dans un autre référentiel que vous souhaitez installer.

Pour installer un package d’un référentiel différent avec la commande **yum**, vous devez ajouter les détails relatifs au référentiel au fichier `/etc/yum.conf` ou à son propre fichier `repository.repo` dans le répertoire `/etc/yum.repos.d`. Vous pouvez le faire manuellement, mais la plupart des référentiels yum ont leur propre fichier `repository.repo` sur l’URL de leur référentiel.

**Pour déterminer quels référentiels yum sont déjà installés**  
Utilisez la commande suivante pour répertorier les référentiels yum installés :

```
[ec2-user ~]$ yum repolist all
```

La sortie obtenue répertorie les référentiels installés et indique l’état de chacun. Les référentiels activés affichent le nombre de packages qu’ils contiennent.

**Pour ajouter un référentiel yum à /etc/yum.repos.d**

1. Recherchez l’emplacement du fichier `.repo`. Il variera selon le référentiel que vous ajoutez. Dans cet exemple, le fichier `.repo` se trouve à l’adresse `https://www.example.com/repository.repo`.

1. Ajoutez le référentiel à l’aide de la commande **yum-config-manager**.

   ```
   [ec2-user ~]$ sudo yum-config-manager --add-repo https://www.example.com/repository.repo
   Loaded plugins: priorities, update-motd, upgrade-helper
   adding repo from: https://www.example.com/repository.repo
   grabbing file https://www.example.com/repository.repo to /etc/yum.repos.d/repository.repo
   repository.repo                                      | 4.0 kB     00:00
   repo saved to /etc/yum.repos.d/repository.repo
   ```

Après avoir installé un référentiel, vous devez l’activer, comme décrit dans la procédure suivante.

**Pour activer un référentiel yum dans /etc/yum.repos.d**  
Utilisez la commande **yum-config-manager** avec l’indicateur `--enable repository`. La commande suivante active le référentiel EPEL (Extra Packages for Enterprise Linux) à partir du projet Fedora. Par défaut, ce référentiel est présent dans `/etc/yum.repos.d` sur les instances Amazon Linux AMI, mais il n’est pas activé.

```
[ec2-user ~]$ sudo yum-config-manager --enable epel
```

Pour plus d'informations et pour télécharger la dernière version de ce package, consultez [https://fedoraproject. org/wiki/EPEL](https://fedoraproject.org/wiki/EPEL).

# Rechercher et installer des packages logiciels sur une AL2 instance
<a name="find-install-software"></a>

Vous pouvez utiliser un outil de gestion des packages pour trouver et installer des packages logiciels. Dans Amazon Linux 2, l'outil de gestion des packages logiciels par défaut estYUM. Dans AL2023, l'outil de gestion des progiciels par défaut estDNF. Pour plus d'informations, consultez l'[outil de gestion des packages](https://docs.aws.amazon.com/linux/al2023/ug/package-management.html) dans le *guide de l'utilisateur Amazon Linux 2023*.

## Rechercher des packages logiciels sur une AL2 instance
<a name="find-software"></a>

Vous pouvez utiliser la commande **yum search** pour rechercher les descriptions des packages qui sont disponibles dans vos référentiels configurés. Elle est particulièrement utile si vous ne connaissez pas le nom exact du package que vous voulez installer. Il suffit de joindre la recherche de mots clés à la commande ; pour les recherches de plusieurs mots, entourez la requête de recherche avec des guillemets.

```
[ec2-user ~]$ yum search "find"
```

Voici un exemple de sortie.

```
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
============================== N/S matched: find ===============================
findutils.x86_64 : The GNU versions of find utilities (find and xargs)
gedit-plugin-findinfiles.x86_64 : gedit findinfiles plugin
ocaml-findlib-devel.x86_64 : Development files for ocaml-findlib
perl-File-Find-Rule.noarch : Perl module implementing an alternative interface to File::Find
robotfindskitten.x86_64 : A game/zen simulation. You are robot. Your job is to find kitten.
mlocate.x86_64 : An utility for finding files by name
ocaml-findlib.x86_64 : Objective CAML package manager and build helper
perl-Devel-Cycle.noarch : Find memory cycles in objects
perl-Devel-EnforceEncapsulation.noarch : Find access violations to blessed objects
perl-File-Find-Rule-Perl.noarch : Common rules for searching for Perl things
perl-File-HomeDir.noarch : Find your home and other directories on any platform
perl-IPC-Cmd.noarch : Finding and running system commands made easy
perl-Perl-MinimumVersion.noarch : Find a minimum required version of perl for Perl code
texlive-xesearch.noarch : A string finder for XeTeX
valgrind.x86_64 : Tool for finding memory management bugs in programs
valgrind.i686 : Tool for finding memory management bugs in programs
```

Les demandes de recherche de plusieurs mots entre guillemets donnent uniquement des résultats qui correspondent à la requête exacte. Si vous ne voyez pas le package attendu, simplifiez votre recherche en utilisant un mot clé, puis analyser les résultats. Vous pouvez aussi des synonymes des mots clés pour élargir votre recherche.

Pour plus d'informations sur les packages pour AL2, consultez les rubriques suivantes :
+ [AL2 Bibliothèque d'extras](al2-extras.md)
+ [Référentiel de packages](ec2.md#package-repository)

## Installation de packages logiciels sur une AL2 instance
<a name="install-software"></a>

Dans AL2, l'outil de gestion de packages yum recherche différents packages logiciels dans tous vos référentiels activés et gère toutes les dépendances du processus d'installation du logiciel. Pour plus d'informations sur l'installation de packages logiciels dans AL2023, consultez [la section Gestion des packages et des mises à jour du système d'exploitation](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) dans le *guide de l'utilisateur Amazon Linux 2023*.

**Pour installer un package à partir d’un référentiel**  
Utilisez la **yum install *package*** commande en *package* remplaçant par le nom du logiciel à installer. Par exemple, pour installer le navigateur web à base de texte **links**, saisissez la commande suivante.

```
[ec2-user ~]$ sudo yum install links
```

**Pour installer les fichiers du package RPM que vous avez téléchargé**  
Vous pouvez également utiliser **yum install** pour installer les fichiers du package RPM que vous avez téléchargé sur Internet. Pour cela, il vous suffit de joindre le nom du chemin d’un fichier RPM à la commande d’installation au lieu du nom d’un package de référentiel.

```
[ec2-user ~]$ sudo yum install my-package.rpm
```

**Pour lister les packages installés**  
Pour afficher la liste des packages installés sur votre instance, utilisez la commande suivante.

```
[ec2-user ~]$ yum list installed
```

# Préparation à la compilation du logiciel sur une AL2 instance
<a name="compile-software"></a>

Les logiciels open source sont disponibles sur Internet qui n’ont pas été précompilés et mis à disposition pour le téléchargement à partir d’un référentiel de packages. Il est possible que vous découvriez un package logiciel que vous devrez compiler vous-même, à partir de son code source. Pour que votre système puisse compiler des logiciels dans AL2 et Amazon Linux, vous devez installer plusieurs outils de développement, tels que **make****gcc**, et**autoconf**.

Comme la compilation de logiciels n’est pas une tâche que chaque instance Amazon EC2 nécessite, ces outils ne sont pas installés par défaut, mais ils sont disponibles dans un groupe de packages appelé « Development tools » (Outils de développement) qui s’ajoute facilement à une instance avec la commande **yum groupinstall**.

```
[ec2-user ~]$ sudo yum groupinstall "Development Tools"
```

Les packages de code source des logiciels sont souvent disponibles en téléchargement (à partir de sites Web tels que [https://github.com/](https://github.com/)et [http://sourceforge.net/](https://sourceforge.net/)) sous forme de fichier d'archive compressé, appelé tarball. Ces tarballs portent généralement l’extension de fichier `.tar.gz`. Vous pouvez décompresser ces archives avec la commande **tar**.

```
[ec2-user ~]$ tar -xzf software.tar.gz
```

Après avoir décompressé et désarchivé le package de code source, vous devriez rechercher un fichier `README` ou `INSTALL` dans le répertoire du code source qui peut vous fournir plus d’instructions pour la compilation et l’installation du code source. 

**Pour récupérer le code source des packages Amazon Linux**  
Amazon Web Services fournit le code source pour les packages gérés. Vous pouvez télécharger le code source pour n’importe quel package installé avec la commande **yumdownloader --source**.

Exécutez la **yumdownloader --source *package*** commande pour télécharger le code source de*package*. Par exemple, pour télécharger le code source du package `htop`, saisissiez la commande suivante.

```
[ec2-user ~]$ yumdownloader --source htop

Loaded plugins: priorities, update-motd, upgrade-helper
Enabling amzn-updates-source repository
Enabling amzn-main-source repository
amzn-main-source                                                                                              | 1.9 kB  00:00:00     
amzn-updates-source                                                                                           | 1.9 kB  00:00:00     
(1/2): amzn-updates-source/latest/primary_db                                                                  |  52 kB  00:00:00     
(2/2): amzn-main-source/latest/primary_db                                                                     | 734 kB  00:00:00     
htop-1.0.1-2.3.amzn1.src.rpm
```

L’emplacement du fichier RPM source est dans le répertoire à partir duquel vous avez exécuté la commande.

# Contrôle de l'état du processeur pour votre instance Amazon EC2 AL2
<a name="processor_state_control"></a>

Les états « C-state » contrôlent les niveaux de veille dans lesquels un cœur peut entrer lorsqu’il est inutilisé. Les états « C-state » sont numérotés de C0 (l’état le plus superficiel lorsque le cœur est totalement éveillé et exécute les instructions) à C6 (l’état de veille le plus profond lorsqu’un cœur est arrêté).

Les états « P-states » contrôlent les performances souhaitées (dans la fréquence de l’UC) à partir d’un cœur. La numérotation des états « P-states » commence à P0 (paramètre de performance le plus élevé dans lequel le cœur peut utiliser la technologie Intel Turbo Boost pour améliorer la fréquence si possible) et va de P1 (état « P-state » qui demande la fréquence de base maximale) à P15 (fréquence la plus basse possible).

Il se peut que vous vouliez changer les paramètres « C-state » ou « P-state » pour améliorer la cohérence des performances du processeur, réduire la latence ou ajuster votre instance pour une charge de travail spécifique. Les paramètres « C-state » ou « P-state » par défaut offre des performances maximales qui sont optimales pour la plupart des charges de travail. Cependant, si votre application tirerait avantage de la latence réduite pour un coût de fréquences simple ou double cœur plus hautes ou des performances cohérentes à des fréquences plus basses au lieu des fréquences Turbo Boost transmises en paquets, pensez à essayer les paramètres « C-state » ou « P-state » qui sont disponibles pour ces instances.

*Pour plus d'informations sur les types d'instances Amazon EC2 qui permettent au système d'exploitation de contrôler les états C et P du processeur, consultez la section Contrôle de [l'état du processeur pour votre instance Amazon EC2 dans le guide de l'utilisateur Amazon EC2](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/processor_state_control.html).*

Les sections suivantes décrivent les différentes configurations d’états du processeur et les façons de surveiller les effets de votre configuration. Ces procédures ont été écrites pour Amazon Linux et s'appliquent à celui-ci ; toutefois, elles peuvent également fonctionner pour d'autres distributions Linux dotées d'une version de noyau Linux 3.9 ou ultérieure.

**Note**  
Les exemples présentés sur cette page utilisent les éléments suivants :  
L’utilitaire **turbostat** pour afficher les informations relatives à la fréquence du processeur et à l’état « C-state ». L’utilitaire **turbostat** est disponible sur Amazon Linux par défaut.
La commande **stress** pour simuler une charge de travail. Pour installer **stress**, commencez par activer le référentiel EPEL en exécutant **sudo amazon-linux-extras install epel**, puis exécutez **sudo yum install -y stress**.
Si la sortie n’affiche pas les informations relatives à l’état « C-state », incluez l’option **--debug** dans la commande (**sudo turbostat --debug stress *<options>***).

**Topics**
+ [La meilleure performance avec la fréquence Turbo Boost maximale](#turbo-perf)
+ [Haute performance et faible latence en limitant les états « C-state » plus profonds](#c-states)
+ [Performances de base avec les variations les plus faibles](#baseline-perf)

## La meilleure performance avec la fréquence Turbo Boost maximale
<a name="turbo-perf"></a>

Il s’agit de la configuration de contrôle d’état du processeur par défaut pour Amazon Linux AMI et il est recommandé pour la plupart des charges de travail. Cette configuration fournit les meilleures performances avec des variations plus faibles. Le fait de permettre aux cœurs inactifs d’entrer dans des états de veille plus profonds offre le dégagement thermique nécessaire aux processeurs simple ou double cœur d’atteindre leur potentiel Turbo Boost maximal.

L’exemple suivant montre une instance `c4.8xlarge` avec deux cœurs qui fonctionnent activement et atteignent la fréquence Turbo Boost maximale de leur processeur.

```
[ec2-user ~]$ sudo turbostat stress -c 2 -t 10
stress: info: [30680] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [30680] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
             5.54 3.44 2.90   0   9.18   0.00  85.28   0.00   0.00   0.00   0.00   0.00  94.04 32.70 54.18  0.00
 0   0   0   0.12 3.26 2.90   0   3.61   0.00  96.27   0.00   0.00   0.00   0.00   0.00  48.12 18.88 26.02  0.00
 0   0  18   0.12 3.26 2.90   0   3.61
 0   1   1   0.12 3.26 2.90   0   4.11   0.00  95.77   0.00
 0   1  19   0.13 3.27 2.90   0   4.11
 0   2   2   0.13 3.28 2.90   0   4.45   0.00  95.42   0.00
 0   2  20   0.11 3.27 2.90   0   4.47
 0   3   3   0.05 3.42 2.90   0  99.91   0.00   0.05   0.00
 0   3  21  97.84 3.45 2.90   0   2.11
...
 1   1  10   0.06 3.33 2.90   0  99.88   0.01   0.06   0.00
 1   1  28  97.61 3.44 2.90   0   2.32
...
10.002556 sec
```

Dans cet exemple, les versions CPUs 21 et 28 fonctionnent à leur fréquence Turbo Boost maximale parce que les autres cœurs sont entrés en état de `C6` veille pour économiser de l'énergie et fournir à la fois de l'énergie et de la marge thermique aux cœurs de travail. Les versions CPUs 3 et 10 (chacune partageant un cœur de processeur avec les `C1` v CPUs 21 et 28) sont en attente d'instructions.

Dans l'exemple suivant, les 18 cœurs travaillent activement. Il n'y a donc pas de marge de manœuvre pour un Turbo Boost maximal, mais ils fonctionnent tous à la vitesse « Turbo Boost tous les cœurs » de 3,2 GHz.

```
[ec2-user ~]$ sudo turbostat stress -c 36 -t 10
stress: info: [30685] dispatching hogs: 36 cpu, 0 io, 0 vm, 0 hdd
stress: info: [30685] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
            99.27 3.20 2.90   0   0.26   0.00   0.47   0.00   0.00   0.00   0.00   0.00 228.59 31.33 199.26  0.00
 0   0   0  99.08 3.20 2.90   0   0.27   0.01   0.64   0.00   0.00   0.00   0.00   0.00 114.69 18.55 99.32  0.00
 0   0  18  98.74 3.20 2.90   0   0.62
 0   1   1  99.14 3.20 2.90   0   0.09   0.00   0.76   0.00
 0   1  19  98.75 3.20 2.90   0   0.49
 0   2   2  99.07 3.20 2.90   0   0.10   0.02   0.81   0.00
 0   2  20  98.73 3.20 2.90   0   0.44
 0   3   3  99.02 3.20 2.90   0   0.24   0.00   0.74   0.00
 0   3  21  99.13 3.20 2.90   0   0.13
 0   4   4  99.26 3.20 2.90   0   0.09   0.00   0.65   0.00
 0   4  22  98.68 3.20 2.90   0   0.67
 0   5   5  99.19 3.20 2.90   0   0.08   0.00   0.73   0.00
 0   5  23  98.58 3.20 2.90   0   0.69
 0   6   6  99.01 3.20 2.90   0   0.11   0.00   0.89   0.00
 0   6  24  98.72 3.20 2.90   0   0.39
...
```

## Haute performance et faible latence en limitant les états « C-state » plus profonds
<a name="c-states"></a>

Les états « C-state » contrôlent les niveaux de veille dans lesquels un cœur peut entrer lorsqu’il est inutilisé. Il se peut que vous vouliez contrôler les états « C-state » pour ajuster la latence de votre système par rapport aux performances. La mise en veille de cœurs prend du temps. Même si un cœur en veille donne plus de marge pour qu’un autre cœur fonctionne à une fréquence plus élevée, ce cœur en veille prend du temps pour se remettre en route et fonctionner. Par exemple, si un cœur qui est assigné à la gestion d’interruptions de paquets est en veille, il se peut que la prise en charge de cette interruption soit retardée. Vous pouvez configurer le système pour qu’il n’utilise pas les états « C-state » plus profonds ce qui réduit la latence de réaction du processeur, mais également la marge disponible pour la fréquence Turbo Boost des autres cœurs.

Un scénario commun pour la désactivation d’états de veille plus profonds est une application de la base de données Redis qui stocke la base de données dans la mémoire système pour un temps de réponse aux requêtes le plus rapide possible.

**Pour limiter les états de sommeil plus profonds sur AL2**

1. Ouvrez le fichier `/etc/default/grub` avec l’éditeur de votre choix.

   ```
   [ec2-user ~]$ sudo vim /etc/default/grub
   ```

1. Modifiez la ligne `GRUB_CMDLINE_LINUX_DEFAULT` et ajoutez l’option `intel_idle.max_cstate=1` pour `processor.max_cstate=1` définir `C1` comme l’état « C-state » le plus profond pour les cœurs inutilisés.

   ```
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 intel_idle.max_cstate=1 processor.max_cstate=1"
   GRUB_TIMEOUT=0
   ```

   L’option `intel_idle.max_cstate=1` configure la limite de l’état C pour les instances Intel, et l’option `processor.max_cstate=1` configure la limite de l’état C pour les instances basées sur AMD. Il est possible d’ajouter les deux options à votre configuration en toute sécurité. Cela permet à une configuration unique de définir le comportement souhaité sur Intel et AMD.

1. Enregistrez le fichier et quittez votre éditeur.

1.  Exécutez la commande suivante pour recréer la configuration du démarrage.

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

1. Redémarrez votre instance pour activer la nouvelle option noyau.

   ```
   [ec2-user ~]$ sudo reboot
   ```

**Pour limiter les états de veille plus profonds sur Amazon Linux AMI**

1. Ouvrez le fichier `/boot/grub/grub.conf` avec l’éditeur de votre choix.

   ```
   [ec2-user ~]$ sudo vim /boot/grub/grub.conf
   ```

1. Modifiez la ligne `kernel` de la première entrée et ajoutez les options `intel_idle.max_cstate=1` et `processor.max_cstate=1` pour définir `C1` comme l’état « C-state » le plus profond pour les cœurs inutilisés.

   ```
   # created by imagebuilder
   default=0
   timeout=1
   hiddenmenu
   
   title Amazon Linux 2014.09 (3.14.26-24.46.amzn1.x86_64)
   root (hd0,0)
   kernel /boot/vmlinuz-3.14.26-24.46.amzn1.x86_64 root=LABEL=/ console=ttyS0 intel_idle.max_cstate=1  processor.max_cstate=1
   initrd /boot/initramfs-3.14.26-24.46.amzn1.x86_64.img
   ```

   L’option `intel_idle.max_cstate=1`configure la limite de l’état C pour les instances Intel, et l’option `processor.max_cstate=1` configure la limite de l’état C pour les instances basées sur AMD. Il est possible d’ajouter les deux options à votre configuration en toute sécurité. Cela permet à une configuration unique de définir le comportement souhaité sur Intel et AMD.

1. Enregistrez le fichier et quittez votre éditeur.

1. Redémarrez votre instance pour activer la nouvelle option noyau.

   ```
   [ec2-user ~]$ sudo reboot
   ```

L’exemple suivant montre une instance `c4.8xlarge` avec deux cœurs qui fonctionnent activement à la fréquence « Turbo Boost » lorsque tous les cœurs sont utilisés.

```
[ec2-user ~]$ sudo turbostat stress -c 2 -t 10
stress: info: [5322] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [5322] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
             5.56 3.20 2.90   0  94.44   0.00   0.00   0.00   0.00   0.00   0.00   0.00 131.90 31.11 199.47  0.00
 0   0   0   0.03 2.08 2.90   0  99.97   0.00   0.00   0.00   0.00   0.00   0.00   0.00  67.23 17.11 99.76  0.00
 0   0  18   0.01 1.93 2.90   0  99.99
 0   1   1   0.02 1.96 2.90   0  99.98   0.00   0.00   0.00
 0   1  19  99.70 3.20 2.90   0   0.30
...
 1   1  10   0.02 1.97 2.90   0  99.98   0.00   0.00   0.00
 1   1  28  99.67 3.20 2.90   0   0.33
 1   2  11   0.04 2.63 2.90   0  99.96   0.00   0.00   0.00
 1   2  29   0.02 2.11 2.90   0  99.98
...
```

Dans cet exemple, les cœurs des versions CPUs 19 et 28 fonctionnent à 3.2 GHz, et les autres cœurs sont à l'`C1`état C, en attente d'instructions. Même si les cœurs en fonctionnement n’atteignent pas leur fréquence Turbo Boost maximale, les cœurs inactifs seront beaucoup plus rapides à répondre aux nouvelles requêtes que s’ils possédaient l’état « C-state » `C6` plus profond.

## Performances de base avec les variations les plus faibles
<a name="baseline-perf"></a>

Vous pouvez réduire les variations de la fréquence du processeur avec des états « P-states ». Les états « P-states » contrôlent les performances souhaitées (dans la fréquence de l’UC) à partir d’un cœur. La plupart des charges de travail fonctionnent mieux avec l’état P0 ce qui demande une fréquence Turbo Boost. Cependant, il se peut que vous souhaitiez adapter votre système pour obtenir une performance cohérente plus que transmise en paquets ce qui peut se produire lorsque les fréquences Turbo Boost sont activées. 

Les charges de travail Intel Advanced Vector Extensions (AVX ou AVX2) peuvent fonctionner correctement à des fréquences plus basses, et les instructions AVX peuvent consommer plus d'énergie. L’exécution du processeur à une fréquence plus basse en désactivant la fréquence Turbo Boost peut réduire la quantité d’énergie utilisée et conserver la cohérence de la vitesse. Pour obtenir plus d’informations sur l’optimisation de la configuration et la charge de travail de votre instance pour AVX, consultez le [site Web d’Intel](https://www.intel.com/content/www/us/en/developer/articles/technical/the-intel-advanced-vector-extensions-512-feature-on-intel-xeon-scalable.html?wapkw=advanced%20vector%20extensions).

Les pilotes inactifs du processeur contrôlent l’état P. Les nouvelles générations de CPU nécessitent des pilotes inactifs du processeur mis à jour qui correspondent au niveau du noyau, comme suit :
+ Versions 6.1 et supérieures du noyau Linux : compatible avec Intel Granite Rapids (par exemple, R8i)
+ Versions du noyau Linux 5.10 et supérieures : compatible avec AMD Milan (par exemple, m6A)
+ Versions 5.6 et supérieures du noyau Linux : compatible avec Intel Icelake (par exemple, M6i)

Pour détecter si le noyau d’un système en cours d’exécution reconnaît le CPU, exécutez la commande suivante.

```
if [ -d /sys/devices/system/cpu/cpu0/cpuidle ]; then echo "C-state control enabled"; else echo "Kernel cpuidle driver does not recognize this CPU generation"; fi
```

Si la sortie de cette commande indique un manque de prise en charge, nous vous recommandons de mettre à niveau le noyau.

Cette section décrit comment limiter les états de veille plus longs et désactiver la fréquence Turbo Boost (en demandant l’état « P-state » `P1`) pour offrir une latence faible et la variation de vitesse du processeur la plus faible pour ces types de charges de travail.

**Pour limiter les états de sommeil plus profonds et désactiver Turbo Boost sur AL2**

1. Ouvrez le fichier `/etc/default/grub` avec l’éditeur de votre choix.

   ```
   [ec2-user ~]$ sudo vim /etc/default/grub
   ```

1. Modifiez la ligne `GRUB_CMDLINE_LINUX_DEFAULT` et ajoutez l’option `intel_idle.max_cstate=1` pour `processor.max_cstate=1` définir `C1` comme l’état « C-state » le plus profond pour les cœurs inutilisés.

   ```
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 intel_idle.max_cstate=1 processor.max_cstate=1"
   GRUB_TIMEOUT=0
   ```

   L’option `intel_idle.max_cstate=1` configure la limite de l’état C pour les instances Intel, et l’option `processor.max_cstate=1` configure la limite de l’état C pour les instances basées sur AMD. Il est possible d’ajouter les deux options à votre configuration en toute sécurité. Cela permet à une configuration unique de définir le comportement souhaité sur Intel et AMD.

1. Enregistrez le fichier et quittez votre éditeur.

1.  Exécutez la commande suivante pour recréer la configuration du démarrage.

   ```
   [ec2-user ~]$ grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

1. Redémarrez votre instance pour activer la nouvelle option noyau.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Lorsque vous avez besoin des faibles variations de vitesse du processeur que l’état P-state `P1` offre, exécutez la commande suivante pour désactiver la fréquence Turbo Boost.

   ```
   [ec2-user ~]$ sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

1. Lorsque votre charge de travail est terminée, vous pouvez réactiver la fréquence Turbo Boost avec la commande suivante.

   ```
   [ec2-user ~]$ sudo sh -c "echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

**Pour limiter les états de veille plus profonds et désactiver la fréquence Turbo Boost sur Amazon Linux AMI**

1. Ouvrez le fichier `/boot/grub/grub.conf` avec l’éditeur de votre choix.

   ```
   [ec2-user ~]$ sudo vim /boot/grub/grub.conf
   ```

1. Modifiez la ligne `kernel` de la première entrée et ajoutez les options `intel_idle.max_cstate=1` et `processor.max_cstate=1` pour définir `C1` comme l’état « C-state » le plus profond pour les cœurs inutilisés.

   ```
   # created by imagebuilder
   default=0
   timeout=1
   hiddenmenu
   
   title Amazon Linux 2014.09 (3.14.26-24.46.amzn1.x86_64)
   root (hd0,0)
   kernel /boot/vmlinuz-3.14.26-24.46.amzn1.x86_64 root=LABEL=/ console=ttyS0 intel_idle.max_cstate=1 processor.max_cstate=1
   initrd /boot/initramfs-3.14.26-24.46.amzn1.x86_64.img
   ```

   L’option `intel_idle.max_cstate=1`configure la limite de l’état C pour les instances Intel, et l’option `processor.max_cstate=1` configure la limite de l’état C pour les instances basées sur AMD. Il est possible d’ajouter les deux options à votre configuration en toute sécurité. Cela permet à une configuration unique de définir le comportement souhaité sur Intel et AMD.

1. Enregistrez le fichier et quittez votre éditeur.

1. Redémarrez votre instance pour activer la nouvelle option noyau.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Lorsque vous avez besoin des faibles variations de vitesse du processeur que l’état P-state `P1` offre, exécutez la commande suivante pour désactiver la fréquence Turbo Boost.

   ```
   [ec2-user ~]$ sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

1. Lorsque votre charge de travail est terminée, vous pouvez réactiver la fréquence Turbo Boost avec la commande suivante.

   ```
   [ec2-user ~]$ sudo sh -c "echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

L'exemple suivant montre une `c4.8xlarge` instance avec deux v exécutant CPUs activement un travail à la fréquence de base, sans Turbo Boost.

```
[ec2-user ~]$ sudo turbostat stress -c 2 -t 10
stress: info: [5389] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [5389] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
             5.59 2.90 2.90   0  94.41   0.00   0.00   0.00   0.00   0.00   0.00   0.00 128.48 33.54 200.00  0.00
 0   0   0   0.04 2.90 2.90   0  99.96   0.00   0.00   0.00   0.00   0.00   0.00   0.00  65.33 19.02 100.00  0.00
 0   0  18   0.04 2.90 2.90   0  99.96
 0   1   1   0.05 2.90 2.90   0  99.95   0.00   0.00   0.00
 0   1  19   0.04 2.90 2.90   0  99.96
 0   2   2   0.04 2.90 2.90   0  99.96   0.00   0.00   0.00
 0   2  20   0.04 2.90 2.90   0  99.96
 0   3   3   0.05 2.90 2.90   0  99.95   0.00   0.00   0.00
 0   3  21  99.95 2.90 2.90   0   0.05
...
 1   1  28  99.92 2.90 2.90   0   0.08
 1   2  11   0.06 2.90 2.90   0  99.94   0.00   0.00   0.00
 1   2  29   0.05 2.90 2.90   0  99.95
```

Les cœurs des versions CPUs 21 et 28 exécutent activement leur travail à la vitesse de base du processeur de 2,9 GHz, et tous les cœurs inactifs fonctionnent également à la vitesse de base dans l'`C1`état C, prêts à accepter des instructions.

# Planificateur d'E/S pour AL2
<a name="io-scheduler"></a>

Les I/O scheduler is a part of the Linux operating system that sorts and merges I/O demandes et détermine l'ordre dans lequel elles sont traitées.

I/O schedulers are particularly beneficial for devices such as magnetic hard drives, where seek time can be expensive and where it is optimal to merge co-located requests. I/Oles planificateurs ont moins d'effet sur les périphériques SSD et les environnements virtualisés. En effet, pour les périphériques SSD, l’accès séquentiel et aléatoire ne diffère pas, et pour les environnements virtualisés, l’hôte fournit sa propre couche de planification.

Cette rubrique traite du planificateur Amazon Linux I/O . Pour plus d’informations sur le planificateur d’I/O utilisé par d’autres distributions Linux, reportez-vous à leur documentation respective.

**Topics**
+ [Planificateurs pris en charge](#supported-schedulers)
+ [Planificateur par défaut](#default-schedulers)
+ [Modifier le planificateur](#change-scheduler)

## Planificateurs pris en charge
<a name="supported-schedulers"></a>

Amazon Linux prend en charge les I/O planificateurs suivants :
+ `deadline`— Le I/O planificateur de *délais* trie les I/O demandes et les traite dans l'ordre le plus efficace. Il garantit une heure de début pour chaque I/O request. It also gives I/O demande en attente depuis trop longtemps avec une priorité plus élevée.
+ `cfq`— Le I/O planificateur *Completely Fair Queueing* (CFQ) tente de répartir I/O resources between processes. It sorts and inserts I/O équitablement les demandes dans des files d'attente par processus.
+ `noop`— Les I/O scheduler inserts all I/O demandes *No Operation* (noop) sont placées dans une file d'attente FIFO, puis les fusionnent en une seule demande. Ce planificateur n’effectue aucun tri des demandes.

## Planificateur par défaut
<a name="default-schedulers"></a>

No Operation (noop) est le I/O planificateur par défaut pour Amazon Linux. Ce planificateur est utilisé pour les raisons suivantes :
+ De nombreux types d’instance utilisent des périphériques virtualisés sur lesquels l’hôte sous-jacent effectue une planification pour l’instance.
+ Les périphériques SSD sont utilisés dans de nombreux types d'instances où les avantages d'un I/O planificateur ont moins d'effet.
+ C'est le I/O planificateur le moins invasif, et il peut être personnalisé si nécessaire.

## Modifier le planificateur
<a name="change-scheduler"></a>

La modification du I/O planificateur peut augmenter ou diminuer les performances selon que le planificateur entraîne le traitement d'un plus grand nombre ou d'une diminution du nombre de I/O demandes dans un délai donné. Cela dépend largement de votre charge de travail, de la génération du type d’instance utilisé et du type de périphérique auquel vous accédez. Si vous modifiez le planificateur d'E/S utilisé, nous vous recommandons d'utiliser un outil, tel que **iotop**, pour mesurer les I/O performances et déterminer si le changement est bénéfique pour votre cas d'utilisation.

Vous pouvez afficher le I/O planificateur d'un appareil à l'aide de la commande suivante, qui `nvme0n1` sert d'exemple. Remplacez `nvme0n1` dans la commande suivante par le périphérique répertorié dans `/sys/block` sur votre instance.

```
$  cat /sys/block/nvme0n1/queue/scheduler
```

Pour définir le I/O planificateur de l'appareil, utilisez la commande suivante. 

```
$  echo cfq|deadline|noop > /sys/block/nvme0n1/queue/scheduler
```

Par exemple, pour définir le I/O planificateur d'un *xvda* appareil de `noop` à`cfq`, utilisez la commande suivante. 

```
$  echo cfq > /sys/block/xvda/queue/scheduler
```

# Modifier le nom d'hôte de votre instance AL2
<a name="set-hostname"></a>

Lorsque vous lancez une instance dans un VPC privé, Amazon EC2 attribue un nom d’hôte de système d’exploitation invité. Le type de nom d’hôte attribué par Amazon EC2 dépend des paramètres de votre sous-réseau. Pour plus d'informations sur les noms d'hôte EC2, consultez les types de noms d'hôtes des [instances Amazon EC2 dans le guide](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) de l'utilisateur Amazon *EC2*.

Un nom DNS privé Amazon EC2 typique pour une instance EC2 configurée pour utiliser la dénomination basée sur l'IP avec une IPv4 adresse ressemble à ceci : `ip-12-34-56-78.us-west-2.compute.internal` le nom comprend le domaine interne, le service (dans ce cas,`compute`), la région et une forme d'adresse privée. IPv4 Une partie de ce nom d’hôte est affiché sur l’invite shell lorsque vous vous connectez dans votre instance (par exemple, `ip-12-34-56-78`). Chaque fois que vous arrêtez et redémarrez votre instance Amazon EC2 (sauf si vous utilisez une adresse IP élastique), l' IPv4 adresse publique change, tout comme votre nom DNS public, votre nom d'hôte système et votre invite shell.

**Important**  
Ces informations s’appliquent à Amazon Linux. Pour obtenir des informations sur d’autres distributions, consultez leur documentation spécifique.

## Modifier le nom d’hôte du système
<a name="set-hostname-system"></a>

Si vous avez un nom DNS public enregistré pour l’adresse IP de votre instance (comme `webserver.mydomain.com`), vous pouvez régler le nom d’hôte du système pour que votre instance s’identifie comme une partie de ce domaine. Cela modifie également l'invite du shell afin qu'elle affiche la première partie de ce nom au lieu du nom d'hôte fourni par AWS (par exemple,`ip-12-34-56-78`). Si vous n’avez pas de nom DNS public enregistré, vous pouvez toujours changer le nom d’hôte, mais le processus est un peu différent.

Pour que la mise à jour de votre nom d’hôte persiste, vous devez vérifier que le paramètre cloud-init `preserve_hostname` est défini sur `true`. Vous pouvez exécuter la commande suivante afin de modifier ou d’ajouter ce paramètre :

```
sudo vi /etc/cloud/cloud.cfg
```

Si le paramètre `preserve_hostname` n’est pas répertorié, ajoutez la ligne de texte suivante à la fin du fichier : 

```
preserve_hostname: true
```

**Pour remplacer le nom d’hôte du système par un nom DNS public**

Suivez cette procédure si vous avez déjà un nom DNS public enregistré.

1. 
   + Pour AL2 : utilisez la **hostnamectl** commande pour définir votre nom d'hôte afin qu'il reflète le nom de domaine complet (tel que**webserver.mydomain.com**).

     ```
     [ec2-user ~]$ sudo hostnamectl set-hostname webserver.mydomain.com
     ```
   + Pour Amazon Linux AMI : Sur votre instance, ouvrez le fichier de configuration `/etc/sysconfig/network` dans votre éditeur de texte et modifiez l’entrée `HOSTNAME` pour refléter le nom de domaine complet (comme **webserver.mydomain.com**).

     ```
     HOSTNAME=webserver.mydomain.com
     ```

1. Redémarrez l’instance pour récupérer le nouveau nom d’hôte.

   ```
   [ec2-user ~]$ sudo reboot
   ```

   Vous pouvez également redémarrer à l’aide de la console Amazon EC2 (sur la page **Instances**, sélectionnez l’instance et choisissez **État de l’instance**, **Redémarrer l’instance**).

1. Connectez-vous à votre instance et vérifiez que le nom d’hôte a été mis à jour. Votre invite devrait indiquer le nouveau no d’hôte (jusqu’au premier « . ») et la commande **hostname** doit afficher le nom de domaine complet.

   ```
   [ec2-user@webserver ~]$ hostname
   webserver.mydomain.com
   ```

**Pour remplacer le nom d’hôte du système sans nom DNS public**

1. 
   + Pour AL2 : utilisez la **hostnamectl** commande pour définir votre nom d'hôte afin qu'il reflète le nom d'hôte du système souhaité (par exemple). **webserver**

     ```
     [ec2-user ~]$ sudo hostnamectl set-hostname webserver.localdomain
     ```
   + Pour Amazon Linux AMI : Sur votre instance, ouvrez le fichier de configuration `/etc/sysconfig/network` dans votre éditeur de texte préféré et modifiez l’entrée `HOSTNAME` pour refléter le nom d’hôte du système souhaité (comme **webserver**).

     ```
     HOSTNAME=webserver.localdomain
     ```

1. Ouvrez le fichier `/etc/hosts` dans votre éditeur de texte préféré et modifiez l’entrée commençant par **127.0.0.1** pour correspondre à l’exemple ci-dessous, en remplaçant votre propre nom d’hôte.

   ```
   127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4
   ```

1. Redémarrez l’instance pour récupérer le nouveau nom d’hôte.

   ```
   [ec2-user ~]$ sudo reboot
   ```

   Vous pouvez également redémarrer à l’aide de la console Amazon EC2 (sur la page **Instances**, sélectionnez l’instance et choisissez **État de l’instance**, **Redémarrer l’instance**).

1. Connectez-vous à votre instance et vérifiez que le nom d’hôte a été mis à jour. Votre invite devrait indiquer le nouveau no d’hôte (jusqu’au premier « . ») et la commande **hostname** doit afficher le nom de domaine complet.

   ```
   [ec2-user@webserver ~]$ hostname
   webserver.localdomain
   ```

Vous pouvez également implémenter des solutions plus programmatiques, telles que la spécification des données utilisateur pour configurer votre instance. Si votre instance fait partie d’un groupe Auto Scaling, vous pouvez utiliser des hooks de cycle de vie pour définir les données utilisateur. Pour de plus amples informations, veuillez consulter les rubriques [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Exécution des commandes sur votre instance Linux lors de son lancement) et [Lifecycle hook for instance launch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#aws-resource-autoscaling-lifecyclehook--examples--Lifecycle_hook_for_instance_launch) (Hook de cycle de vie pour le lancement d’instance) dans le *Guide de l’utilisateur AWS CloudFormation *.

## Modifier l’invite shell sans affecter le nom d’hôte
<a name="set-hostname-shell"></a>

Si vous ne souhaitez pas modifier le nom d'hôte de votre instance, mais que vous souhaitez afficher un nom de système plus utile (tel que**webserver**) que le nom privé fourni par AWS (par exemple,`ip-12-34-56-78`), vous pouvez modifier les fichiers de configuration des invites du shell pour afficher le surnom de votre système au lieu du nom d'hôte.

**Pour remplacer l’invite shell par un pseudonyme d’hôte**

1. Créez un fichier dans `/etc/profile.d` qui définit la variable d’environnement appelée `NICKNAME` avec la valeur que vous souhaitez dans l’invite shell. Par exemple, pour définir le pseudonyme du système sur **webserver**, exécutez la commande suivante.

   ```
   [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/profile.d/prompt.sh'
   ```

1. Ouvrez le fichier `/etc/bashrc` (Red Hat) ou `/etc/bash.bashrc` (Debian/Ubuntu) dans l’éditeur de texte de votre choix (par exemple, **vim** ou **nano**). Vous devez utiliser **sudo** avec la commande de l’éditeur, car `/etc/bashrc` et `/etc/bash.bashrc` appartiennent à `root`.

1. Modifiez le fichier et changez la variable d’invite shell (`PS1`) pour afficher votre pseudonyme au lieu du nom d’hôte. Recherchez la ligne suivante qui définit l’invite shell dans `/etc/bashrc` ou `/etc/bash.bashrc` (plusieurs lignes sont affichées ci-dessous pour illustrer le contexte ; recherchez la ligne qui commence par `[ "$PS1"`) :

   ```
     # Turn on checkwinsize
     shopt -s checkwinsize
     [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
     # You might want to have e.g. tty in prompt (e.g. more virtual machines)
     # and console windows
   ```

   Modifiez `\h` (symbole de `hostname`) sur cette ligne en la valeur de la variable `NICKNAME`.

   ```
     # Turn on checkwinsize
     shopt -s checkwinsize
     [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@$NICKNAME \W]\\$ "
     # You might want to have e.g. tty in prompt (e.g. more virtual machines)
     # and console windows
   ```

1. (Facultatif) Pour définir le titre sur les fenêtres shell avec le nouveau pseudonyme, suivez les étapes suivantes.

   1. Créez un fichier nommé `/etc/sysconfig/bash-prompt-xterm`.

      ```
      [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm
      ```

   1. Rendez le fichier exécutable avec la commande suivante.

      ```
      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm
      ```

   1. Ouvrez le fichier `/etc/sysconfig/bash-prompt-xterm` avec votre éditeur de texte préféré (comme **vim** ou **nano**). Vous devez utiliser **sudo** avec la commande de votre éditeur, car `/etc/sysconfig/bash-prompt-xterm` est détenu par `root`.

   1. Ajoutez la ligne suivante au fichier.

      ```
      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
      ```

1. Déconnectez-vous puis reconnectez-vous pour récupérer la nouvelle valeur du pseudonyme.

## Modifier le nom d’hôte sur d’autres distributions Linux
<a name="set-hostname-other-linux"></a>

Les procédures de cette page sont destinées à une utilisation avec Amazon Linux uniquement. Pour plus d’informations sur les autres distributions Linux, consultez leur documentation spécifique et les articles suivants :
+ [Comment attribuer un nom d’hôte statique à une instance privée Amazon EC2 exécutant RHEL 7 ou Centos 7 ?](https://aws.amazon.com/premiumsupport/knowledge-center/linux-static-hostname-rhel7-centos7/)

# Configurer le DNS dynamique sur votre AL2 instance
<a name="dynamic-dns"></a>

Lorsque vous lancez une instance EC2, une adresse IP publique et un système de nom de domaine (DNS) public lui sont attribués, que vous pouvez utiliser pour l’atteindre depuis Internet. Comme il y a tellement d’hôtes dans le domaine Amazon Web Services, ces noms publics doivent être assez longs pour que chaque nom reste unique. Un nom DNS public typique d'Amazon EC2 ressemble à ceci : `ec2-12-34-56-78.us-west-2.compute.amazonaws.com` le nom comprend le domaine Amazon Web Services, le service (dans ce cas,`compute`), le Région AWS, et une forme d'adresse IP publique.

Les services DNS dynamiques fournissent des noms d’hôte DNS personnalisés dans leur domaine qui peut être facile à mémoriser et aussi plus pertinent vis-à-vis du cas d’utilisation de votre hôte. Certains de ces services sont également gratuits. Vous pouvez utiliser un fournisseur DNS dynamique avec Amazon EC2 et configurez l’instance pour mettre à jour l’adresse IP associée au nom DNS public à chaque fois que l’instance commence. Il existe un choix de plusieurs fournisseurs différents et les détails spécifiques à la sélection d’un fournisseur et à l’enregistrement d’un nom sans eux ne sont pas pris en compte dans le cadre de ce guide.<a name="procedure-dynamic-dns"></a>

**Pour utiliser DNS dynamique avec Amazon EC2**

1. Inscrivez-vous avec un fournisseur de services DNS dynamiques et enregistrez un nom DNS public avec leur service. Cette procédure utilise le service gratuit de [noip.com/free](https://www.noip.com/free) comme exemple.

1. Configurez le client de mise à jour de DNS dynamique. Après avoir enregistré un fournisseur de services DNS dynamiques et un nom DNS public avec leur service, reliez le nom DNS à l’adresse IP de votre instance. De nombreux fournisseurs (notamment [noip.com](https://noip.com)) vous permettent de faire cela manuellement depuis la page de votre compte sur leur site web, mais beaucoup prennent également en charge les clients de mise à jour logicielle. Si un client de mise à jour est exécuté sur votre instance EC2, votre enregistrement DNS dynamique est mis à jour à chaque fois que l’adresse IP change, comme après une fermeture et un redémarrage. Dans cet exemple, vous installez le client noip2 qui fonctionne avec le service fourni par [noip.com](https://noip.com).

   1. Activez le référentiel Extra Packages for Enterprise Linux (EPEL) pour accéder au `noip2` client.
**Note**  
AL2 les clés GPG et les informations de référentiel du référentiel EPEL sont installées par défaut sur les instances. Pour plus d'informations et pour télécharger la dernière version de ce package, consultez [https://fedoraproject. org/wiki/EPEL](https://fedoraproject.org/wiki/EPEL).

      ```
      [ec2-user ~]$ sudo amazon-linux-extras install epel -y
      ```

   1. Installez le package `noip`.

      ```
      [ec2-user ~]$ sudo yum install -y noip
      ```

   1. Créez le fichier de configuration . Saisissez l’identifiant et le mot de passe lorsque vous y êtes invité et répondez aux questions suivantes pour configurer le client.

      ```
      [ec2-user ~]$ sudo noip2 -C
      ```

1. Activez le service noip.

   ```
   [ec2-user ~]$ sudo systemctl enable noip.service
   ```

1. Lancez le service noip.

   ```
   [ec2-user ~]$ sudo systemctl start noip.service
   ```

   Cette commande lance le client, qui lit le fichier de configuration (`/etc/no-ip2.conf`) que vous avez créé précédemment et met à jour l’adresse IP du nom du DNS public que vous avez choisi.

1. Vérifiez que le client de mise à jour a défini la bonne adresse IP de votre nom DNS dynamique. Laissez s’écouler quelques minutes pour que les enregistrements DNS se mettent à jour, puis essayez de connecter votre instance en utilisant SSH avec le nom DNS public que vous avez configuré dans cette procédure.

# Configurez votre interface réseau à l'aide d'ec2-net-utils pour AL2
<a name="ec2-net-utils"></a>

Amazon Linux 2 AMIs peut contenir des scripts supplémentaires installés par AWS, appelés ec2-net-utils. Ces scripts automatisent le cas échéant la configuration de vos interfaces réseau. Ces scripts ne sont disponibles AL2 que pour.

**Note**  
Pour Amazon Linux 2023, le `amazon-ec2-net-utils` package génère des configurations spécifiques à l'interface dans le répertoire. `/run/systemd/network` Pour plus d’informations, consultez la rubrique [Networking service](https://docs.aws.amazon.com/linux/al2023/ug/networking-service.html) du *Guide de l’utilisateur Amazon Linux 2023*.

Utilisez la commande suivante pour installer le package AL2 s'il n'est pas déjà installé ou pour le mettre à jour s'il est installé et que des mises à jour supplémentaires sont disponibles :

```
$ yum install ec2-net-utils
```

Les composants suivants font partie de ec2-net-utils :

udev rules (`/etc/udev/rules.d`)  
Identifie les interfaces réseau qui sont attachées, détachées ou rattachées à une instance en cours d’exécution, et s’assure que le script hotplug s’exécute (`53-ec2-network-interfaces.rules`). Mappe l’adresse MAC sur un nom de périphérique (`75-persistent-net-generator.rules`, qui génère `70-persistent-net.rules`).

script hotplug  
Génère un fichier de configuration d’interface adapté à une utilisation avec DHCP (`/etc/sysconfig/network-scripts/ifcfg-eth`*N*). Génère également un fichier de configuration de route (`/etc/sysconfig/network-scripts/route-eth`*N*).

script DHCP  
Chaque fois qu’une Network Interface reçoit un nouveau bail DHCP, ce script interroge les métadonnées d’instance pour des adresses IP Elastic. Pour chaque adresse IP Elastic, il ajoute une règle à la base de données de politiques de routage pour s’assurer que le trafic sortant à partir de cette adresse utilise l’interface réseau correcte. Il ajoute également chaque adresse IP privée à l’interface réseau comme adresse secondaire.

**ec2ifup** eth*N* (`/usr/sbin/`)  
Étend la fonctionnalité de la commande standard **ifup**. Une fois que ce script a réécrit les fichiers de configuration `ifcfg-eth`*N* et `route-eth`*N*, il exécute **ifup**.

**ec2ifdown** eth*N* (`/usr/sbin/`)  
Étend la fonctionnalité de la commande standard **ifdown**. Une fois que le script a supprimé les règles pour l’interface réseau de la base de données des stratégies de routage, il exécute **ifdown**.

**ec2ifscan** (`/usr/sbin/`)  
Recherche les interfaces réseau qui n’ont pas été configurées et les configure.  
Ce script n’est pas disponible dans la version initiale de ec2-net-utils.

Pour répertorier les fichiers de configuration générés par ec2-net-utils, utilisez la commande suivante :

```
$ ls -l /etc/sysconfig/network-scripts/*-eth?
```

Pour désactiver l’automatisation, vous pouvez ajouter `EC2SYNC=no` au fichier `ifcfg-eth`*N* correspondant. Par exemple, utilisez la commande suivante pour désactiver l’automatisation pour l’interface eth1 :

```
$ sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfg-eth1
```

Pour désactiver complètement l’automatisation, vous pouvez supprimer le package à l’aide de la commande suivante :

```
$ yum remove ec2-net-utils
```