Configurar la hora para una instancia de Linux - Amazon Elastic Compute Cloud

Configurar la hora para una instancia de Linux

Una referencia horaria coherente y precisa resulta crucial para muchas tareas y procesos del servidor. La mayoría de registros del sistema incluyen una marca temporal que se puede usar para determinar cuándo sucedieron los problemas y en qué orden tuvieron lugar los eventos. Si utiliza la AWS CLI o un SDK de AWS para realizar solicitudes desde la instancia, estas herramientas firman las solicitudes en su nombre. Si la fecha y la hora de la instancia no se establecen correctamente, la fecha de la firma podría no coincidir con la fecha de la solicitud y AWS rechazaría la solicitud.

Amazon proporciona Amazon Time Sync Service, que está disponible desde todas las instancias EC2 y que también utilizan los demás servicios de AWS. Este 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 del estándar global de horario universal coordinado (UTC) a través de Network Time Protocol (NTP). Amazon Time Sync Service equilibra automáticamente los segundos intercalares que se añadan al UTC.

Amazon Time Sync Service se encuentra disponible mediante NTP en la dirección IPv4 169.254.169.123 o la dirección IPv6 fd00:ec2::123 para cualquier instancia que se ejecute en una VPC. Solo se puede acceder a la dirección IPv6 en Instancias integradas en el sistema Nitro. Su instancia no requiere acceso a Internet y no necesita configurar sus reglas del grupo de seguridad ni las de las reglas de ACL de red para permitir el acceso. Las últimas versiones de las AMI de Amazon Linux 2 y Amazon Linux se sincronizan con Amazon Time Sync Service de forma predeterminada.

Utilice los siguientes procedimientos para configurar Amazon Time Sync Service en su instancia mediante el cliente chrony. También puede utilizar la orígenes NTP externos. Para obtener más información sobre NTP y sobre los orígenes de hora públicos, consulte http://www.ntp.org. Las instancias necesitan acceso a Internet para que los orígenes de hora NTP externos funcionen.

Para las instancias de Windows, consulte Establecer la hora para una instancia de Windows.

Configurar la hora para las instancias EC2 con direcciones IPv4

En esta sección se describe cómo establecer la hora para las instancias EC2 con direcciones IPv4 en función del tipo de distribución de Linux.

Configurar el Amazon Time Sync Service en Amazon Linux AMI

nota

En Amazon Linux 2, chrony ya está instalado y configurado para utilizar la dirección IP de Amazon Time Sync Service.

Con la Amazon Linux AMI, debe editar el archivo de configuración de chrony para añadir una entrada de servidor para Amazon Time Sync Service.

Para configurar su instancia de modo que use Amazon Time Sync Service

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

    [ec2-user ~]$ sudo yum erase 'ntp*'
  2. Instale el paquete chrony.

    [ec2-user ~]$ sudo yum install chrony
  3. Abra el archivo /etc/chrony.conf con cualquier editor de texto (como vim o nano). Verifique que el archivo incluya la siguiente línea:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

    Si la línea está, Amazon Time Sync Service ya está configurado y debe continuar con el siguiente paso. Si no, añada la línea después de cualquier otra instrucción server o pool que ya se encuentre en el archivo y guarde los cambios.

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

  5. Utilice el comando chkconfig para configurar chronyd para que se inicie cada vez que arranque el sistema.

    [ec2-user ~]$ sudo chkconfig chronyd on
  6. Verifique que chrony esté usando la dirección IP 169.254.169.123 para sincronizar la hora.

    [ec2-user ~]$ chronyc sources -v
    210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us ^- ec2-12-34-231-12.eu-west> 2 6 17 43 -388us[ -388us] +/- 11ms ^- tshirt.heanet.ie 1 6 17 44 +178us[ +25us] +/- 1959us ^? tbag.heanet.ie 0 6 0 - +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:c43:e312:ce77:> 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:dab:2701:b70:b> 0 6 0 - +0ns[ +0ns] +/- 0ns

    En la respuesta obtenida, ^* indica el origen de hora preferido.

  7. Verifique que muestre las métricas de sincronización de hor 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

Configurar Amazon Time Sync Service en Ubuntu

Debe editar el archivo de configuración de chrony para añadir una entrada de servidor para Amazon Time Sync Service.

