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

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

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

Important

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

時間帯の変更

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

インスタンスの時間帯を変更するには

  1. インスタンスで使用する時間帯を特定します。/usr/share/zoneinfo ディレクトリには、時間帯データファイルの階層が含まれています。その場所でディレクトリ構造を閲覧し、お客様の時間帯のファイルを見つけます。

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

    この場所にある一部のエントリはディレクトリです(America など)。そのディレクトリには、特定の都市の時間帯ファイルが含まれています。インスタンスに使用する都市(またはお客様の時間帯と同じ都市)を見つけます。この例では、ロサンゼルスの時間帯ファイル(/usr/share/zoneinfo/America/Los_Angeles)を使用できます。

  2. /etc/sysconfig/clock ファイルを新しい時間帯で更新します。

    1. お好みのテキストエディタ(vimnano など)で /etc/sysconfig/clock ファイルを開きます。エディターコマンドで sudo を使用する必要があります。/etc/sysconfig/clockroot が所有するためです。

    2. ZONE エントリを見つけて、それを時間帯ファイルに変更します(パスの /usr/share/zoneinfo セクションは省略します)。たとえば、ロサンゼルスの時間帯に変更するには、ZONE エントリを次のように変更します。

      ZONE="America/Los_Angeles"

      Note

      UTC=true エントリを別の値に変更しないでください。このエントリは、ハードウェアクロックに使用されるため、インスタンスで別のタイムゾーンを設定する場合は調整する必要はありません。

    3. ファイルを保存し、テキストエディタを終了します。

  3. インスタンスが現地時間情報を参照するとき、時間帯ファイルを見つけられるように、/etc/localtime と時間帯ファイルの間にシンボリックリンクを作成します。

    [ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
  4. システムを再起動し、すべてのサーバーとアプリケーションで新しい時間帯情報を取得します。

    [ec2-user ~]$ sudo reboot

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

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

NTP が適切に動作していることを確認するには

  1. インスタンスの NTP サービスのステータスを表示するには、ntpstat コマンドを使用します。

    [ec2-user ~]$ ntpstat

    出力が次のような場合、インスタンスの NTP は適切に動作しています。

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

    出力ステータスが「unsynchronised」の場合、1 分待ってから再試行してください。最初の同期が完了するまで、1 分かかることがあります。

    出力に "Unable to talk to NTP daemon. Is it running?" と示されている場合、NTP サービスを起動して、ブート時に自動的に開始できるようにする必要があります。

  2. (オプション)NTP サーバーが認識しているピアとその状態の概要を表示するには、ntpq -p コマンドを使用します。

    [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

    このコマンドの出力にアクティビティが表示されない場合は、セキュリティグループ、ネットワーク ACL、またはファイアウォールが NTP ポートへのアクセスをブロックしているかどうか確認してください。

NTP を起動して有効にするには

  1. 次のコマンドを使って NTP サービスを起動します。

    [ec2-user ~]$ sudo service ntpd start
    Starting ntpd:                                             [  OK  ]
  2. chkconfig コマンドを使って、ブート時に NTP を開始できるようにします。

    [ec2-user ~]$ sudo chkconfig ntpd on
  3. 次のコマンドを使って、NTP が有効であることを確認します。

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

    ここでは実行レベル 2、3、4、および 5 で ntpd がオンになっており、これは適正です。

NTP サーバーを変更するには

標準 NTP サーバーを使用しないようにすることも、インターネットアクセスを持たないインスタンスに対して、プライベートネットワーク内にあるご自分の NTP サーバーを使用することもできます。

  1. お好みのテキストエディタ(vimnano など)で、/etc/ntp.conf ファイルを開きます。/etc/ntp.conf が所有しているため、エディタコマンドで sudoroot を使用する必要があります。

  2. server セクションを探します。このセクションは、NTP 構成に対してポーリングするサーバーを定義します。

    # 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

    Note

    n.amazon.pool.ntp.org DNS レコードは AWS からの NTP トラフィックの負荷分散を目的としています。ただし、これらは pool.ntp.org プロジェクトの公開 NTP サーバーであり、AWS が所有または管理するものではありません。お客様のインスタンスと地理的に近い場所にある、また AWS ネットワーク内にあることを保証するものではありません。詳細については、http://www.pool.ntp.org/en/ を参照してください。

  3. 使用しないサーバー定義の先頭に「#」文字を追加して、使用しないサーバーをコメントアウトします。

    # 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. 時刻同期のポーリング用に、各サーバーのエントリを追加します。このエントリには DNS 名を使用することも、ドット区切りの IP アドレス(10.0.0.254 など)を使用することもできます。

    server my-ntp-server.my-domain.com iburst
  5. NTP サービスを再起動して、新しいサーバーを選択します。

    [ec2-user ~]$ sudo service ntpd start
    Starting ntpd:                                             [  OK  ]
  6. 新しい設定が動作すること、また、NTP が機能していることを確認します。

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