

# Configuración de la referencia horaria en su instancia EC2 para que use el Servicio de sincronización temporal de Amazon local
<a name="configure-ec2-ntp"></a>

El Servicio local de sincronización temporal de Amazon utiliza el protocolo de tiempo de redes (NTP) o proporciona un reloj de hardware local del protocolo de tiempo de precisión (PTP) en las [instancias compatibles](#ptp-hardware-clock-requirements). El reloj de hardware PTP admite una conexión NTP (instancias de Linux y Windows) o una conexión PTP directa (solo instancias de Linux). La conexión NTP y la conexión PTP directa utilizan el mismo origen horaria de alta precisión, pero la conexión PTP directa es más precisa que la conexión NTP. La conexión NTP al Servicio de sincronización temporal de Amazon admite la difuminación temporal, mientras que la conexión PTP al reloj de hardware de PTP no extiende la hora. Para obtener más información, consulte [Segundos intercalares](set-time.md#leap-seconds).

Sus instancias pueden acceder al Servicio de sincronización temporal de Amazon local de la siguiente manera:
+ A través de NTP en los siguientes puntos de conexión de direcciones IP:
  + IPv4: `169.254.169.123`
  + IPv6: `fd00:ec2::123` (solo accesible en [instancias basadas en Nitro](instance-types.md#instance-hypervisor-type)).
+ (Solo Linux) A través de una conexión PTP directa para conectarse a un reloj de hardware de PTP local:
  + `PHC0`

Las AMI de Amazon Linux, las AMI de Windows y la mayoría de las AMI de socios configuran la instancia para que utilice el punto de conexión IPv4 NTP de forma predeterminada. Esta es la configuración recomendada para la mayoría de las cargas de trabajo de clientes. No se requiere ninguna configuración adicional para las instancias iniciadas desde estas AMI, a menos que desee utilizar el punto de conexión IPv6 o conectarse directamente al reloj de hardware de PTP.

Las conexiones NTP y PTP no requieren ningún cambio en la configuración de la VPC y la instancia no requiere acceso a Internet.

**Consideraciones**
+ Hay un límite de 1024 paquetes por segundo (PPS) para los servicios que utilizan direcciones [locales de enlace](using-instance-addressing.md#link-local-addresses). Este límite incluye la suma de las [consultas de DNS de Route 53 Resolver](https://docs.aws.amazon.com/vpc/latest/userguide/AmazonDNS-concepts.html#vpc-dns-limits), las solicitudes del [servicio de metadatos de instancias (IMDS)](instancedata-data-retrieval.md), las solicitudes del protocolo de tiempo de red (NTP) del servicio temporal de Amazon y las solicitudes del [Servicio de licencias de Windows (para instancias basadas en Microsoft Windows)](https://aws.amazon.com/windows/resources/licensing/). 
+ Solo las instancias de Linux pueden utilizar una *conexión PTP directa* para conectarse a un reloj de hardware de PTP local. Las instancias de Windows utilizan NTP para conectarse al reloj de hardware de PTP local.

**Topics**
+ [Conexión al punto de conexión de IPv4 del Servicio de sincronización temporal de Amazon](#configure-amazon-time-service-IPv4)
+ [Conexión al punto de conexión de IPv6 del Servicio de sincronización temporal de Amazon](#configure-amazon-time-service-IPv6)
+ [Conexión al reloj de hardware de PTP](#connect-to-the-ptp-hardware-clock)

## Conexión al punto de conexión de IPv4 del Servicio de sincronización temporal de Amazon
<a name="configure-amazon-time-service-IPv4"></a>

Es posible que su AMI ya haya configurado el Servicio de sincronización temporal de Amazon de forma predeterminada. De lo contrario, utilice los siguientes procedimientos para configurar su instancia de modo que use el Servicio de sincronización temporal de Amazon local a través del punto de conexión IPv4.

Para obtener ayuda sobre la resolución de problemas, consulte [Solución de problemas de sincronización NTP en instancias Linux](https://repost.aws/knowledge-center/linux-troubleshoot-ntp-synchronization) o [Solución de problemas de tiempo en instancias Windows](https://repost.aws/knowledge-center/ec2-windows-time-service).

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

AL2023 y las versiones recientes de Amazon Linux 2 están configuradas para utilizar el punto de conexión IPv4 del Servicio de sincronización temporal de Amazon de forma predeterminada. Si confirma que su instancia ya está configurada, puede omitir el siguiente procedimiento.

**Para verificar que chrony está configurado para usar el punto de conexión IPv4**  
Ejecute el siguiente comando. En la salida, en la línea que empieza por `^*`, se indica el origen de la hora preferido.

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

**Para configurar chrony para que se conecte al punto de conexión IPv4 en versiones anteriores de Amazon Linux 2**

1. Conéctese a su instancia y desinstale el servicio NTP.

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

1. Instale el paquete `chrony`.

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

1. Abra el archivo `/etc/chrony.conf` con cualquier editor de texto (como **vim** o **nano**). Agregue la siguiente línea antes de cualquier otra instrucción `server` o `pool` que pueda estar presente en el archivo y guarde los cambios:

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

1. Reinicie daemon `chrony` (`chronyd`).

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

   ```
   Starting chronyd:                                          [  OK  ]
   ```
**nota**  
En RHEL y CentOS (hasta la versión 6), el nombre del servicio es `chrony` en lugar de `chronyd`.

1. Para configurar que `chronyd` se inicie cada vez que arranque el sistema, utilice el comando `chkconfig`.

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

1. Verifique que `chrony` esté usando el punto de conexión IPv4 `169.254.169.123` para sincronizar la hora.

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

   En la salida, `^*` indica el origen de hora preferido.

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

1. Verifique que `chrony` muestre las métricas de sincronización de hora.

   ```
   [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 ]

**Para configurar chrony para que se conecte al punto de conexión IPv4 en Ubuntu**

1. Conecte su instancia y use `apt` para instalar el paquete `chrony`.

   ```
   ubuntu:~$ sudo apt install chrony
   ```
**nota**  
De ser necesario, ejecute primero para actualizar su instancia `sudo apt update`.

1. Abra el archivo `/etc/chrony/chrony.conf` con cualquier editor de texto (como **vim** o **nano**). Añada la siguiente línea antes de cualquier otra instrucción `server` o `pool` que ya se encuentre en el archivo y guarde los cambios:

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

1. Reinicie el servicio `chrony`.

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

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

1. Verifique que `chrony` esté usando el punto de conexión IPv4 `169.254.169.123` para sincronizar la hora.

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

   En la salida, en la línea que empieza por `^*`, se indica el origen de la hora preferido.

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

1. Verifique que `chrony` muestre las métricas de sincronización de hora.

   ```
   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 ]

A partir de SUSE Linux Enterprise Server 15, `chrony` es la implementación predeterminada de NTP.

**Para configurar chrony para que se conecte al punto de conexión IPv4 en SUSE Linux**

1. Abra el archivo `/etc/chrony.conf` con cualquier editor de texto (como **vim** o **nano**).

1. Verifique que el archivo contenga la siguiente línea:

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

   Si esta línea no existe, añádala.

1. Comente el resto de líneas de servidores o grupos.

1. Abra YaST y habilite el servicio chrony.

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

A partir de la versión de agosto de 2018, las AMI de Windows utilizan el Servicio de sincronización temporal de Amazon de forma predeterminada. No se requiere ninguna configuración adicional para las instancias iniciadas desde estas AMI y puede omitir los siguientes procedimientos.

Si utiliza una AMI que no tiene el Servicio de sincronización temporal de Amazon de forma predeterminada, compruebe primero su configuración de NTP actual. Si la instancia ya utiliza el punto de conexión de IPv4 del Servicio de sincronización temporal de Amazon, no es necesario realizar ninguna otra configuración. Si la instancia no utiliza el Servicio de sincronización temporal de Amazon, complete el procedimiento para cambiar el servidor NTP para que utilice el Servicio de sincronización temporal de Amazon.

**Para verificar la configuración de NTP**

1. Desde la instancia, abra una ventana del símbolo del sistema.

1. Para obtener la configuración de NTP actual, escriba el siguiente comando:

   ```
   w32tm /query /configuration
   ```

   Este comando devuelve los valores de configuración actuales para la instancia de Windows y mostrará si está conectado al Servicio de sincronización temporal de Amazon.

1. (Opcional) Para obtener el estado de la configuración actual, escriba el siguiente comando:

   ```
   w32tm /query /status
   ```

   Este comando devuelve información como la última vez que la instancia se sincronizó con el servidor NTP y el intervalo de sondeo.

**Cómo cambiar el servidor NTP de modo que use el Servicio de sincronización temporal de Amazon**

1. Desde la ventana del símbolo del sistema, ejecute el siguiente comando:

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

1. Para comprobar la nueva configuración, use el comando siguiente:

   ```
   w32tm /query /configuration
   ```

   En la salida que devuelve, verifique que `NtpServer` muestra el punto de conexión IPv4 `169.254.169.123`.

**Configuraciones predeterminadas de NTP para las AMI de Windows de Amazon**

Generalmente, las imágenes de máquinas de Amazon (AMI) se ajustan a los valores predeterminados de fábrica, salvo en los casos en que se requieren cambios para que funcione en la infraestructura de EC2. Se ha determinado que las siguientes configuraciones funcionan bien en un entorno virtual, así como para mantener cualquier desfase del reloj en un segundo de precisión: 
+ **Intervalo de actualización**: controla la frecuencia con la que el servicio de hora ajustará la hora del sistema para que sea exacta. AWS configura el intervalo de actualización para que se produzca una vez cada dos minutos.
+ **Servidor NTP**: a partir de la versión de agosto de 2018, las AMI ahora utilizan de forma predeterminada el Servicio de sincronización temporal de Amazon. Se puede acceder a este servicio de hora desde cualquier Región de AWS en el punto de conexión IPv4 169.254.169.123. Además, el indicador 0x9 muestra que el servicio de hora está actuando como cliente, y que se debe usar `SpecialPollInterval` para determinar con qué frecuencia debe registrarse en el servidor de hora configurado.
+ **Tipo**: “NTP” significa que el servicio actúa como cliente NTP independiente en lugar de actuar como parte de un dominio.
+ **Habilitado e InputProvider**: el servicio de hora está habilitado y proporciona la hora al sistema operativo.
+ **Intervalo de sondeo especial**: hace comprobaciones en el servidor NTP configurado cada 900 segundos (15 minutos).
**nota**  
Para las AMI de Windows Server 2025, el valor de `SpecialPollInterval` es de 1024 segundos en lugar de 900 segundos.


| Ruta de registro | Nombre de la clave | Datos | 
| --- | --- | --- | 
|  HKLM:\$1System\$1CurrentControlSet\$1services\$1w32time\$1Config  |  UpdateInterval  | 120 | 
| HKLM:\$1System\$1CurrentControlSet\$1services\$1w32time\$1Parameters | NtpServer | 169.254.169.123,0x9 | 
| HKLM:\$1System\$1CurrentControlSet\$1services\$1w32time\$1Parameters | Tipo | NTP | 
| HKLM:\$1System\$1CurrentControlSet\$1services\$1w32time\$1TimeProviders\$1NtpClient | Habilitado | 1 | 
| HKLM:\$1System\$1CurrentControlSet\$1services\$1w32time\$1TimeProviders\$1NtpClient | InputProvider | 1 | 
| HKLM:\$1System\$1CurrentControlSet\$1services\$1w32time\$1TimeProviders\$1NtpClient | SpecialPollInterval | 900 (Windows Server 2016, 2019 y 2022) o 1024 (Windows Server 2025) | 

------

## Conexión al punto de conexión de IPv6 del Servicio de sincronización temporal de Amazon
<a name="configure-amazon-time-service-IPv6"></a>

En esta sección se explica en qué difieren los pasos descritos en [Conexión al punto de conexión de IPv4 del Servicio de sincronización temporal de Amazon](#configure-amazon-time-service-IPv4) si configura su instancia de modo que use el Servicio de sincronización temporal de Amazon local a través del punto de conexión IPv6. No se explica todo el proceso de configuración de Servicio de sincronización temporal de Amazon.

Solo se puede acceder al punto de conexión IPv6 en [instancias integradas en Nitro](instance-types.md#instance-hypervisor-type).

No se recomienda utilizar juntas las entradas del punto de conexión IPv4 e IPv6. Los paquetes NTP de IPv4 e IPv6 provienen del mismo servidor local para su instancia. No es necesario configurar los puntos de conexión de IPv4 e IPv6 y esto no mejorará la precisión de la hora de la instancia.

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

En función de la distribución de Linux que utilice, cuando llegue al paso para editar el archivo `chrony.conf`, utilizará el punto de conexión IPv6 del Servicio de sincronización temporal de Amazon (`fd00:ec2::123`) en lugar del punto de conexión IPv4 (`169.254.169.123`):

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

Guarde el archivo y verifique que chrony esté utilizando el punto de conexión IPv6 `fd00:ec2::123` para sincronizar la hora: 

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

Si ve el punto de conexión IPv6 `fd00:ec2::123` en la salida, la configuración está completa.

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

Cuando llegue al paso para cambiar el servidor NTP para que utilice el Servicio de sincronización temporal de Amazon, utilizará el punto de conexión IPv6 del Servicio de sincronización temporal de Amazon (`fd00:ec2::123`) en lugar del punto de conexión IPv4 (`169.254.169.123`):

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

Compruebe que la nueva configuración utilice el punto de conexión IPv6 `fd00:ec2::123` para sincronizar la hora:

```
w32tm /query /configuration
```

En la salida, verifique que `NtpServer` muestra el punto de conexión IPv6 `fd00:ec2::123`.

------

## Conexión al reloj de hardware de PTP
<a name="connect-to-the-ptp-hardware-clock"></a>

El reloj de hardware de PTP forma parte del [AWS Nitro System](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), por lo que se puede acceder a él directamente en las [instancias de EC2 virtualizadas y bare metal admitidas](#ptp-hardware-clock-requirements) sin necesidad de utilizar ningún recurso del cliente.

Los puntos de conexión NTP del reloj de hardware de PTP son los mismos que los de la conexión normal del Servicio de sincronización temporal de Amazon. Si la instancia tiene un reloj de hardware de PTP y configuró la conexión NTP (al punto de conexión IPv4 o IPv6), la hora de la instancia se obtiene automáticamente del reloj de hardware de PTP por sobre NTP.

Para las instancias de Linux, puede configurar una conexión PTP *directa*, lo que proporcionará una hora más precisa que la conexión NTP. Las instancias de Windows solo admiten una conexión NTP al reloj de hardware de PTP.

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

El reloj de hardware de PTP está disponible en una instancia cuando se cumplen los siguientes requisitos:
+ Regiones de AWS compatibles: Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Asia-Pacífico (Malasia), Asia-Pacífico (Tailandia), Asia-Pacífico (Tokio) y Europa (Estocolmo)
+ Zonas locales compatibles: Este de EE. UU. (Ciudad de Nueva York)
+ Familias de instancias admitidas:
  + **De uso general: **M7a, M7g, M7i
  + **Optimizadas para la memoria: **R7a, R7g, R7i
  + **Optimizadas para el almacenamiento: **I8g, I8ge
+ (Solo Linux) El controlador de ENA, versión 2.10.0 o posteriores, está instalado en un sistema operativo compatible. Para obtener más información sobre los sistemas operativos compatibles, consulte los [requisitos previos](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#prerequisites) del controlador en *GitHub*.

### (Solo para Linux) Configuración de una conexión PTP directa al reloj de hardware de PTP
<a name="connect-to-the-ptp-hardware-clock-linux"></a>

En esta sección, se describe cómo configurar la instancia de Linux para que utilice el Servicio de sincronización temporal de Amazon local a través del reloj de hardware de PTP mediante una conexión PTP directa. Es necesario agregar una entrada de servidor para el reloj de hardware PTP al archivo de configuración `chrony`.

**Para configurar una conexión PTP directa al reloj de hardware de PTP (solo para instancias de Linux)**

1. **Requisitos previos de instalación**

   Conéctese a la instancia de Linux y haga lo siguiente:

   1. Instale el controlador del kernel de Linux para la versión 2.10.0 o posteriores de Elastic Network Adapter (ENA).

   1. Habilite el reloj de hardware de PTP.

   Para ver las instrucciones de instalación, consulte [Linux kernel driver for Elastic Network Adapter (ENA) family](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#linux-kernel-driver-for-elastic-network-adapter-ena-family) en *GitHub*.

1. **Verificación del dispositivo PTP de ENA**

   Compruebe que el dispositivo del reloj de hardware PTP de ENA aparezca en su instancia.

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

   Resultado previsto

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

   Donde:
   + `index` es el índice de reloj de hardware PTP registrado en el kernel.
   + `PCI slot` es la ranura PCI del controlador Ethernet de ENA. Es la misma ranura que se muestra en `lspci | grep ENA`.

   Ejemplo de resultado

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

   Si `ena-ptp-<PCI slot>` no está en la salida, significa que el controlador de ENA no se instaló correctamente. Revise el paso 1 de este procedimiento para instalar el controlador.

1. **Configuración el enlace simbólico PTP**

   Los dispositivos PTP suelen tener el nombre `/dev/ptp0`, `/dev/ptp1`, etc., y su índice depende del orden de inicialización del hardware. La creación de un enlace simbólico garantiza que aplicaciones como chrony hagan referencia de forma coherente al dispositivo correcto, independientemente de los cambios de índice.

   Las AMI más recientes de Amazon Linux 2023 incluyen una regla `udev` que crea el enlace simbólico `/dev/ptp_ena` y apunta a la entrada `/dev/ptp` correcta asociada al host de ENA.

   En primer lugar, compruebe que el enlace simbólico se haya instalado con el siguiente comando.

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

   Ejemplo de resultado

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

   Donde:
   + `/dev/ptp<index>` es la ruta al dispositivo PTP.
   + `/dev/ptp_ena` es el enlace simbólico constante, que apunta al mismo dispositivo PTP.

    

   Si el enlace simbólico `/dev/ptp_ena` está presente, vaya al paso 4 de este procedimiento. Si no aparece, realice una de las siguientes opciones:

   1. Agregue la siguiente regla `udev`.

      ```
      [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. Reinicie la instancia o ejecute el siguiente comando para volver a cargar la regla `udev`.

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

1. **Configuración de chrony**

   chrony debe configurarse para usar el enlace simbólico `/dev/ptp_ena` en lugar de hacer referencia directa a /`dev/ptp<index>`.

   1. Edite `/etc/chrony.conf` con un editor de texto y agregue la siguiente línea en cualquier parte del archivo. 

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

   1. Reinicie chrony.

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

1. **Verificación de la configuración de chrony**

   Compruebe que chrony utilice el reloj de hardware de PTP para sincronizar la hora en esta instancia.

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

   Resultado previsto

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

   En la respuesta obtenida, `*` indica el origen de hora preferido. `PHC0` corresponde al reloj de hardware de PTP. Puede que tenga que esperar unos segundos después de reiniciar chrony para que aparezca el asterisco.