

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.

# Horloge de précision et synchronisation de l'heure sur votre instance EC2
<a name="set-time"></a>

Une référence de temps cohérente et précise sur votre instance Amazon EC2 est essentielle pour beaucoup de tâches et de processus de serveurs. Les horodatages dans les journaux système jouent un rôle essentiel pour identifier le moment où les problèmes sont survenus et l’ordre chronologique des événements. Lorsque vous utilisez le AWS CLI ou un AWS SDK pour effectuer des demandes depuis votre instance, ces outils signent les demandes en votre nom. Si les paramètres de date et d'heure de votre instance sont inexacts, cela peut entraîner un écart entre la date figurant dans la signature et la date de la demande, ce qui peut entraîner le AWS rejet de vos demandes.

Pour répondre à cet aspect important, le Service de synchronisation temporelle d’Amazon, qui est accessible à partir de toutes les instances EC2 et est utilisé par plusieurs Services AWS. Le service utilise une flotte d'horloges de référence atomiques et connectées par satellite Région AWS pour fournir des relevés horaires précis et actuels conformément à la norme mondiale UTC (temps universel coordonné).

Pour de meilleures performances, nous vous recommandons d'utiliser le [service de synchronisation temporelle d'Amazon](configure-ec2-ntp.md) sur vos instances EC2. Pour effectuer une sauvegarde du service de synchronisation temporelle d'Amazon sur vos instances, ou pour connecter des ressources extérieures à Amazon EC2 à ce service, vous pouvez utiliser le [service public de synchronisation temporelle d'Amazon](configure-time-sync.md) situé à `time.aws.com`. Le Service de synchronisation temporelle d’Amazon public, comme le Service de synchronisation temporelle d’Amazon local, corrige automatiquement les secondes intercalaires qui sont ajoutées au temps UTC. Le service public Amazon Time Sync est pris en charge dans le monde entier par notre flotte d'horloges de référence atomiques et connectées par satellite dans chacun d'entre eux. Région AWS

## Horodatage des paquets matériels
<a name="hardware-packet-timestamping"></a>

