AWSの時刻同期はどうする?Amazon Time Sync Serviceの確認・設定方法を解説

目次

はじめに

「AWS上のEC2インスタンスは、どうやって時刻を合わせればいいの?」
「Amazon Time Sync Serviceが使われているか、どのコマンドで確認すればいい?」と迷っていませんか。

サーバーのログを確認したときに時刻がずれていたり、chronyやNTPの設定ファイルを開いても、どの時刻同期先を指定すればよいのか分からず迷うことがありますよね。

この記事では、現在の時刻同期状態を確認する方法から、Amazon Time Sync Serviceの設定、正しく同期できない場合の確認ポイントまで紹介します。

AWSの時刻同期はAmazon Time Sync Serviceを利用する

AWS上でEC2インスタンスの時刻を合わせる場合は、AWSが提供するAmazon Time Sync Serviceを利用できます。

主要なAMIでは時刻同期に必要な設定があらかじめ用意されているため、まず現在の同期状態を確認してから設定変更が必要か判断します。

EC2ではAmazon Time Sync Serviceで時刻を同期できる

EC2では、Amazon Time Sync Serviceを使ってOSのシステム時刻を同期できます。

chronyなどの時刻同期ソフトウェアがサービスから時刻を取得し、ずれが生じないよう継続的に調整します。

時刻が正しく同期されているか気になる場合は、サービスへの接続状況や同期状態を確認しましょう。

主要なAMIでは時刻同期があらかじめ設定されている

主要なAWS提供AMIでは、Amazon Time Sync Serviceを利用するための設定があらかじめ用意されています。

そのため、EC2を起動したら新しく設定を追加する前に、chronyなどの時刻同期サービスが正常に動作しているか確認しましょう。

問題なく同期されていれば、基本的にはそのまま利用できます。

EC2で時刻同期できているか確認する方法

EC2の時刻同期を確認する場合は、chronycコマンドを使って現在の同期先と同期状態を確認します。

時刻がずれている場合は、chronyの設定内容やサービスの稼働状態、同期先への接続状況を順番に確認します。

chronycで同期先と同期状態を確認する

EC2へログインして「chronyc sources -v」を実行すると、chronyが参照している時刻同期先を確認できます。

続けて「chronyc tracking」を実行し、基準となる時刻やシステム時刻とのずれも確認しましょう。

同期先が正しく選択され、時刻のずれが調整されていれば、chronyは正常に動作しています。

時刻がずれている場合に確認するポイント

EC2の時刻がずれている場合は、「systemctl status chronyd」を実行し、まずchronyが起動しているか確認します。

サービスが動いている場合は、設定ファイルでAmazon Time Sync Serviceの同期先を確認し、「chronyc sources -v」で正常に時刻情報を取得できているか見ていきましょう。

chronyが起動しているのに時刻が合わない場合は、NTPの通信に必要なポートがネットワーク側で制限されていないかも確認しておくと安心です。
▶NTPのポート番号は?UDP 123の通信と確認方法を解説

EC2でAmazon Time Sync Serviceを設定する方法

EC2でAmazon Time Sync Serviceを利用する設定方法は、LinuxとWindows Serverで異なります。

Windows ServerではWindows Timeサービスの同期先を設定し、Amazon Time Sync Serviceと時刻を合わせられる状態にします。

Linuxでchronyを使って時刻同期を設定する

Linuxではchronyの設定ファイルを開き、Amazon Time Sync Serviceの「169.254.169.123」を同期先に指定します。

設定を保存したら「systemctl restart chronyd」でchronydを再起動し、変更を反映させましょう。

最後に「chronyc sources -v」を実行し、正しく同期できているか確認します。

chronycの結果を見ても正常に同期できているのか判断しにくい場合は、表示項目の意味を確認しながら状態を切り分けてみましょう。
▶chronyc sourcesの見方は?表示項目と時刻同期の確認方法を解説

Windows Serverで時刻同期を設定する

Windows Serverでは、管理者権限でコマンドプロンプトまたはPowerShellを開き、Windows Timeサービスの同期先に「169.254.169.123」を指定します。

設定を反映して時刻を再同期したら、「w32tm /query /status」や「w32tm /query /peers」を実行し、同期先と現在の状態を確認しましょう。

AWSマネージドサービスでは時刻同期を利用者が設定する必要があるか

AWSマネージドサービスでは、EC2のように利用者がOSの時刻同期を設定する必要がないサービスがあります。

EC2ではOSを利用者が管理するため、時刻同期の設定や同期状態を確認する範囲がマネージドサービスとは異なります。

LambdaやFargateでは基盤の時刻同期をAWS側が管理する

LambdaやFargateでは、関数やコンテナを動かす基盤の時刻同期をAWS側が管理しています。

そのため、利用者が基盤OSへログインしてchronyを設定したり、時刻同期サービスを起動したりする必要はありません。

EC2とは異なり、OSレベルの時刻同期は基本的にAWSへ任せられます。

EC2とマネージドサービスで利用者が管理する範囲は異なる

EC2では利用者がOSを管理するため、chronyの設定やサービスの稼働状態、同期先などを確認します。

一方、マネージドサービスでは基盤OSをAWSが管理しており、利用者が時刻同期を設定する必要はありません。

利用するサービスによって、どこまで自分で管理するのかを分けて考えると分かりやすいでしょう。

より高精度な時刻同期が必要な場合はPTPも利用できる

Amazon Time Sync Serviceでは、NTPに加えて、より高精度なPTP(Precision Time Protocol)による時刻同期も利用できます。

PTPを使う場合は、対応するEC2インスタンスタイプやENAドライバーなどの条件を確認し、LinuxではPHCを参照するように設定します。

より小さな時刻誤差が求められる環境では、利用中の構成がPTPに対応しているか確認してから設定を進めましょう。

まとめ

AWSで時刻同期を行うときは、利用するサービスによって管理する範囲が異なります。

EC2ではAmazon Time Sync Serviceを利用できるため、まずchronyなどの同期状態を確認し、必要に応じて設定を見直してみましょう。

一方、LambdaやFargateでは基盤の時刻同期をAWS側が管理するため、EC2と同じ設定は必要ありません。

通常はNTPによる同期で対応できますが、より高い精度が求められる場合はPTPも選択肢に入れながら、用途に合った方法を選んでみてください。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次