【AWS】EC2での時刻同期は Amazon Time Sync Service を使うのがベストプラクティス
🕒 はじめに
AWSのEC2インスタンスを運用していると、date コマンドで表示される時刻が UTC になっていたり、ログのタイムスタンプがずれていることに気づくことがあります。
時刻同期はサーバ運用の基本ですが、AWS環境では 自前でNTPサーバを立てる必要はありません。
AWSには Amazon Time Sync Service が用意されており、これを利用するのが最も安全で運用コストも低い方法です。
✅ Amazon Time Sync Service とは
- AWSが提供する高精度のNTPサーバ群
- GPSクロックや原子時計に同期
- 各リージョンで利用可能
- VPC内から
169.254.169.123という固定アドレスでアクセス可能 - インターネットに出る必要なし
✅ 設定方法(Ubuntu + chrony)
1. chronyのインストール
sudo apt update
sudo apt install chrony -y
2. 設定ファイルの編集
Amazon Time Sync Service を指定します。
echo "server 169.254.169.123 prefer iburst" | sudo tee -a /etc/chrony/chrony.conf
3. 再起動
sudo systemctl restart chrony
✅ 動作確認
chronyc sources -v
出力例:
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 169.254.169.123 3 6 377 34 -123us[ -145us] +/- 520us
-
^*が付いていれば同期できている -
us= マイクロ秒、ms= ミリ秒 - 上記例では 約0.000123秒の誤差 しかなく、非常に高精度に同期
✅ ベストプラクティス
- EC2環境では Amazon Time Sync Service だけに同期先を絞る のが推奨
- 外部NTPサーバは不要
- オンプレや他のクラウドと混在する場合のみ、自前NTPサーバを検討すれば十分
🎯 まとめ
- AWS環境では
169.254.169.123に時刻同期すればOK - 運用負荷を下げつつ、高精度な時刻管理が可能
- サーバ用途でも、アプリケーションログでも、まずはこれで十分