Vous pouvez activer l’horodatage matériel des paquets sur votre instance afin d’ajouter un horodatage 64 bits précis à la nanoseconde à chaque paquet réseau entrant. Étant donné que l’horodatage des paquets matériels se produit au niveau du matériel, c’est-à-dire avant que le paquet n’atteigne le noyau, le socket ou la couche d’application, vous évitez les délais ajoutés par l’horodatage logiciel. L’horloge de référence sous-jacente pour l’horodatage matériel est l’[horloge matérielle PTP](configure-ec2-ntp.md#connect-to-the-ptp-hardware-clock) du service de synchronisation temporelle d’Amazon.

**Avantages**

L’horodatage des paquets matériels offre les avantages suivants :
+ Améliore l’ordre des événements, qui peut également être utilisé pour déterminer l’ordre réel dans lequel les paquets arrivent à votre instance EC2, garantissant ainsi un traitement équitable des paquets.
+ Mesure la latence unidirectionnelle du réseau.
+ Augmente la vitesse des transactions distribuées avec une précision et une exactitude supérieures à celles de la plupart des solutions sur site.

**Conditions préalables et configuration**

Pour activer l’horodatage des paquets matériels, votre instance doit remplir les conditions préalables suivantes :
+ Il doit s’agir d’une instance Linux.
+ Répondre aux [exigences relatives à la prise en charge de l’horloge matérielle PTP](configure-ec2-ntp.md#ptp-hardware-clock-requirements).

Pour les instructions de configuration, consultez la page relative à l'[horodatage des paquets matériels](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#hardware-packet-timestamping) sur le **pilote de noyau Linux pour la famille Elastic Network Adapter (ENA)** sur. *GitHub*

## Secondes intercalaires
<a name="leap-seconds"></a>

Les secondes intercalaires, introduites en 1972, sont des ajustements occasionnels d’une seconde de l’heure UTC pour tenir compte des irrégularités de la rotation de la Terre et, par conséquent, des différences entre le temps atomique international (TAI) et le temps solaire (Ut1). Pour gérer les secondes intercalaires pour le compte des clients, nous avons conçu la correction des secondes intercalaires au sein du Service de synchronisation temporelle d’Amazon. Pour plus d’informations, consultez le billet de blog [Look Before You Leap – The Coming Leap Second and AWS](https://aws.amazon.com/blogs/aws/look-before-you-leap-the-coming-leap-second-and-aws/).

Les secondes intercalaires sont en train de disparaître, et nous soutenons pleinement la décision prise lors de la [27e Conférence générale des poids et mesures d’abandonner les secondes intercalaires d’ici 2035](https://www.bipm.org/en/cgpm-2022/resolution-4).

Pour faciliter cette transition, nous prévoyons toujours de corriger le temps en cas d’ajout d’une seconde intercalaire lors de l’accès au service de synchronisation temporelle d’Amazon via la connexion NTP locale ou via nos groupes NTP publics (`time.aws.com`). Toutefois, l’horloge matérielle PTP ne propose pas d’option d’horaire corrigé. En cas de seconde intercalaire, l’horloge matérielle PTP ajoute la seconde intercalaire conformément aux normes UTC. Les sources temporelles à seconde intercalaire corrigées et non corrigées sont généralement identiques. Toutefois, étant donné qu’elles diffèrent en cas d’ajout de seconde intercalaire, nous vous déconseillons d’utiliser à la fois des sources temporelles corrigées et non corrigées dans la configuration de votre client temporel lors de l’ajout d’une seconde intercalaire.

 

**Topics**
+ [Horodatage des paquets matériels](#hardware-packet-timestamping)
+ [Secondes intercalaires](#leap-seconds)
+ [Configurez la référence temporelle de votre instance EC2 pour qu'elle utilise le service de synchronisation temporelle d'Amazon local](configure-ec2-ntp.md)
+ [Définissez la référence temporelle de votre instance EC2 ou de tout appareil connecté à Internet pour utiliser le service public de synchronisation temporelle d'Amazon](configure-time-sync.md)
+ [Comparez les horodatages de vos instances Linux](compare-timestamps-with-clockbound.md)
+ [Changez le fuseau horaire de votre instance](change-time-zone-of-instance.md)

 

**Ressources connexes**
+ AWS Blog informatique : [Il était temps : des horloges précises à la microseconde sur les instances Amazon EC2](https://aws.amazon.com/blogs/compute/its-about-time-microsecond-accurate-clocks-on-amazon-ec2-instances/)
+ AWS Blog sur les opérations et les migrations dans le cloud : [Gérez la précision de l'horloge des instances Amazon EC2 à l'aide d'Amazon Time Sync Service et d'Amazon CloudWatch — Partie](https://aws.amazon.com/blogs/mt/manage-amazon-ec2-instance-clock-accuracy-using-amazon-time-sync-service-and-amazon-cloudwatch-part-1/) 1
+ (Linux) [https://chrony-project.org/](https://chrony-project.org/)

# Configurez la référence temporelle de votre instance EC2 pour qu'elle utilise le service de synchronisation temporelle d'Amazon local
<a name="configure-ec2-ntp"></a>

Le Service de synchronisation temporelle d'Amazon local utilise le protocole NTP (Network Time Protocol) ou fournit une horloge matérielle PTP (Precision Time Protocol) locale sur les [instances prises en charge](#ptp-hardware-clock-requirements). L'horloge matérielle PTP prend en charge soit une connexion NTP (instances Linux et Windows), ou une connexion PTP directe (instances Linux uniquement). Les connexions NTP et PTP directes utilisent la même source de temps très précise, mais la connexion PTP directe est plus précise que la connexion NTP. La connexion NTP au service Service de synchronisation temporelle d’Amazon en charge la correction des secondes intercalaires, tandis que la connexion PTP à l’horloge matérielle PTP ne corrige pas le temps. Pour de plus amples informations, veuillez consulter [Secondes intercalaires](set-time.md#leap-seconds).

Vos instances peuvent accéder au Service de synchronisation temporelle d’Amazon local comme suit :
+ Via le protocole NTP sur les points de terminaison d’adresses IP suivants :
  + IPv4: `169.254.169.123`
  + IPv6: `fd00:ec2::123` (Accessible uniquement sur les [instances basées sur Nitro](instance-types.md#instance-hypervisor-type).)
+ (Linux uniquement) via une connexion PTP directe pour se connecter à une horloge matérielle PTP locale :
  + `PHC0`

Amazon Linux AMIs AMIs, Windows et la plupart de leurs partenaires AMIs configurent votre instance pour utiliser le point de IPv4 terminaison NTP par défaut. Il s'agit du paramètre qui est recommandé pour la plupart des charges de travail des clients. Aucune autre configuration n'est requise pour les instances lancées à partir de ceux-ci, AMIs sauf si vous souhaitez utiliser le IPv6 point de terminaison ou vous connecter directement à l'horloge matérielle PTP.

Les connexions NTP et PTP ne nécessitent aucune modification de configuration VPC et votre instance n’a pas besoin d’accéder à Internet.

**Considérations**
+ Il existe une limite de 1024 paquets par seconde (PPS) pour les services qui utilisent des adresses [lien-local.](using-instance-addressing.md#link-local-addresses) Cette limite inclut l'ensemble des [requêtes DNS du résolveur Route 53](https://docs.aws.amazon.com/vpc/latest/userguide/AmazonDNS-concepts.html#vpc-dns-limits), des demandes [service de métadonnées d’instance (IMDS)](instancedata-data-retrieval.md), des demandes du protocole de temps réseau Amazon (NTP) et des demandes du [du service de licence Windows (pour les instances basées sur Microsoft Windows)](https://aws.amazon.com/windows/resources/licensing/). 
+ Seules les instances Linux peuvent utiliser une *connexion PTP directe* pour se connecter à l'horloge matérielle PTP locale. Les instances Windows utilisent NTP pour se connecter à l'horloge matérielle PTP locale.

**Topics**
+ [Connectez-vous au IPv4 point de terminaison du service Amazon Time Sync](#configure-amazon-time-service-IPv4)
+ [Connectez-vous au IPv6 point de terminaison du service Amazon Time Sync](#configure-amazon-time-service-IPv6)
+ [Connexion à l’horloge matérielle PTP](#connect-to-the-ptp-hardware-clock)

## Connectez-vous au IPv4 point de terminaison du service Amazon Time Sync
<a name="configure-amazon-time-service-IPv4"></a>

Votre AMI a peut-être déjà configuré le service de synchronisation temporelle d’Amazon. Sinon, utilisez les procédures suivantes pour configurer votre instance afin d'utiliser le service Amazon Time Sync local via le IPv4 point de terminaison.

Pour obtenir de l’aide pour résoudre les problèmes, consultez la section [Résolution des problèmes de synchronisation NTP sur les instances Linux](https://repost.aws/knowledge-center/linux-troubleshoot-ntp-synchronization) ou [Résolution des problèmes de temps sur les instances Windows](https://repost.aws/knowledge-center/ec2-windows-time-service).

------
#### [ Amazon Linux ]

AL2023 et les versions récentes d'Amazon Linux 2 sont configurées pour utiliser le point de IPv4 terminaison Amazon Time Sync Service par défaut. Si vous confirmez que votre instance est déjà configurée, vous pouvez ignorer la procédure suivante.

**Pour vérifier que Chrony est configuré pour utiliser le point de terminaison IPv4**  
Exécutez la commande suivante. Dans la sortie, la ligne commençant par `^*` indique la source de temps préférée.

```
chronyc sources -v | grep -F ^*
^* 169.254.169.123               3   4   377    14    +12us[+9653ns] +/-  290us
```

**Pour configurer Chrony afin de se connecter au IPv4 point de terminaison sur les anciennes versions d'Amazon Linux 2**

1. Connectez-vous à votre instance et désinstallez le service NTP.

   ```
   [ec2-user ~]$ sudo yum erase 'ntp*'
   ```

1. Installez le package `chrony`.

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

1. Ouvrez le fichier `/etc/chrony.conf` avec un éditeur de texte (tel que **vim** ou **nano**). Ajoutez la ligne suivante avant toute autre instruction `server` ou `pool` qui pourrait être présente dans le fichier, puis enregistrer les changements :

   ```
   server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
   ```

1. Relancez le démon `chrony` (`chronyd`).

   ```
   [ec2-user ~]$ sudo service chronyd restart
   ```

   ```
   Starting chronyd:                                          [  OK  ]
   ```
**Note**  
Sur RHEL ou CentOS (jusqu’à la version 6), le nom du service est `chrony` au lieu de `chronyd`.

1. Pour configurer `chronyd` afin de lancer ce service à chaque démarrage système, utilisez la commande `chkconfig`.

   ```
   [ec2-user ~]$ sudo chkconfig chronyd on
   ```

1. Vérifiez qu'`chrony`il utilise le `169.254.169.123` IPv4 point de terminaison pour synchroniser l'heure.

   ```
   [ec2-user ~]$ chronyc sources -v | grep -F ^*
   ```

   Dans la sortie, `^*` indique la source de temps préférée.

   ```
   ^* 169.254.169.123               3   6    17    43    -30us[ -226us] +/-  287us
   ```

1. Vérifiez les métriques de synchronisation du temps présentées par `chrony`.

   ```
   [ec2-user ~]$ chronyc tracking
   ```

   ```
   Reference ID    : A9FEA97B (169.254.169.123)
   Stratum         : 4
   Ref time (UTC)  : Wed Nov 22 13:18:34 2017
   System time     : 0.000000626 seconds slow of NTP time
   Last offset     : +0.002852759 seconds
   RMS offset      : 0.002852759 seconds
   Frequency       : 1.187 ppm fast
   Residual freq   : +0.020 ppm
   Skew            : 24.388 ppm
   Root delay      : 0.000504752 seconds
   Root dispersion : 0.001112565 seconds
   Update interval : 64.4 seconds
   Leap status     : Normal
   ```

------
#### [ Ubuntu ]

**Pour configurer Chrony afin de se connecter au IPv4 point de terminaison sur Ubuntu**

1. Connectez-vous à votre instance et utilisez `apt` pour installer le package `chrony`.

   ```
   ubuntu:~$ sudo apt install chrony
   ```
**Note**  
Si nécessaire, mettez d’abord à jour votre instance en exécutant `sudo apt update`.

1. Ouvrez le fichier `/etc/chrony/chrony.conf` avec un éditeur de texte (tel que **vim** ou **nano**). Ajoutez la ligne suivante avant toute autre instruction `server` ou `pool` déjà présente dans le fichier, puis enregistrer les changements :

   ```
   server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
   ```

1. Redémarrez le service `chrony`.

   ```
   ubuntu:~$ sudo /etc/init.d/chrony restart
   ```

   ```
   Restarting chrony (via systemctl): chrony.service.
   ```

1. Vérifiez qu'`chrony`il utilise le `169.254.169.123` IPv4 point de terminaison pour synchroniser l'heure.

   ```
   ubuntu:~$ chronyc sources -v | grep -F ^*
   ```

   Dans la sortie, la ligne commençant par `^*` indique la source de temps préférée.

   ```
   ^* 169.254.169.123               3   6    17    12    +15us[  +57us] +/-  320us
   ```

1. Vérifiez les métriques de synchronisation du temps présentées par `chrony`.

   ```
   ubuntu:~$ chronyc tracking
   ```

   ```
   Reference ID    : 169.254.169.123 (169.254.169.123)
   Stratum         : 4
   Ref time (UTC)  : Wed Nov 29 07:41:57 2017
   System time     : 0.000000011 seconds slow of NTP time
   Last offset     : +0.000041659 seconds
   RMS offset      : 0.000041659 seconds
   Frequency       : 10.141 ppm slow
   Residual freq   : +7.557 ppm
   Skew            : 2.329 ppm
   Root delay      : 0.000544 seconds
   Root dispersion : 0.000631 seconds
   Update interval : 2.0 seconds
   Leap status     : Normal
   ```

------
#### [ SUSE Linux ]

À partir de SUSE Linux Enterprise Server 15, `chrony` est l’implémentation par défaut de NTP.

**Pour configurer Chrony afin de se connecter au IPv4 point de terminaison sous SUSE Linux**

1. Ouvrez le fichier `/etc/chrony.conf` avec un éditeur de texte (tel que **vim** ou **nano**).

1. Vérifiez que le fichier contient la ligne suivante :

   ```
   server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
   ```

   Si la ligne n’est pas présente, vous pouvez l’ajouter manuellement.

1. Placez en commentaire les autres lignes sur le serveur ou le groupe (pool).

1. Ouvrez YaST et activez le service chrony.

------
#### [ Windows ]

À partir de la version d'août 2018, Windows AMIs utilise le service Amazon Time Sync par défaut. Aucune autre configuration n'est requise pour les instances lancées à partir de celles-ci AMIs et vous pouvez ignorer les procédures suivantes.

Si vous utilisez une AMI qui ne dispose pas du service de synchronisation temporelle d'Amazon configuré par défaut, vérifiez d'abord votre configuration NTP actuelle. Si votre instance utilise déjà le IPv4 point de terminaison du service Amazon Time Sync, aucune autre configuration n'est requise. Si votre instance n’utilise pas le Service de synchronisation temporelle d’Amazon, suivez la procédure pour modifier le serveur NTP afin qu’il utilise le Service de synchronisation temporelle d’Amazon.

**Pour vérifier la configuration NTP**

1. Depuis votre instance, ouvrez une fenêtre d’invite de commande.

1. Obtenez la configuration NTP actuelle en tapant la commande suivante :

   ```
   w32tm /query /configuration
   ```

   Cette commande renvoie les paramètres de configuration actuels de l’instance Windows et indique si vous êtes connecté au Service de synchronisation temporelle d’Amazon.

1. (Facultatif) Obtenez l’état de la configuration actuelle en tapant la commande suivante :

   ```
   w32tm /query /status
   ```

   Cette commande renvoie des informations comme la dernière fois que l’instance s’est synchronisée sur le serveur NTP et l’intervalle d’interrogation.

**Pour modifier le serveur NTP pour utiliser Amazon Time Sync Service**

1. A partir d’une fenêtre d’invite de commande, exécutez la commande suivante :

   ```
   w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update
   ```

1. Vérifiez vos nouveaux paramètres en exécutant la commande suivante :

   ```
   w32tm /query /configuration
   ```

   Dans le résultat renvoyé, vérifiez que le point de `169.254.169.123` IPv4 terminaison est `NtpServer` affiché.

**Paramètres NTP par défaut pour Amazon Windows AMIs**

Amazon Machine Images (AMI) respecte généralement les out-of-the-box valeurs par défaut, sauf dans les cas où des modifications sont nécessaires pour fonctionner sur l'infrastructure EC2. Les paramètres suivants ont été déterminés comme étant efficaces dans un environnement virtuel et permettant de maintenir la dérive d’horloge dans une précision d’une seconde : 
+ **Intervalle de mise à jour** — Détermine la fréquence à laquelle le service horaire ajustera l'heure du système pour qu'elle soit précise. AWS configure l'intervalle de mise à jour pour qu'il se produise une fois toutes les deux minutes.
+ **Serveur NTP** — À partir de la version d'août 2018, AMIs utilisez le service Amazon Time Sync par défaut. Cette fois, le service est accessible depuis n'importe quel point de Région AWS terminaison 169.254.169.123 IPv4 . De plus, l’indicateur 0x9 indique que le service temporel agit en tant que client et qu’il convient d’utiliser `SpecialPollInterval` pour déterminer la fréquence à laquelle se signaler auprès du serveur horaire configuré.
+ **Type** – « NTP » signifie que le service agira comme client NTP autonome et non pas dans le cadre d’un domaine.
+ **Activé et InputProvider** — Le service horaire est activé et fournit du temps au système d'exploitation.
+ **Intervalle d’interrogation spécial** : vérifie le serveur NTP configuré toutes les 900 secondes (15 minutes).
**Note**  
Pour Windows Server 2025 AMIs, la `SpecialPollInterval` valeur est de 1024 secondes au lieu de 900 secondes.


| Chemin de registre | Nom de la touche | Données | 
| --- | --- | --- | 
|  HKL M:\$1System \$1 \$1 services CurrentControlSet \$1 w32time \$1 Config  |  UpdateInterval  | 120 | 
| HKL M:\$1System \$1 \$1 services CurrentControlSet \$1 w32time \$1 Parameters | NtpServer | 169.254.169.123,0x9 | 
| HKL M:\$1System \$1 \$1 services CurrentControlSet \$1 w32time \$1 Parameters | Type | NTP | 
| HKL M:\$1System \$1 \$1 services CurrentControlSet \$1 w32time \$1 \$1 TimeProviders NtpClient | Activé | 1 | 
| HKL M:\$1System \$1 \$1 services CurrentControlSet \$1 w32time \$1 \$1 TimeProviders NtpClient | InputProvider | 1 | 
| HKL M:\$1System \$1 \$1 services CurrentControlSet \$1 w32time \$1 \$1 TimeProviders NtpClient | SpecialPollInterval | 900 (Windows Server 2016, 2019 et 2022) ou 1024 (Windows Server 2025) | 

------

## Connectez-vous au IPv6 point de terminaison du service Amazon Time Sync
<a name="configure-amazon-time-service-IPv6"></a>

Cette section explique en quoi les étapes décrites dans la section [Connectez-vous au IPv4 point de terminaison du service Amazon Time Sync](#configure-amazon-time-service-IPv4) diffèrent si vous configurez votre instance pour utiliser le service Amazon Time Sync local via le IPv6 point de terminaison. Il n’explique pas l’intégralité du processus de configuration Amazon Time Sync Service.

Le IPv6 point de terminaison n'est accessible que sur les [instances basées sur Nitro](instance-types.md#instance-hypervisor-type).

Nous ne recommandons pas d'utiliser à la fois les entrées IPv4 et les entrées du point de IPv6 terminaison. Les paquets IPv6 NTP IPv4 et NTP proviennent du même serveur local que celui de votre instance. La configuration à la fois IPv4 des IPv6 points de terminaison n'est pas nécessaire et n'améliorera pas la précision de l'heure sur votre instance.

------
#### [ Linux ]

Selon la distribution Linux que vous utilisez, lorsque vous atteindrez l'étape de modification du `chrony.conf` fichier, vous utiliserez le IPv6 point de terminaison du service Amazon Time Sync (`fd00:ec2::123`) plutôt que le IPv4 point de terminaison (`169.254.169.123`) :

```
server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4
```

Enregistrez le fichier et vérifiez que Chrony utilise le `fd00:ec2::123` IPv6 point de terminaison pour synchroniser l'heure : 

```
[ec2-user ~]$ chronyc sources -v
```

Dans la sortie, si vous voyez le `fd00:ec2::123` IPv6 point de terminaison, la configuration est terminée.

------
#### [ Windows ]

Lorsque vous atteindrez l'étape consistant à modifier le serveur NTP pour utiliser le service Amazon Time Sync, vous utiliserez le IPv6 point de terminaison du service Amazon Time Sync (`fd00:ec2::123`) plutôt que le IPv4 point de terminaison (`169.254.169.123`) :

```
w32tm /config /manualpeerlist:fd00:ec2::123 /syncfromflags:manual /update
```

Vérifiez que vos nouveaux paramètres utilisent le `fd00:ec2::123` IPv6 point de terminaison pour synchroniser l'heure :

```
w32tm /query /configuration
```

Dans le résultat, vérifiez que le point de `fd00:ec2::123` IPv6 terminaison est `NtpServer` affiché.

------

## Connexion à l’horloge matérielle PTP
<a name="connect-to-the-ptp-hardware-clock"></a>

L’horloge matérielle PTP fait partie du [AWS système Nitro](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), elle est donc directement accessible sur les [instances EC2 virtualisées et matériel nu prises en charge](#ptp-hardware-clock-requirements) sans utiliser les ressources du client.

Les points de terminaison NTP pour l'horloge matérielle PTP sont les mêmes que ceux du service de synchronisation temporelle d'Amazon. Si votre instance possède une horloge matérielle PTP et que vous avez configuré la connexion NTP (vers le point de IPv6 terminaison IPv4 ou vers le point de terminaison), l'heure de votre instance est automatiquement calculée à partir de l'horloge matérielle PTP sur NTP.

Pour les instances Linux, vous pouvez configurer une connexion PTP *directe*, qui vous donnera une heure plus exacte que la connexion NTP. Les instances Windows ne prennent en charge qu'une connexion NTP à l'horloge matérielle PTP.

### Exigences
<a name="ptp-hardware-clock-requirements"></a>

L’horloge matérielle PTP est disponible sur une instance lorsque les conditions suivantes sont remplies :
+ Supportés Régions AWS : USA Est (Virginie du Nord), USA Est (Ohio), Asie-Pacifique (Malaisie), Asie-Pacifique (Thaïlande), Asie-Pacifique (Tokyo) et Europe (Stockholm)
+ Zones locales prises en charge : USA Est (New York)
+ Familles d'instances prises en charge
  + **À usage général :** M7a, M7g, M7i
  + **À mémoire optimisée :** R7a, R7g, R7i
  + **Optimisées pour le stockage :** I8g, I8ge
+ (Linux uniquement) la version 2.10.0 ou une version ultérieure du pilote ENA est installée sur un système d’exploitation pris en charge. Pour plus d'informations sur les systèmes d'exploitation pris en charge, consultez les [conditions requises pour les](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#prerequisites) pilotes sur *GitHub*.

### (Linux uniquement) Configurez une connexion PTP directe à l'horloge matérielle PTP
<a name="connect-to-the-ptp-hardware-clock-linux"></a>

Cette section décrit comment configurer votre instance Linux pour qu’elle utilise le Service de synchronisation temporelle d'Amazon local via l’horloge matérielle PTP à l’aide d’une connexion PTP directe. Il faut ajouter une entrée de serveur pour l'horloge matérielle PTP dans le `chrony` fichier de configuration.

**Afin de configurer une connexion PTP directe à l'horloge matérielle PTP (instances Linux uniquement)**

1. **Installer les prérequis**

   Connectez-vous à votre instance Linux et procédez comme suit :

   1. installez le pilote de noyau Linux pour l’Adaptateur réseau élastique (ENA) version 2.10.0 ou ultérieure.

   1. Activation de l'horloge matérielle PTP.

   Pour les instructions d'installation, consultez le [pilote de noyau Linux pour la famille Elastic Network Adapter (ENA)](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#linux-kernel-driver-for-elastic-network-adapter-ena-family) sur *GitHub*.

1. **Vérifier le périphérique ENA PTP**

   Vérifiez que l’horloge matérielle ENA PTP apparaît sur votre instance.

   ```
   [ec2-user ~]$ for file in /sys/class/ptp/*; do echo -n "$file: "; cat "$file/clock_name"; done
   ```

   Sortie attendue

   ```
   /sys/class/ptp/ptp<index>: ena-ptp-<PCI slot>
   ```

   Où :
   + `index` est l’indice de l’horloge matérielle PTP enregistré par le noyau.
   + `PCI slot` est le slot PCI du contrôleur Ethernet ENA. Il s’agit du même emplacement que celui indiqué dans `lspci | grep ENA`.

   Exemple de sortie

   ```
   /sys/class/ptp/ptp0: ena-ptp-05
   ```

   Si `ena-ptp-<PCI slot>` ce n’est pas dans la sortie, le pilote ENA n’a pas été correctement installé. Passez en revue l’étape 1 de cette procédure pour installer le pilote.

1. **Configurer le lien symbolique PTP**

   Les périphériques PTP sont généralement nommés `/dev/ptp0`, `/dev/ptp1`, etc., leur index dépendant de l’ordre d’initialisation du matériel. La création d’un lien symbolique garantit que les applications telles que chrony font systématiquement référence au bon périphérique, quelles que soient les modifications d’index.

   La dernière version d'Amazon Linux 2023 AMIs inclut une `udev` règle qui crée le `/dev/ptp_ena` lien symbolique, pointant vers l'`/dev/ptp`entrée correcte associée à l'hôte ENA.

   Tout d’abord, vérifiez si le lien symbolique est présent en exécutant la commande suivante.

   ```
   [ec2-user ~]$ ls -l /dev/ptp*
   ```

   Exemple de sortie

   ```
   crw------- 1 root root 245, 0 Jan 31 2025 /dev/ptp0
   lrwxrwxrwx 1 root root      4 Jan 31 2025 /dev/ptp_ena -> ptp0
   ```

   Où :
   + `/dev/ptp<index>` est le chemin d’accès au périphérique PTP.
   + `/dev/ptp_ena` est le lien symbolique constant, qui pointe vers le même périphérique PTP.

    

   Si le lien symbolique `/dev/ptp_ena` est présent, passez à l’étape 4 de cette procédure. S’il est absent, procédez comme suit :

   1. Ajoutez la règle `udev` suivante.

      ```
      [ec2-user ~]$ echo "SUBSYSTEM==\"ptp\", ATTR{clock_name}==\"ena-ptp-*\", SYMLINK += \"ptp_ena\"" | sudo tee -a /etc/udev/rules.d/53-ec2-network-interfaces.rules
      ```

   1. Rechargez la règle `udev`, soit en redémarrant l’instance, soit en exécutant la commande suivante.

      ```
      [ec2-user ~]$ sudo udevadm control --reload-rules && udevadm trigger
      ```

1. **Configurer chrony**

   chrony doit être configuré pour utiliser le lien symbolique `/dev/ptp_ena` au lieu de faire directement référence à /`dev/ptp<index>`.

   1. Modifiez `/etc/chrony.conf` à l’aide d’un éditeur de texte et ajoutez la ligne suivante n’importe où dans le fichier. 

      ```
      refclock PHC /dev/ptp_ena poll 0 delay 0.000010 prefer
      ```

   1. Redémarrez Chrony.

      ```
      [ec2-user ~]$ sudo systemctl restart chronyd
      ```

1. **Vérifier la configuration de chrony**

   Vérifiez que chrony utilise l’horloge matérielle PTP pour synchroniser l’heure sur cette instance.

   ```
   [ec2-user ~]$ chronyc sources
   ```

   Sortie attendue

   ```
   MS Name/IP address         Stratum Poll Reach LastRx Last sample
   ===============================================================================
   #* PHC0                          0   0    377    1   +2ns[ +1ns] +/-   5031ns
   ```

   Dans le résultat retourné, `*` indique la source de temps préférée. `PHC0` correspond à l’horloge matérielle PTP. Vous devrez peut-être attendre quelques secondes après avoir redémarré chrony pour que l’astérisque apparaisse.

# Définissez la référence temporelle de votre instance EC2 ou de tout appareil connecté à Internet pour utiliser le service public de synchronisation temporelle d'Amazon
<a name="configure-time-sync"></a>

Vous pouvez configurer votre instance, ou tout périphérique connecté à Internet tel que votre ordinateur local ou un serveur sur site, pour utiliser le Service de synchronisation temporelle d’Amazon public, accessible via Internet à l’adresse `time.aws.com`. Vous pouvez utiliser le service public Amazon Time Sync comme solution de sauvegarde pour le service Amazon Time Sync local et pour connecter des ressources extérieures AWS au service Amazon Time Sync.

**Note**  
Pour des performances optimales, nous vous recommandons d'utiliser le service de synchronisation *locale* d'Amazon sur vos instances et de n'utiliser le service *public* de synchronisation d'Amazon qu'en guise de sauvegarde.

Utilisez les instructions relatives au système d'exploitation de votre instance ou de votre appareil.

## Linux
<a name="configure-time-sync-linux"></a>

**Pour configurer votre instance ou appareil Linux afin qu’il utilise le Service de synchronisation temporelle d’Amazon public à l’aide de chrony ou ntpd**

1. Modifiez `/etc/chrony.conf` (si vous utilisez chrony) ou `/etc/ntp.conf` (si vous utilisez ntpd) à l’aide d’un éditeur de texte comme suit :

   1. Pour empêcher votre instance ou votre appareil d’essayer de mélanger des serveurs corrigés et non corrigés, supprimez ou commentez les lignes commençant par `server` sauf les connexions existantes au Service de synchronisation temporelle d’Amazon local.
**Important**  
Si vous configurez votre instance EC2 pour qu’elle se connecte au Service de synchronisation temporelle d’Amazon public, ne supprimez pas la ligne suivante qui définit votre instance pour qu’elle se connecte au Service de synchronisation temporelle d’Amazon local. Le Service de synchronisation temporelle d’Amazon local fournit une connexion plus directe et une meilleure précision de l’horloge. Le Service de synchronisation temporelle d’Amazon public doit uniquement être utilisé comme sauvegarde.  

      ```
      server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
      ```

   1. Ajoutez la ligne suivante pour vous connecter au Service de synchronisation temporelle d’Amazon public.

      ```
      pool time.aws.com iburst
      ```

1. Redémarrez le démon à l’aide de l’une des commandes suivantes.
   + chrony

     ```
     sudo service chronyd force-reload
     ```
   + ntpd

     ```
     sudo service ntp reload
     ```

## macOS
<a name="configure-time-sync-macos"></a>

**Pour configurer votre instance ou appareil macOS afin qu’il utilise le Service de synchronisation temporelle d’Amazon public**

1. Ouvrez **System Preferences (Préférences système)**. 

1. Choisissez **Date & Time** (Date et heure), puis choisissez l’onglet **Date & Time** (Date et heure).

1. Pour apporter des modifications, choisissez l’icône en forme de cadenas et saisissez votre mot de passe lorsque vous y êtes invité.

1. Pour **Définir automatiquement la date et l’heure**, saisissez **time.aws.com**.

## Windows
<a name="configure-time-sync-windows"></a>

**Pour configurer votre instance ou appareil Windows afin qu’il utilise le Service de synchronisation temporelle d’Amazon public**

1. Ouvrez le **Control Panel** (Panneau de configuration). 

1. Cliquez sur l’icône **Date and Time** (Date et heure).

1. Choisissez l’onglet **Internet Time** (Heure Internet). Cet onglet n’est pas disponible si votre PC fait partie d’un domaine. Dans ce cas, votre PC synchronise l’heure avec le contrôleur de domaine. Vous pouvez configurer le contrôleur pour qu’il utilise le Service de synchronisation temporelle d’Amazon public.

1. Choisissez **Change qsettings** (Modifier les paramètres). 

1. Cochez la case **Synchronisez avec un serveur de temps Internet**. 

1. À côté de **Serveur**, saisissez **time.aws.com**.

**Pour configurer votre instance ou appareil Windows Server afin qu’il utilise le Service de synchronisation temporelle d’Amazon public**
+ Suivez les [instructions de Microsoft](https://support.microsoft.com/en-us/kb/816042) (français non disponible) pour mettre à jour votre registre. 

# Comparez les horodatages de vos instances Linux
<a name="compare-timestamps-with-clockbound"></a>

Si vous utilisez le service Amazon Time Sync, vous pouvez comparer les horodatages de vos instances Linux Amazon EC2 pour déterminer l'heure réelle ClockBound d'un événement. ClockBound mesure la précision de l'horloge de votre instance EC2 et vous permet de vérifier si un horodatage donné correspond au passé ou au futur par rapport à l'horloge actuelle de votre instance. Ces informations sont utiles pour déterminer l’ordre et la cohérence des événements et des transactions entre les instances EC2, indépendamment de l’emplacement géographique de chaque instance.

ClockBound est un daemon et une bibliothèque open source. Pour en savoir plus ClockBound, y compris les instructions d'installation, reportez-vous à [ClockBound](https://github.com/aws/clock-bound)la section *GitHub*.

ClockBound n'est pris en charge que pour les instances Linux.

Si vous utilisez la connexion PTP directe à l’horloge matérielle PTP, votre démon temporel, par exemple chrony, sous-estime la limite d’erreur de l’horloge. Cela est dû au fait qu’une horloge matérielle PTP ne transmet pas les informations correctes de limite d’erreur à chrony, comme le fait NTP. Par conséquent, votre démon de synchronisation d’horloge suppose que l’horloge est précise à l’heure UTC et possède donc une limite d’erreur de `0`. Pour mesurer la limite d’erreur complète, le système Nitro calcule la limite d’erreur de l’horloge matérielle PTP, et la met à la disposition de votre instance EC2 via le système de fichiers `sysfs` du pilote ENA. Vous pouvez lire directement cette valeur, en nanosecondes.

**Pour récupérer l'erreur d'horloge matérielle PTP délimitée**

1. Commencez par obtenir l'emplacement correct de l'horloge matérielle PTP à l'aide de l'une des commandes suivantes. Le chemin d'accès dans la commande est différent selon l'AMI utilisée pour lancer l'instance.
   + Dans Amazon Linux 2 :

     ```
     cat /sys/class/net/eth0/device/uevent | grep PCI_SLOT_NAME
     ```
   + Pour Amazon Linux 2023 :

     ```
     cat /sys/class/net/ens5/device/uevent | grep PCI_SLOT_NAME
     ```

   La sortie est le nom de l'emplacement PCI, qui correspond à l'emplacement de l'horloge matérielle PTP. Dans cet exemple, l'emplacement est `0000:00:03.0`.

   ```
   PCI_SLOT_NAME=0000:00:03.0
   ```

1. Pour récupérer l'erreur d'horloge matérielle PTP, exécutez la commande suivante. Indiquez le nom de l'emplacement PCI de l'étape précédente.

   ```
   cat /sys/bus/pci/devices/0000:00:03.0/phc_error_bound
   ```

   La sortie correspond à la limite d’erreur d’horloge de l’horloge matérielle PTP, en nanosecondes.

Pour calculer la bonne erreur d'horloge liée à un moment précis lors de l'utilisation de la connexion PTP directe à l'horloge matérielle PTP, vous devez ajouter l'erreur d'horloge liée ClockBound à chrony ou à l'heure qui chrony interroge l'horloge matérielle PTP. Pour plus d'informations sur la mesure et le suivi de la précision de l'horloge, consultez [Gérer la précision de l'horloge des instances Amazon EC2 à l'aide d'Amazon Time Sync Service et d'Amazon CloudWatch — Partie](https://aws.amazon.com/blogs/mt/manage-amazon-ec2-instance-clock-accuracy-using-amazon-time-sync-service-and-amazon-cloudwatch-part-1/) 1.

# Changez le fuseau horaire de votre instance
<a name="change-time-zone-of-instance"></a>

Les instances Amazon EC2 sont définies sur le fuseau horaire UTC (temps universel coordonné) par défaut. Vous pouvez modifier l’heure d’une instance au fuseau horaire local ou à un autre fuseau horaire de votre réseau.

Utilisez les instructions fournies pour le système d’exploitation de votre instance.

## Linux
<a name="change_time_zone"></a>

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

**Pour changer de fuseau horaire sur Amazon Linux**

1. Affichez le paramètre de fuseau horaire actuel du système.

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

1. Répertoriez les fuseaux horaires disponibles.

   ```
   [ec2-user ~]$ timedatectl list-timezones
   ```

1. Définissez le fuseau horaire choisi.

   ```
   [ec2-user ~]$ sudo timedatectl set-timezone America/Vancouver
   ```

1. (Facultatif) Vérifiez que le fuseau horaire actuel est mis à jour vers le nouveau fuseau horaire en ré-exécutant la commande **timedatectl**.

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

## Windows
<a name="windows-changing-time-zone"></a>

**Pour modifier le fuseau horaire sur une instance Windows**

1. Depuis votre instance, ouvrez une fenêtre d’invite de commande.

1. Identifiez le fuseau horaire à utiliser sur l’instance. Pour obtenir une liste des fuseaux horaires, utilisez la commande suivante :

   ```
   tzutil /l
   ```

   Cette commande renvoie une liste de tous les fuseaux horaires disponibles, au format suivant :

   ```
   display name
   time zone ID
   ```

1. Recherchez l’ID du fuseau horaire à attribuer à l’instance.

1. Exemple : attribuez le fuseau horaire UTC :

   ```
   tzutil /s "UTC"
   ```

   Exemple : attribuer l’heure normale du Pacifique :

   ```
   tzutil /s "Pacific Standard Time"
   ```

Lorsque vous modifiez le fuseau horaire d’une instance Windows, vous devez vérifier que le fuseau horaire persiste lors du redémarrage du système. Sinon, lorsque l’instance redémarre, elle recommence à utiliser l’heure universelle coordonnée (UTC). Vous pouvez conserver votre paramètres de fuseau horaire en ajoutant une clé de **RealTimeIsUniversal** registre. Cette clé est définie par défaut sur toutes les instances de génération en cours. Pour vérifier si la clé de **RealTimeIsUniversal** registre est définie, reportez-vous à l'étape 3 de la procédure suivante. Si la clé n’est pas définie, procédez comme suit depuis le début.

**Pour définir la clé RealTimeIsUniversal de registre**

1. Depuis l’instance, ouvrez une fenêtre d’invite de commande.

1. Cette commande vous permet d’ajouter la clé de registre :

   ```
   reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
   ```

1. (Facultatif) Vérifiez que l’instance a enregistré la clé à l’aide de la commande suivante :

   ```
   reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /s
   ```

   Cette commande renvoie les sous-clés de la clé de registre **TimeZoneInformation**. La clé **RealTimeIsUniversal** doit s’afficher en bas de la liste, comme suit :

   ```
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
       Bias                            REG_DWORD     0x1e0
       DaylightBias                    REG_DWORD     0xffffffc4
       DaylightName                    REG_SZ        @tzres.dll,-211
       DaylightStart                   REG_BINARY    00000300020002000000000000000000
       StandardBias                    REG_DWORD     0x0
       StandardName                    REG_SZ        @tzres.dll,-212
       StandardStart                   REG_BINARY    00000B00010002000000000000000000
       TimeZoneKeyName                 REG_SZ        Pacific Standard Time
       DynamicDaylightTimeDisabled     REG_DWORD     0x0
       ActiveTimeBias                  REG_DWORD     0x1a4
       RealTimeIsUniversal             REG_DWORD     0x1
   ```