メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Linux インスタンスの時刻の設定

サーバータスクとプロセスの多くには、一貫して正確な時間参照が不可欠です。システムログのほとんどにタイムスタンプが含まれています。これを利用すれば、問題が発生した時刻とイベントの発生順序を判断できます。AWS CLI、または AWS SDK を使用してインスタンスからリクエストを行う場合、これらのツールによって自動的にリクエストに署名されます。インスタンスの日時が正しく設定されていない場合、署名の日付がリクエストの日付と一致しないことがあり、その場合は AWS によってリクエストが却下されます。ネットワークタイムプロトコル (NTP) は、デフォルトでは Amazon Linux インスタンスに設定されています。システム時間はインターネットで負荷が分散されたパブリックサーバーのプールと同期し、UTC 時間帯に設定されます。NTP の詳細については、http://www.ntp.org/ を参照してください。

重要

これらの手順は Amazon Linux で使用するためのものです。その他のディストリビューションの詳細については、各ドキュメントを参照してください。

時間帯の変更

Amazon Linux インスタンスは、デフォルトでは UTC (協定世界時間) 時間帯に設定されていますが、インスタンスの時間を現地時間またはネットワークの別の時間帯に変更したい場合があるでしょう。

To change the time zone on an instance

  1. Identify the time zone to use on the instance. The /usr/share/zoneinfo directory contains a hierarchy of time zone data files. Browse the directory structure at that location to find a file for your time zone.

    Copy
    [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 ...

    Some of the entries at this location are directories (such as America), and these directories contain time zone files for specific cities. Find your city (or a city in your time zone) to use for the instance. In this example, you can use the time zone file for Los Angeles, /usr/share/zoneinfo/America/Los_Angeles.

  2. Update the /etc/sysconfig/clock file with the new time zone.

    1. Open the /etc/sysconfig/clock file with your favorite text editor (such as vim or nano). You need to use sudo with your editor command because /etc/sysconfig/clock is owned by root.

    2. Locate the ZONE entry, and change it to the time zone file (omitting the /usr/share/zoneinfo section of the path). For example, to change to the Los Angeles time zone, change the ZONE entry to the following.

      Copy
      ZONE="America/Los_Angeles"

      注記

      Do not change the UTC=true entry to another value. This entry is for the hardware clock, and does not need to be adjusted when you're setting a different time zone on your instance.

    3. Save the file and exit the text editor.

  3. Create a symbolic link between /etc/localtime and your time zone file so that the instance finds the time zone file when it references local time information.

    Copy
    [ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
  4. Reboot the system to pick up the new time zone information in all services and applications.

    Copy
    [ec2-user ~]$ sudo reboot

ネットワークタイムプロトコル (NTP) の構成

ネットワークタイムプロトコル (NTP) は、デフォルトにより、Amazon Linux インスタンスに構成済みです。ただし、標準 NTP 構成を機能させるには、インスタンスがインターネットにアクセスする必要があります。これに加え、インスタンスのセキュリティグループのルールでは、ポート 123 (NTP) でアウトバウンド UDP トラフィックを許可する必要があります。ネットワーク ACL のルールでは、ポート 123 でインバウンドとアウトバウンドの UDP トラフィックを両方許可する必要があります。このセクションの手順では、デフォルトの NTP 構成が正しく動作していることを確認する方法を示します。インスタンスからインターネットにアクセスできない場合、正確な時刻を維持するために、NTP を構成して、プライベートネットワーク内の別のサーバーにクエリを実行する必要があります。

To verify that NTP is working properly

  1. Use the ntpstat command to view the status of the NTP service on the instance.

    Copy
    [ec2-user ~]$ ntpstat

    If your output resembles the output below, then NTP is working properly on the instance.

    synchronised to NTP server (12.34.56.78) at stratum 3
       time correct to within 399 ms
       polling server every 64 s

    If your output states, "unsynchronised", wait a minute and try again. The first synchronization may take a minute to complete.

    If your output states, "Unable to talk to NTP daemon. Is it running?", you probably need to start the NTP service and enable it to automatically start at boot time.

  2. (Optional) You can use the ntpq -p command to see a list of peers known to the NTP server and a summary of their state.

    Copy
    [ec2-user ~]$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +lttleman.deekay 204.9.54.119 2 u 15 128 377 88.649 5.946 6.876 -bittorrent.tomh 91.189.94.4 3 u 133 128 377 182.673 8.001 1.278 *ntp3.junkemailf 216.218.254.202 2 u 68 128 377 29.377 4.726 11.887 +tesla.selinc.co 149.20.64.28 2 u 31 128 377 28.586 -1.215 1.435

    If the output of this command shows no activity, check whether your security groups, network ACLs, or firewalls block access to the NTP port.

To start and enable NTP

  1. Start the NTP service with the following command.

    Copy
    [ec2-user ~]$ sudo service ntpd start Starting ntpd: [ OK ]
  2. Enable NTP to start at boot time with the chkconfig command.

    Copy
    [ec2-user ~]$ sudo chkconfig ntpd on
  3. Verify that NTP is enabled with the following command.

    Copy
    [ec2-user ~]$ sudo chkconfig --list ntpd ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    Here ntpd is on in runlevels 2, 3, 4, and 5, which is correct.

To change NTP servers

You may decide not to use the standard NTP servers or you may need to use your own NTP server within your private network for instances that do not have Internet access.

  1. Open the /etc/ntp.conf file in your favorite text editor (such as vim or nano). You need to use sudo with the editor command because /etc/ntp.conf is owned by root.

  2. Find the server section, which defines the servers to poll for NTP configuration.

    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    server 0.amazon.pool.ntp.org iburst
    server 1.amazon.pool.ntp.org iburst
    server 2.amazon.pool.ntp.org iburst
    server 3.amazon.pool.ntp.org iburst

    注記

    The n.amazon.pool.ntp.org DNS records are intended to load balance NTP traffic from AWS. However, these are public NTP servers in the pool.ntp.org project, and they are not owned or managed by AWS. There is no guarantee that they are geographically located near your instances, or even within the AWS network. For more information, see http://www.pool.ntp.org/en/.

  3. Comment out the servers you don't want to use by adding a "#" character to the beginning of those server definitions.

    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    #server 0.amazon.pool.ntp.org iburst
    #server 1.amazon.pool.ntp.org iburst
    #server 2.amazon.pool.ntp.org iburst
    #server 3.amazon.pool.ntp.org iburst
  4. Add an entry for each server to poll for time synchronization. You can use a DNS name for this entry or a dotted quad IP address (such as 10.0.0.254).

    Copy
    server my-ntp-server.my-domain.com iburst
  5. Restart the NTP service to pick up the new servers.

    Copy
    [ec2-user ~]$ sudo service ntpd start Starting ntpd: [ OK ]
  6. Verify that your new settings work and that NTP is functioning.

    Copy
    [ec2-user ~]$ ntpstat synchronised to NTP server (64.246.132.14) at stratum 2 time correct to within 99 ms