

# Sincronización precisa del reloj y la hora en su instancia EC2
<a name="set-time"></a>

Una referencia horaria coherente y precisa en su instancia de Amazon EC2 resulta crucial para muchas tareas y procesos del servidor. Las marcas de tiempo en los registros del sistema desempeñan un papel esencial a la hora de identificar cuándo se produjeron los problemas y el orden cronológico de los eventos. Cuando use la AWS CLI o un SDK de AWS para realizar solicitudes desde la instancia, estas herramientas firman las solicitudes en su nombre. Si la configuración de fecha y hora de la instancia no es correcta, podría producirse una discrepancia entre la fecha de la firma y la fecha de la solicitud y AWS rechazaría las solicitudes.

Para abordar este importante aspecto, Amazon ofrece el Servicio de sincronización temporal de Amazon, que está disponible desde todas las instancias de EC2 y que utilizan varios Servicios de AWS. El servicio utiliza una flota de relojes atómicos de referencia conectados vía satélite en cada Región de AWS para entregar lecturas horarias precisas y actuales del estándar global de la hora universal coordinada (UTC).

Para lograr un rendimiento óptimo, le recomendamos que use el [Servicio de sincronización temporal de Amazon](configure-ec2-ntp.md) en sus instancias de EC2. Para hacer una copia de seguridad del Servicio de sincronización temporal de Amazon local en sus instancias y conectar recursos ajenos a Amazon EC2 al Servicio de sincronización temporal de Amazon, puede utilizar el [Servicio de sincronización temporal de Amazon público](configure-time-sync.md) que se encuentra en `time.aws.com`. El Servicio de sincronización temporal de Amazon público, igual que el Servicio de sincronización temporal de Amazon local, difumina automáticamente los segundos intercalares que se agregan a la hora UTC. El Servicio de sincronización temporal de Amazon público es compatible en todo el mundo con nuestra flota de relojes atómicos de referencia conectados vía satélite en cada Región de AWS.

## Marcado de tiempo de paquetes por hardware
<a name="hardware-packet-timestamping"></a>