Para configurar su instancia de modo que use Amazon Time Sync Service

  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 instanci sudo apt update.

  2. 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
  3. Reinicie el servicio chrony.

    ubuntu:~$ sudo /etc/init.d/chrony restart
    Restarting chrony (via systemctl): chrony.service.
  4. Verifique que chrony esté usando la dirección IP 169.254.169.123 para sincronizar la hora.

    ubuntu:~$ chronyc sources -v
    210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us ^- tbag.heanet.ie 1 6 17 13 -3488us[-3446us] +/- 1779us ^- ec2-12-34-231-12.eu-west- 2 6 17 13 +893us[ +935us] +/- 7710us ^? 2a05:d018:c43:e312:ce77:6 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? 2a05:d018:d34:9000:d8c6:5 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? tshirt.heanet.ie 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 10y +0ns[ +0ns] +/- 0ns

    En la respuesta obtenida, ^* indica el origen de hora preferido.

  5. Verifique que muestre las métricas de sincronización de hor 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

Configurar Amazon Time Sync Service en SUSE Linux

Instale chrony desde https://software.opensuse.org/package/chrony.

Abra el archivo /etc/chrony.conf con cualquier editor de texto (como vim o nano). 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. Comente el resto de líneas de servidores o grupos. Abra yaST y habilite el servicio chrony.

Configurar la hora para las instancias EC2 con direcciones IPv6

En esta sección se explica en qué difiere el proceso descrito en Configurar la hora para las instancias EC2 con direcciones IPv4 si configurar Amazon Time Sync Service para instancias EC2 que utilizan una dirección IPv6. No se explica todo el proceso de configuración de Amazon Time Sync Service. Solo se puede acceder a la dirección IPv6 en Instancias integradas en el sistema Nitro.

nota

No recomendamos utilizar entradas de dirección IPv4 y dirección IPv6 juntas en el archivo chrony.conf. Los paquetes NTP de IPv4 e IPv6 provienen del mismo servidor local para su instancia. Es probable que obtenga resultados mixtos con algunos paquetes procedentes del punto de enlace IPv4 y algunos de los puntos de enlace IPv6 si utiliza ambos al mismo tiempo.

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 enlace IPv6 de Amazon Time Sync Service (fd00:ec2::123) en lugar del punto de enlace IPv4 (169.254.169.123):

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

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

[ec2-user ~]$ chronyc sources -v

Si ve la dirección IPv6 fd00:ec2::123 en la salida, la configuración está completa.

Cambiar la zona horaria en Amazon Linux.

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

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 una instancia

  1. Identifique la zona horaria que usar en la instancia. El directorio /usr/share/zoneinfo contiene una jerarquía de los archivos de datos de las zonas horarias. Explore la estructura de directorios de esa ubicación para buscar un archivo para su zona horaria.

    [ec2-user ~]$ ls /usr/share/zoneinfo Africa Chile GB Indian Mideast posixrules US America CST6CDT GB-Eire Iran MST PRC UTC Antarctica Cuba GMT iso3166.tab MST7MDT PST8PDT WET Arctic EET GMT0 Israel Navajo right W-SU ...

    Algunas entradas de esta ubicación son directorios (como America) y esos directorios contienen archivos de zona horaria para ciudades específicas. Busque la ciudad (o una ciudad en la zona horaria) para usar en la instancia.

  2. Actualice el archivo /etc/sysconfig/clock con la nueva zona horaria. En este ejemplo, utilizamos el archivo de datos de la zona horaria para Los Ángeles, /usr/share/zoneinfo/America/Los_Angeles.

    1. Abra el archivo /etc/sysconfig/clock con el editor de textos que prefiera (como vim o nano). Debe utilizar sudo con el comando del editor porque /etc/sysconfig/clock es el propietario de root.

      [ec2-user ~]$ sudo nano /etc/sysconfig/clock
    2. Localice la entrada ZONE y cámbiela por el archivo de zona horaria (omitiendo la sección /usr/share/zoneinfo de la ruta). Por ejemplo, para cambiar a la zona horaria de Los Ángeles, cambie la entrada ZONE por lo siguiente:

      ZONE="America/Los_Angeles"
      nota

      No cambie la entrada UTC=true por otro valor. Esta entrada es para el reloj de hardware y no necesita ajustarse cuando establece una zona horaria diferente en la instancia.

    3. Guarde el archivo y salga del editor de texto.

  3. Cree un enlace simbólico entre /etc/localtime y el archivo de zona horaria de manera que la instancia lo encuentre cuando haga referencia a la información de hora local.

    [ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
  4. Vuelva a arrancar el sistema para actualizar la nueva información de zona horaria en todos los servicios y aplicaciones.

    [ec2-user ~]$ sudo reboot
  5. (Opcional) Confirme que la zona horaria actual se ha actualizado a la nueva zona horaria mediante el comando date. La zona horaria actual aparece en la salida. En el siguiente ejemplo, la zona horaria actual es PDT, que hace referencia a la zona horaria de Los Ángeles.

    [ec2-user ~]$ date Sun Aug 16 05:45:16 PDT 2020