メニュー
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 (協定世界時間) 時間帯に設定されていますが、インスタンスの時間を現地時間またはネットワークの別の時間帯に変更したい場合があるでしょう。

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

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

    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 ...
    この場所にある一部のエントリはディレクトリです (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 エントリを次のように変更します。

      Copy
      ZONE="America/Los_Angeles"

      注記

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

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

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

    Copy
    [ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

  4. システムを再起動し、すべてのサーバーとアプリケーションで新しい時間帯情報を取得します。

    Copy
    [ec2-user ~]$ sudo reboot

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

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

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

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

    Copy
    [ec2-user ~]$ ntpstat
    出力が次のような場合、インスタンスの NTP は適切に動作しています。
    Copy
    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 コマンドを使用します。

    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

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

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

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

    Copy
    [ec2-user ~]$ sudo service ntpd start Starting ntpd: [ OK ]

  2. chkconfig コマンドを使って、ブート時に NTP を開始できるようにします。

    Copy
    [ec2-user ~]$ sudo chkconfig ntpd on

  3. 次のコマンドを使って、NTP が有効であることを確認します。

    Copy
    [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 構成に対してポーリングするサーバーを定義します。

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

    注記

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

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

    Copy
    # 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 など) を使用することもできます。

    Copy
    server my-ntp-server.my-domain.com iburst

  5. NTP サービスを再起動して、新しいサーバーを選択します。

    Copy
    [ec2-user ~]$ sudo service ntpd start Starting ntpd: [ OK ]

  6. 新しい設定が動作すること、また、NTP が機能していることを確認します。

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