Puede habilitar el marcado de tiempo de paquetes por hardware en su instancia para añadir una marca de tiempo de 64 bits con precisión de nanosegundos a cada paquete de red entrante. Dado que el marcado de tiempo de paquetes por hardware se produce a nivel de hardware (antes de que el paquete llegue a la capa del kernel, el socket o la aplicación), se evitan los retrasos añadidos por el marcado de tiempo por software. El reloj de referencia subyacente para el marcado de tiempo por hardware es el [reloj de hardware PTP](configure-ec2-ntp.md#connect-to-the-ptp-hardware-clock) del Servicio de sincronización temporal de Amazon

**Ventajas**

El marcado de tiempo de paquetes por hardware proporciona los siguientes beneficios:
+ Mejora el orden de los eventos, lo que también se puede utilizar para determinar el orden real en el que los paquetes llegan a su instancia de EC2, garantizando un procesamiento justo de los paquetes.
+ Mide la latencia de red unidireccional.
+ Aumenta la velocidad de las transacciones distribuidas con mayor precisión y exactitud en comparación con la mayoría de las soluciones en las instalaciones.

**Requisitos previos y configuración**

Para habilitar el marcado de tiempo de paquetes por hardware, su instancia debe cumplir los siguientes requisitos previos:
+ Debe ser una instancia Linux.
+ Cumplir los [requisitos para ser compatible con el reloj de hardware PTP](configure-ec2-ntp.md#ptp-hardware-clock-requirements).

Para ver las instrucciones de configuración, consulte [Marcado de tiempo de paquetes por hardware](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#hardware-packet-timestamping) en la página del **controlador del kernel de Linux para la familia Elastic Network Adapter (ENA)** en *GitHub*.

## Segundos intercalares
<a name="leap-seconds"></a>

Los segundos intercalares, introducidos en 1972, son ajustes ocasionales de un segundo en la hora UTC para tener en cuenta las irregularidades en la rotación de la Tierra y tener en cuenta las diferencias entre la hora atómica internacional (TAI) y la hora solar (Ut1). Para administrar los segundos intercalares en beneficio de los clientes, hemos diseñado la difuminación de segundos intercalares en el Servicio de sincronización temporal de Amazon. Para obtener más información, consulte [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/).

Los segundos intercalares están desapareciendo y apoyamos plenamente la decisión tomada en la [27.ª conferencia general sobre ponderaciones y medidas para abandonar los segundos intercalares a más tardar en 2035](https://www.bipm.org/en/cgpm-2022/resolution-4).

Para respaldar esta transición, seguimos pensando en la difuminación temporal durante un evento de segundo intercalar al acceder al Servicio de sincronización temporal de Amazon a través de la conexión NTP local o de nuestros grupos NTP públicos (`time.aws.com`). Sin embargo, el reloj de hardware de PTP no ofrece una opción de tiempo extendido. En caso de un segundo intercalar, el reloj de hardware de PTP agregará el segundo intercalar siguiendo los estándares de UTC. Los orígenes de tiempo con difuminación temporal y segundos intercalares son iguales en la mayoría de los casos. Sin embargo, debido a que difieren durante un evento de segundo intercalar, no recomendamos utilizar orígenes de tiempo difuminados y no difuminados en la configuración de su cliente de tiempo durante un evento de segundo intercalar.

 

**Topics**
+ [Marcado de tiempo de paquetes por hardware](#hardware-packet-timestamping)
+ [Segundos intercalares](#leap-seconds)
+ [Configuración de la referencia horaria en su instancia EC2 para que use el Servicio de sincronización temporal de Amazon local](configure-ec2-ntp.md)
+ [Configuración de la referencia horiaria en una instancia EC2 o cualquier dispositivo conectado a Internet para usar el Servicio de sincronización temporal de Amazon público](configure-time-sync.md)
+ [Comparación de las marcas temporales de sus instancias Linux](compare-timestamps-with-clockbound.md)
+ [Cambio de la zona horaria en una instancia](change-time-zone-of-instance.md)

 

**Recursos relacionados**
+ Blog de AWS Compute: [It’s About Time: Microsecond-Accurate Clocks on Amazon EC2 Instances](https://aws.amazon.com/blogs/compute/its-about-time-microsecond-accurate-clocks-on-amazon-ec2-instances/)
+ AWS Blog de operaciones y migraciones en la nube: [Administración de la precisión del reloj de instancias de Amazon EC2 con el Servicio de sincronización temporal de Amazon y Amazon CloudWatch: parte 1](https://aws.amazon.com/blogs/mt/manage-amazon-ec2-instance-clock-accuracy-using-amazon-time-sync-service-and-amazon-cloudwatch-part-1/)
+ (Linux) [https://chrony-project.org/](https://chrony-project.org/)

# 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.

# Configuración de la referencia horiaria en una instancia EC2 o cualquier dispositivo conectado a Internet para usar el Servicio de sincronización temporal de Amazon público
<a name="configure-time-sync"></a>

Puede configurar su instancia, o cualquier dispositivo conectado a Internet, como un ordenador local o un servidor en las instalaciones, para que utilice el Servicio de sincronización temporal de Amazon público, al que se puede acceder a través de Internet en `time.aws.com`. Puede usar el Servicio de sincronización temporal de Amazon público como una copia de seguridad para el Servicio de sincronización temporal de Amazon local y para conectar recursos ajenos a AWS al Servicio de sincronización temporal de Amazon.

**nota**  
Para obtener el mejor rendimiento, le recomendamos que utilice el Servicio de sincronización temporal de Amazon *local* en sus instancias y que solo utilice el Servicio de sincronización temporal de Amazon *público* como respaldo.

Consulte las instrucciones del sistema operativo de su instancia o dispositivo.

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

**Configuración de una instancia o dispositivo de Linux para que utilice el Servicio de sincronización temporal de Amazon público mediante chrony o ntpd**

1. Edite `/etc/chrony.conf` (si usa chrony) o `/etc/ntp.conf` (si usa ntpd) con un editor de texto como se explica a continuación:

   1. Elimine o comente otras líneas que empiecen por `server` excepto las conexiones existentes al Servicio de sincronización temporal de Amazon local para evitar que su instancia o dispositivo intente mezclar servidores extendidos y no extendidos.
**importante**  
Si está configurando su instancia de EC2 para que se conecte al Servicio de sincronización temporal de Amazon público, no elimine la siguiente línea, que indica que su instancia se conectará al Servicio de sincronización temporal de Amazon local. El Servicio de sincronización temporal de Amazon local es una conexión más directa y proporcionará una mayor precisión del reloj. El Servicio de sincronización temporal de Amazon público solo debe usarse como copia de seguridad.  

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

   1. Agregue la siguiente línea para conectarse al Servicio de sincronización temporal de Amazon público.

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

1. Reinicie el daemon con uno de los siguientes comandos:
   + chrony

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

     ```
     sudo service ntp reload
     ```

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

**Configuración de una instancia o dispositivo de macOS para que utilice el Servicio de sincronización temporal de Amazon público**

1. Abra **Preferencias del sistema**. 

1. Elija **Date & Time** (Fecha y hora) y, a continuación, la pestaña **Date & Time** (Fecha y hora).

1. Para hacer cambios, elija el icono del candado e ingrese la contraseña cuando se le solicite.

1. En **Establecer fecha y hora automáticamente**, ingrese **time.aws.com**.

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

**Configuración de una instancia o dispositivo de Windows para que utilice el Servicio de sincronización temporal de Amazon público**

1. Abra **Control Panel** (Panel de control). 

1. Seleccione el icono de **Date and Time** (Fecha y hora).

1. Seleccione la pestaña **Internet Time** (Hora de Internet). Esta pestaña no estará disponible si su PC forma parte de un dominio. En este caso, sincronizará la hora con el controlador de dominio. Puede configurar el controlador para que utilice el Servicio de sincronización temporal de Amazon público.

1. Elija **Change settings** (Cambiar configuración). 

1. Seleccione la casilla **Sincronizar con un servidor horario de Internet**. 

1. Junto a **Servidor**, escriba **time.aws.com**.

**Configuración de una instancia o dispositivo de Windows Server para que utilice el Servicio de sincronización temporal de Amazon público**
+ Siga las [instrucciones de Microsoft](https://support.microsoft.com/en-us/kb/816042) para actualizar el registro. 

# Comparación de las marcas temporales de sus instancias Linux
<a name="compare-timestamps-with-clockbound"></a>

Si está usando el Servicio de sincronización temporal de Amazon, puede comparar las marcas de tiempo de las instancias Linux de Amazon EC2 con ClockBound para determinar la hora real de un evento. ClockBound mide la precisión del reloj de la instancia de EC2 y le permite comprobar si una marca de tiempo determinada se encuentra en el pasado o en el futuro con respecto al reloj actual de la instancia. Esta información es valiosa para determinar el orden y la coherencia de los eventos y las transacciones en las instancias de EC2, independientemente de la ubicación geográfica de cada instancia.

ClockBound es una biblioteca y daemon de código abierto. Para obtener más información sobre ClockBound, incluidas las instrucciones de instalación, consulte [ClockBound](https://github.com/aws/clock-bound) en *GitHub*.

ClockBound solo se admite para las instancias de Linux.

Si utiliza la conexión PTP directa al reloj del hardware de PTP, su daemon de hora, como chrony, subestimará el límite de error del reloj. Esto se debe a que un reloj de hardware de PTP no transmite la información correcta del límite de error a chrony, como lo hace NTP. Como resultado, el daemon de sincronización de relojes asume que el reloj tiene una precisión de UTC y, por lo tanto, tiene un límite de error de `0`. Para medir todo el límite de errores, Nitro System calcula el límite de error del reloj de equipo de PTP y lo pone a disposición de la instancia de EC2 a través del sistema de archivos `sysfs` del controlador de ENA. Puede leerlo directamente como un valor, en nanosegundos.

**Para recuperar el enlace de error del reloj de equipo de PTP**

1. Primero, obtenga la ubicación correcta del dispositivo de reloj de equipo PTP mediante uno de los siguientes comandos. La ruta del comando es diferente en función de la AMI utilizada para iniciar la instancia.
   + En Amazon Linux 2:

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

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

   La salida es el nombre de la ranura PCI, que es la ubicación del dispositivo de reloj de equipo de PTP. En este ejemplo, la ubicación es `0000:00:03.0`.

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

1. Para recuperar el enlace de error del reloj de equipo de PTP, ejecute el siguiente comando. Incluya el nombre de la ranura PCI del paso anterior.

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

   El resultado es el límite de error del reloj del hardware de PTP, en nanosegundos.

Para calcular el límite de error del reloj correcto en un momento específico cuando se utiliza la conexión PTP directa al reloj del hardware de PTP, debe agregar el límite de error del reloj desde chrony o ClockBound en el momento en que chrony sondea el reloj del hardware de PTP. Para obtener más información sobre la medición y la supervisión de la precisión del reloj, consulte [Administración de la precisión del reloj de instancias de Amazon EC2 con el Servicio de sincronización temporal de Amazon y Amazon CloudWatch – Parte 1](https://aws.amazon.com/blogs/mt/manage-amazon-ec2-instance-clock-accuracy-using-amazon-time-sync-service-and-amazon-cloudwatch-part-1/).

# Cambio de la zona horaria en una instancia
<a name="change-time-zone-of-instance"></a>

Las instancias de Amazon EC2 se establecen en la zona horaria UTC (hora universal coordinada) de forma predeterminada. Puede cambiar la hora de una instancia a la zona horaria local o a otra zona horaria de la red.

Consulte las instrucciones del sistema operativo de su instancia.

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

**importante**  
Esta información se aplica a Amazon Linux. Para obtener información acerca de otras distribuciones, consulte la documentación específica.

**Para cambiar la zona horaria en Amazon Linux.**

1. Vea la configuración de zona horaria actual del sistema.

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

1. Enumere las zonas horarias disponibles.

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

1. Configure la zona horaria elegida.

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

1. (Opcional) Confirme que la zona horaria actual se ha actualizado a la nueva zona horaria al usar de nuevo el comando **timedatectl**.

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

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

**Cambio de la zona horaria en una instancia de Windows**

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

1. Identifique la zona horaria que usar en la instancia. Para obtener una lista de zonas horarias, utilice el siguiente comando:

   ```
   tzutil /l
   ```

   Este comando devuelve una lista de todas las zonas horarias disponibles, con el siguiente formato:

   ```
   display name
   time zone ID
   ```

1. Encuentre el ID de zona horaria que asignar a la instancia.

1. Ejemplo: asignar la zona horaria UTC:

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

   Ejemplo: asignar la hora estándar del Pacífico:

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

Cuando cambia la zona horaria en una instancia de Windows, debe asegurarse de que la zona horaria persista a través de los reinicios del sistema. En caso contrario, cuando la instancia se reinicia, se revierten los cambios y vuelve a usar la hora UTC. Puede persistir la configuración de la zona horaria si agrega una clave de registro **RealTimeIsUniversal**. Esta clave se establece de forma predeterminada en todas las instancias de generación actual. Para verificar si la clave de registro **RealTimeIsUniversal** está establecida, consulte el paso 3 en el siguiente procedimiento. Si la clave no está establecida, siga estos pasos desde el principio.

**Para establecer la clave del registro RealTimeIsUniversal**

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

1. Utilice el siguiente comando para añadir la clave del registro:

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

1. (Opcional) Compruebe que la instancia guardó la clave correctamente mediante el siguiente comando:

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

   Este comando devuelve las subclaves de la clave **TimeZoneInformation** del registro. Debería ver la clave **RealTimeIsUniversal** en la parte inferior de la lista, como se muestra a continuación:

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