Amazon Time Sync Serviceのマイクロ秒精度時刻同期の対応インスタンスが追加されたのでPHCを試してみた
はじめに
2026年6月30日、Amazon Time Sync Serviceのマイクロ秒精度時刻同期が26の追加インスタンスタイプで全商用リージョンに対応しました。
対応インスタンスでは、Enhanced NTP(Stratum 1)とPTP Hardware Clock(PHC)による高精度な時刻同期が利用できます。AWSはマイクロ秒精度の時刻同期を提供するとしており、従来のミリ秒オーダーからの大幅な改善で、追加コストはかかりません。
以下に通常のTime SyncとEnhanced Time Syncの違いをまとめます。
| 項目 | 通常の Time Sync | Enhanced Time Sync |
|---|---|---|
| NTP Stratum | 3〜4 | 1 |
| 時刻精度 | ミリ秒オーダー | マイクロ秒オーダー |
| PHC デバイス | なし | あり(Linux のみ) |
| PHC 同期時の Stratum | — | 0(sources表示。tracking上のシステムStratumは1) |
| ハードウェアタイムスタンプ | なし | あり(Linux のみ) |
| 追加コスト | なし | なし |
対応インスタンスファミリー
What's Newでは「26 additional EC2 instance types」と記載されています。以下はAWSドキュメントに掲載されている、今回の追加分を含む対応済みインスタンスファミリーの全体です。
- General purpose: M7a, M7g, M7g-flex, M7gd, M7i, M7i-flex, M8a, M8g, M8g-flex
- Compute optimized: C7a, C7gd, C7i, C7i-flex, C8g, C8g-flex, C8gd
- Memory optimized: R7a, R7g, R7i, R7id, R8g, X8adez, X8adz-3tb, X8adz-6tb, X8adzs, X8aedez, X8aedz-3tb, X8aedz-6tb, X8aez, X8az, X8g, X8ge
- Storage optimized: I8g, I8ge
Gen7以降の主要ファミリーが幅広くカバーされており、Graviton(g系)・Intel(i系)・AMD(a系)いずれでも利用できます。
検証環境
| 項目 | 値 |
|---|---|
| リージョン | ap-northeast-1 |
| インスタンスタイプ | m8g.medium |
| AMI | Amazon Linux 2023 (arm64) |
| ENA ドライバ | 2.17.1g(プリインストール、PHC 対応) |
Enhanced NTP (Stratum 1) の動作確認
chronyc sources でNTPソースを確認します。
$ chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 169.254.169.123 1 4 77 7 -164ns[ -882ns] +/- 87us
NTP Stratumが1で同期されています。NTPソースがStratum 1のため、同期するインスタンス自身のStratumはchronyc tracking上で2となります。通常のインスタンスではソースがStratum 3〜4になるため、Enhanced Time Syncの有効化を確認できました。
chronyc tracking で詳細な精度メトリクスも確認します。
$ chronyc tracking
(抜粋)
Stratum : 2
System time : 0.000000608 seconds slow of NTP time
Root delay : 0.000134967 seconds
Root dispersion : 0.000030842 seconds
chronyc tracking上では、System timeがNTP時刻に対して約608ns、Root delayが約135µsと表示されました。chronydの推定値ではありますが、Enhanced NTPが低いオフセットで動作していることを確認できます。
PHC デバイスの有効化
Enhanced Time Sync対応インスタンスでは、ENAドライバのPHC機能を有効化することで、PTP Hardware Clockによる更に高精度な時刻同期が利用できます。PHCはLinuxインスタンスのみで利用可能です(WindowsインスタンスはEnhanced NTP (Stratum 1) まで)。
ENA ドライバの PHC 有効化
ENAドライバのバージョンを確認し、phc_enable=1 パラメータを指定してドライバを再ロードします。
$ modinfo ena | grep version
version: 2.17.1g
ENAドライバ2.17.1gがPHCに対応しています。再ロードします。
$ sudo modprobe -r ena && sudo modprobe ena phc_enable=1
PHC デバイスの確認
ドライバ再ロード後、PTPデバイスが出現していることを確認します。
$ cat /sys/class/ptp/ptp0/clock_name
ena-ptp-00
ena-ptp-00 という名前のPHCデバイスが認識されました。
chrony に PHC refclock を設定
chronyの設定ファイルにPHC refclockを追加します。
$ sudo tee -a /etc/chrony.conf <<'EOF'
refclock PHC /dev/ptp0 poll 0 delay 0.000010 prefer
EOF
$ sudo systemctl restart chronyd
各パラメータの意味は以下のとおりです。
poll 0: 1秒間隔でのポーリングdelay 0.000010: refclockの距離計算に用いる想定遅延(10µs)prefer: 複数ソースがある場合にこのPHCを優先
PHC 同期後の確認
chronyを再起動してしばらく待つと、PHCが優先ソースとして選択されます。
$ chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
#* PHC0 0 0 377 1 +27ns[+1265ns] +/- 5030ns
^- 169.254.169.123 1 4 17 4 -4559ns[ -816ns] +/- 92us
PHC0がStratum 0で同期されており、NTPソース(169.254.169.123)はバックアップとして維持されています。PHC0のLast sampleは +27ナノ秒、推定誤差は ±5030ns と表示され、NTPソースの±87µsより小さい誤差範囲として確認できました。
chronyc tracking も確認します。
$ chronyc tracking
(抜粋)
Stratum : 1
System time : 0.000000002 seconds fast of NTP time
Root delay : 0.000010000 seconds
Root dispersion : 0.000003555 seconds
PHC(Stratum 0)に同期しているため、chronyc tracking上のシステムStratumは1と表示されています。chronyc tracking上の推定値では、System timeのoffsetが約2ナノ秒、Root dispersionが約3.5マイクロ秒と表示されました。今回の測定では、Enhanced NTP単体でのoffset 608nsからPHC有効化後の2nsへと大きく縮小しています。
まとめ
Amazon Time Sync Serviceのマイクロ秒精度時刻同期の対応対象が拡大され、Gen7〜Gen8の複数の主要インスタンスファミリー/タイプで利用できるようになりました。
今回の検証では、Amazon Linux 2023のデフォルト設定でNTPソースがStratum 1として表示されることを確認しました。さらにPHCを有効化すると、chrony上の推定オフセットがナノ秒オーダーで表示されることも確認できました。
分散データベースの時刻管理や複数ホスト間のログ相関など、厳密な時刻同期が求められるワークロードで活きる機能です。







