View a markdown version of this page

EC2 インスタンスのタイムリファレンスを、ローカル Amazon Time Sync Service を使用するように設定します。 - Amazon Elastic Compute Cloud

EC2 インスタンスのタイムリファレンスを、ローカル Amazon Time Sync Service を使用するように設定します。

Amazon Time Sync Service には、Amazon EC2 インスタンスがローカルタイムソースと同期するためのいくつかの方法が用意されています。まず、どの Amazon EC2 インスタンスも Network Time Protocol (NTP) を介してローカルタイムソースにアクセスできます。さらに、拡張 Amazon Time Sync Service は、サポートされている Amazon EC2 インスタンスに対して、より高精度のローカルタイムソースを提供します。より高精度の NTP ソースにアクセスする precision-time 戦略を使用して、プレイスメントグループでサポートされているインスタンスを起動します。最後に、高精度タイムプレイスメントグループで起動された Linux インスタンスは、PTP ハードウェアクロック (PHC) デバイスにアクセスし、ハードウェアパケットタイムスタンプを取得できます。

すべての Amazon EC2 インスタンスは、ローカル NTP ソースにアクセスできます。リンクローカル IP アドレスを介して NTP ソースにアクセスできます。これにより、特定の VPC 設定を変更することなく、このトラフィックをお使いの VPC 内に制限できます。AMI は、デフォルトでローカル NTP ソースを使用するようにクロック同期デーモンを設定済みである可能性があります。この NTP ソースは、次の IP アドレスで使用できます。

サポートされている Amazon EC2 インスタンスは、拡張 Amazon Time Sync Service にアクセスできます。拡張 Amazon Time Sync Service にアクセスするには、precision-time 戦略を使用してプレイスメントグループでサポートされているインスタンスを起動します。NTP リンクローカル IP アドレスを使用する場合、拡張機能のメリットを享受するためにインスタンスを設定する必要はありません。どのオペレーティングシステムでもこの拡張機能を使用できます。選択した NTP クライアントを使用して、拡張 NTP ソースのメリットを享受できているかどうかを確認できます。

サポートされているインスタンスファミリーで実行される Linux ベースの AMI には、PHC デバイスからタイムソースを取得する追加オプションがあります。ENA ドライバーはこのデバイスを使用可能にします。拡張 NTP ソースと PHC デバイスの両方が、同じ高精度のタイムソースを使用します。これにより、PHC タイムソースへのアクセスが最適化され、Amazon EC2 インスタンスをより正確に同期できます。

考慮事項

Amazon Time Sync Service の IPv4 エンドポイントにアクセスする

AMI では、Amazon Time Sync Service がデフォルトですでに設定されている可能性があります。それ以外の場合は、次の手順に従って、IPv4 エンドポイントを介してローカル Amazon Time Sync Service を使用するようにインスタンスを設定します。

問題のトラブルシューティングについては、「Amazon EC2 Linux サーバーの NTP 同期の問題をトラブルシューティングする方法を教えてください。」または「EC2 Windows インスタンスの時間に関する問題のトラブルシューティング方法を教えてください。」を参照してください。

Amazon Linux

AL2023 および Amazon Linux 2 の最新バージョンは、デフォルトで Amazon Time Sync Service の IPv4 エンドポイントを使用するように設定されています。インスタンスが既に設定されていることを確認したら、次の手順をスキップできます。

chrony が IPv4 エンドポイントを使用するように設定されていることを確認するには

以下のコマンドを実行してください。出力では、^* から始まる行は優先時刻ソースが示されます。

[ec2-user ~]$ chronyc sources -v | grep -F ^*
^* 169.254.169.123 3 4 377 13 -4325ns[-9201ns] +/- 401us
古いバージョンの Amazon Linux 2 で IPv4 エンドポイントに接続するように chrony を設定するには
  1. インスタンスに接続し、NTP サービスをアンインストールします。

    [ec2-user ~]$ sudo yum erase 'ntp*'
  2. chrony パッケージをインストールします。

    [ec2-user ~]$ sudo yum install chrony
  3. 任意のテキストエディタ (例: /etc/chrony.conf または vim など) を使って nano ファイルを開きます。ファイルに既に存在する他の server ステートメントや pool ステートメントの前に次の行を追加し、変更を保存します。

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  4. chrony デーモン (chronyd) を再起動します。

    [ec2-user ~]$ sudo service chronyd restart
    Starting chronyd: [ OK ]
    注記

    RHEL と CentOS (バージョン 6 まで) ではサービス名は chrony ではなく chronyd です。

  5. システムがブートするたびに起動するように chronyd を設定するにはchkconfig を使用します。

    [ec2-user ~]$ sudo chkconfig chronyd on
  6. chrony が IPv4 エンドポイント 169.254.169.123 を使用して時刻を同期させていることを確認します。

    [ec2-user ~]$ chronyc sources -v | grep -F ^*

    出力では、^* が優先時刻ソースを示します。

    ^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us
  7. chrony で報告された時刻同期メトリクスを確認します。

    [ec2-user ~]$ chronyc tracking
    Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed May 06 00:39:14 2026 System time : 0.000002191 seconds fast of NTP time Last offset : +0.000002164 seconds RMS offset : 0.000082968 seconds Frequency : 3.710 ppm slow Residual freq : +0.002 ppm Skew : 0.504 ppm Root delay : 0.000362541 seconds Root dispersion : 0.000225028 seconds Update interval : 16.1 seconds Leap status : Normal
Ubuntu
Ubuntu の IPv4 エンドポイントに接続するように chrony を設定するには
  1. インスタンスに接続し、apt を使用して chrony パッケージをインストールします。

    ubuntu:~$ sudo apt install chrony
    注記

    必要に応じて、sudo apt update を実行してインスタンスを最初に更新します。

  2. 任意のテキストエディタ (例: /etc/chrony/chrony.conf または vim など) を使って nano ファイルを開きます。ファイルに既に存在する他の server ステートメントや pool ステートメントの前に次の行を追加し、変更を保存します。

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  3. chrony サービスを再起動します。

    ubuntu:~$ sudo /etc/init.d/chrony restart
    Restarting chrony (via systemctl): chrony.service.
  4. chrony が IPv4 エンドポイント 169.254.169.123 を使用して時刻を同期させていることを確認します。

    ubuntu:~$ chronyc sources -v | grep -F ^*

    出力では、^* から始まる行は優先時刻ソースが示されます。

    ^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us
  5. chrony で報告された時刻同期メトリクスを確認します。

    ubuntu:~$ chronyc tracking
    Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed May 06 00:39:14 2026 System time : 0.000002191 seconds fast of NTP time Last offset : +0.000002164 seconds RMS offset : 0.000082968 seconds Frequency : 3.710 ppm slow Residual freq : +0.002 ppm Skew : 0.504 ppm Root delay : 0.000362541 seconds Root dispersion : 0.000225028 seconds Update interval : 16.1 seconds Leap status : Normal
SUSE Linux

SUSE Linux Enterprise Server 15 以降、chrony は NTP にデフォルトで実装されています。

SUSE Linux で IPv4 エンドポイントに接続するように chrony を設定するには
  1. 任意のテキストエディタ (例: /etc/chrony.conf または vim など) を使って nano ファイルを開きます。

  2. ファイルに次の行が含まれていることを確認します。

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

    この行が存在しない場合は追加します。

  3. 他のサーバーまたはプールの行はすべてコメントアウトします。

  4. YaST を開き、chrony サービスを有効にします。

Windows

2018 年 8 月のリリースから、Windows AMI はデフォルトで Amazon Time Sync Service を使用します。これらの AMI から起動されるインスタンスにはこれ以上の設定は不要で、以下の手順はスキップできます。

Amazon Time Sync Service がデフォルトで設定されていない AMI を使用している場合はまず現在の NTP 設定を確認します。インスタンスが既に Amazon Time Sync Service の IPv4 エンドポイントを使用している場合はそれ以上設定する必要はありません。インスタンスが Amazon Time Sync Service を使用していない場合はAmazon Time Sync Service を使用するように NTP サーバーを変更する手順を完了してください。

NTP 設定を確認するには
  1. インスタンスで、コマンドプロンプトウィンドウを開きます。

  2. 次のコマンドを入力して、現在の NTP 設定を取得します。

    w32tm /query /configuration

    このコマンドはWindows インスタンスの現在の設定を返し、Amazon Time Sync Service に接続しているかどうかを表示します。

  3. (オプション) 次のコマンドを入力して、現在の設定のステータスを取得します。

    w32tm /query /status

    このコマンドはインスタンスと NTP サーバーを同期した最終時刻やポーリング間隔などの情報を返します。

NTP サーバーが Amazon Time Sync Service を使用するよう変更するには
  1. コマンドプロンプトウィンドウで、次のコマンドを実行します。

    w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update
  2. 次のコマンドを使用して新しい設定を確認します。

    w32tm /query /configuration

    返される出力で、NtpServer169.254.169.123 IPv4 エンドポイントを表示することを確認します。

Amazon Windows AMI のデフォルトの NTP 設定

Amazon マシンイメージ (AMI) は一般的に、EC2 インフラストラクチャで機能させるために変更が必要な場合を除き、初期状態のデフォルトに準拠しています。以下の設定は仮想化環境で適切に動作するとともに、クロック同期ずれを 1 秒以内の精度に保持するように定められています。

  • 更新間隔 — タイムサービスがシステム時刻を正しくなるように調整する頻度を管理します。AWS は更新間隔を 2 分に 1 回になるように設定します。

  • NTP サーバー — 2018 年 8 月のリリースから、AMI はデフォルトで Amazon Time Sync Service を使用することになりました。このタイムサービスは169.254.169.123 IPv4 エンドポイントにあるすべての AWS リージョン からアクセス可能です。さらに 0x9 フラグはタイムサービスがクライアントとして機能しており、設定されたタイムサーバーを確認する頻度を SpecialPollInterval を使用して決定することを示しています。

  • タイプ – 「NTP」とはサービスがドメインの一部としてではなく、スタンドアロン NTP クライアントとして機能することを意味します。

  • Enabled および InputProvider – タイムサービスが有効で、オペレーティングシステムに時刻が提供されます。

  • 特別なポーリング間隔 – 設定された NTP サーバーを 900 秒 (15 分) ごとに確認します。

    注記

    Windows Server 2025 AMIの場合、SpecialPollInterval 値は 900 秒ではなく 1024 秒になります。

レジストリパス キー名 データ

HKLM:\System\CurrentControlSet\services\w32time\Config

UpdateInterval

120

HKLM:\System\CurrentControlSet\services\w32time\Parameters

NtpServer

169.254.169.123,0x9

HKLM:\System\CurrentControlSet\services\w32time\Parameters

タイプ

NTP

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

有効

1

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

InputProvider

1

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

SpecialPollInterval

900 (Windows Server 2016、2019、および 2022) または 1024 (Windows Server 2025)

Amazon Time Sync Service の IPv6 エンドポイントにアクセスする

このセクションではIPv6 エンドポイントを通じてローカル Amazon Time Sync Service を使用するようにインスタンスを設定する場合、Amazon Time Sync Service の IPv4 エンドポイントにアクセスする で説明した手順と異なる点について説明します。Amazon Time Sync Service の設定プロセス全体について説明しているわけではありません。

IPv6 エンドポイントはNitro ベースのインスタンスでのみアクセス可能です。

IPv4 と IPv6 の両方のエンドポイントエントリを同時に使用することはお勧めしません。IPv4 および IPv6 NTP パケットはインスタンスの同じローカルサーバーから取得されます。IPv4 と IPv6 の両方のエンドポイントを設定する必要はなく、そうしてもインスタンスの時刻の精度は向上しません。

Linux

使用している Linux ディストリビューションに応じて、chrony.conf ファイルを編集するステップに到達すると、IPv4 エンドポイント (169.254.169.123) ではなく、Amazon Time Sync Service の IPv6 エンドポイント (fd00:ec2::123) を使用することになります。

server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4

ファイルを保存してchrony が fd00:ec2::123 IPv6 エンドポイントを使用して時刻を同期させていることを確認します。

[ec2-user ~]$ chronyc sources -v

出力で、fd00:ec2::123 IPv6 エンドポイントが表示されているのを確認したら、設定は完了しています。

Windows

Amazon Time Sync Service を使用するように NTP サーバーを変更するステップに到達すると、IPv4 エンドポイント (169.254.169.123) ではなく、Amazon Time Sync Service の IPv6 エンドポイント (fd00:ec2::123) を使用することになります。

w32tm /config /manualpeerlist:fd00:ec2::123 /syncfromflags:manual /update

新しい設定で fd00:ec2::123 IPv6 エンドポイントが使用されて時刻が同期されていることを確認します。

w32tm /query /configuration

出力で、NtpServerfd00:ec2::123 IPv6 エンドポイントが表示されることを確認します。

拡張 Amazon Time Sync Service にアクセスする

拡張 Amazon Time Sync Service は、サポートされている Amazon EC2 インスタンスに対して、より正確なローカルタイムソースを提供します。precision-time 戦略を使用してプレイスメントグループで起動されたインスタンスは、これらのローカルソースにアクセスできます。リンクローカル NTP ソースまたは Linux インスタンス上の PTP ハードウェアクロック (PHC) デバイスからのより正確な時間を必要とするアプリケーションには、高精度タイムプレイスメントグループの使用をお勧めします。インスタンスを高精度タイムプレイスメントグループ内で起動すると、AWS により、AWS インフラストラクチャ内の高精度タイムソースに直接アクセス可能なサポートされているハードウェア上にインスタンスが配置されます。

主な利点
  • デフォルトでの NTP ソースの強化 – 前のセクションの説明に従い NTP リンクローカル IP アドレスを使用すると、インスタンスは拡張ローカル NTP タイムソースにすぐにアクセスできます。

  • マイクロ秒精度クロック同期 – Amazon EC2 Linux インスタンスの設定により、PTP ハードウェアクロックデバイスを使用してマイクロ秒精度クロック同期を達成できます。

  • デプロイの簡素化 – 単一プレイスメント戦略により、すべてのインスタンスで正確な時間機能を保証できます。

  • ハードウェアパケットタイムスタンプ – ネットワーク測定値の低レベルパケットタイムスタンプにアクセスできます。

  • 追加コストなし – 高精度タイムプレイスメントグループは追加料金なしで利用できます。

ルールと制限
  • 高精度タイムプレイスメントグループは、すべての AWS 商用リージョンで利用できます。

  • 高精度タイムプレイスメントグループは、Gen7 以降の以下の Amazon EC2 インスタンスファミリーをサポートしています。

    • 汎用: M7a、M7g、M7g-flex、M7gd、M7i、M7i-flex、M8a、M8g、M8g-flex

    • コンピューティング最適化: C7a、C7gd、C7i、C7i-flex、C8g、C8g-flex、C8gd

    • メモリ最適化: R7a、R7g、R7i、R7id、R8g、X8adez、X8adz-3tb、X8adz-6tb、X8adzs、X8aedez、X8aedz-3tb、X8aedz-6tb、X8aez、X8az、X8g、X8ge

    • ストレージ最適化: I8g、I8ge

  • 高精度タイムプレイスメントグループでインスタンスを開始または起動した時に、拡張 Amazon Time Sync Service へのアクセスを許可するハードウェアが不十分な場合、リクエストは失敗します。

  • 高精度タイムプレイスメントグループ内のインスタンスをいったん停止して再起動しても、そのインスタンスは同じプレイスメントグループ内で実行されます。ただし、拡張 Amazon Time Sync Service へのアクセスを許可するハードウェアが不十分な場合、開始が失敗することがあります。

  • Amazon EC2 は、拡張 Amazon Time Sync Service をサポートするハードウェアを継続的に追加しています。容量不足が原因でリクエストが失敗した場合は、後で再試行するか、別のアベイラビリティーゾーンを試してください。詳細については、「Amazon EC2 インスタンスの起動に関する問題のトラブルシューティング」を参照してください。

  • プレイスメントグループのルールと制限が適用されます。詳細については、Amazon EC2 インスタンスのプレイスメントグループを参照してください。

高精度タイムプレイスメントグループを作成する

AWS CLI、AWS マネジメントコンソール、または AWS SDK を使用して precision-time 戦略を指定することで、高精度タイムプレイスメントグループを作成できます。

AWS CLI を使用する

次のコマンドを実行します。

aws ec2 create-placement-group \ --group-name my-precision-time-pg \ --strategy precision-time

コマンドは、キャパシティ予約の作成時に使用するプレイスメントグループ ARN と、インスタンスの起動時およびプレイスメントグループのリンク時に使用するグループ名またはグループ ID を返します。

インスタンスの起動

高精度タイムプレイスメントグループを作成したら、インスタンスを起動するときにそのグループを指定して、拡張 Amazon Time Sync Service にアクセスします。

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type r7g.2xlarge \ --placement GroupId=pg-0aaa1111111111111

拡張 Amazon Time Sync Service へのアクセスを確認する

高精度タイムプレイスメントグループでインスタンスを起動すると、拡張 NTP タイムソースのメリットを享受できます。

例えば、インスタンスで chronyd デーモンを使用すると NTP タイムソースが Stratum 1 と表示され、クロック精度メトリクスが改善されたことを確認できます。

[ec2-user ~]$ chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 1 4 377 3 +3477ns[+4689ns] +/- 91us

chrony で報告された時刻同期メトリクスを確認します。

[ec2-user ~]$ chronyc tracking
Reference ID : A9FEA97B (169.254.169.123) Stratum : 2 Ref time (UTC) : Wed May 06 01:33:43 2026 System time : 0.000000276 seconds fast of NTP time Last offset : +0.000000331 seconds RMS offset : 0.000001929 seconds Frequency : 2.870 ppm fast Residual freq : +0.000 ppm Skew : 0.031 ppm Root delay : 0.000107584 seconds Root dispersion : 0.000036476 seconds Update interval : 16.2 seconds Leap status : Normal

PTP ハードウェアクロック (PHC) にアクセスする

PTP ハードウェアクロック (PHC) は AWS Nitro System の一部です。高精度タイムプレイスメントグループで起動された、サポートされているベアメタルおよび仮想化された Amazon EC2 インスタンスから直接アクセスできます。PHC デバイスには、現在 Linux インスタンスでのみアクセスできます。以下のセクションでは、Linux インスタンスで PHC デバイスを設定および確認する方法について説明します。

要件

  • ENA ドライバーバージョン 2.10.0 以降がサポート対象のオペレーティングシステムにインストールされている。

  • Linux を実行する Amazon EC2 インスタンス。サポート対象のオペレーティングシステムの詳細についてはGitHub でドライバーの「前提条件」を参照してください。

  • 高精度タイムプレイスメントグループで起動された Amazon EC2 インスタンス (「拡張 Amazon Time Sync Service にアクセスする」を参照)。

注記

拡張 Amazon Time Sync Service と PHC デバイスは、次のリージョンおよび特定のインスタンスファミリーでは、高精度タイムプレイスメントグループなしでアクセス可能です。ただし、最良のエクスペリエンスを得るには、高精度プレイスメントグループで Amazon EC2 インスタンスを起動することをお勧めします。

  • レガシーアクセスでサポートされる AWS リージョン: 米国東部 (バージニア北部)、米国東部 (オハイオ)、アジアパシフィック (マレーシア)、アジアパシフィック (タイ)、アジアパシフィック (東京)、欧州 (ストックホルム)

  • レガシーアクセスでサポートされるローカルゾーン: 米国東部 (ニューヨークシティ)

  • レガシーアクセスでサポートされるインスタンスファミリー:

    • 汎用: M7a、M7g、M7i

    • メモリ最適化: R7a、R7g、R7i

    • ストレージ最適化: I8g、I8ge

PHC サポート付きで ENA ドライバーをコンパイルして有効にする

お使いのオペレーティングシステム固有の情報については、GitHub の「ENA ドライバードキュメント」内の最新 Elastic Network Adapter (ENA) ドライバーバージョン向け最新手順を必ず確認してください。以下が Amazon Linux 向け手順の概要になります。

開始する前に、インスタンスが 要件 を満たしていることを確認してください。

PHC サポート付きで ENA ドライバーをコンパイルして有効にするには
  1. インストール条件

    [ec2-user ~]$ sudo yum update [ec2-user ~]$ sudo yum install kernel-devel-$(uname -r) git [ec2-user ~]$ sudo reboot
  2. 必要な ptp モジュールをロードします。

    [ec2-user ~]$ sudo modprobe ptp
  3. 最新の ENA ドライバーバージョン (バージョン 2.10.0 以降) を取得します。

    [ec2-user ~]$ git clone https://github.com/amzn/amzn-drivers.git /tmp/amzn-drivers
  4. PHC サポート付きで ENA ドライバー ena.ko を構築します。

    [ec2-user ~]$ cd /tmp/amzn-drivers/kernel/linux/ena [ec2-user ~]$ ENA_PHC_INCLUDE=1 make
  5. ENA ドライバーを再ロードし、PHC デバイスを有効にします。

    [ec2-user ~]$ sudo rmmod ena && sudo insmod ena.ko phc_enable=1
  6. ロードされた ENA ドライバーが PHC をサポートしていることを確認します。

    [ec2-user ~]$ modinfo ena | grep -E "phc_enable"
    parm: phc_enable:Enable PHC.
  7. ENA ドライバーで PHC サポートが有効になっていることを確認します。

    [ec2-user ~]$ cat /sys/module/ena/parameters/phc_enable
    1

ドライバーをインストールし、再起動時に phc_enable オプションを有効にする手順については、「GitHub」の「ENA ドライバーに関する README」を参照してください。

PTP デバイス設定を確認する

ENA PTP ハードウェアクロックデバイスがインスタンスに表示されていることを確認します。

[ec2-user ~]$ for file in /sys/class/ptp/*; do echo -n "$file: "; cat "$file/clock_name"; done

正常な出力

/sys/class/ptp/ptp<index>: ena-ptp-<PCI slot>

説明は以下のとおりです。

  • index は、カーネルに登録されている PTP ハードウェアクロックインデックスです。

  • PCI slot は ENA イーサネットコントローラー PCI スロットです。これは、「lspci | grep ENA」に示されているのと同じスロットです。

出力の例

/sys/class/ptp/ptp0: ena-ptp-05

出力に ena-ptp-<PCI slot> が表示されない場合はENA ドライバーが正しくインストールされていません。PHC サポート付きで ENA ドライバーをコンパイルして有効にする のステップを確認します。

PTP デバイスの名前は通常 /dev/ptp0/dev/ptp1 などで、ハードウェアの初期化順序に応じてインデックスが付けられます。シンボリックリンクを作成することで、chrony などのアプリケーションは、インデックスの変更に関係なく、常に正しいデバイスを参照できます。

最新の Amazon Linux 2023 AMI には、ENA ホストに関連付けられた正しい /dev/ptp エントリを指す /dev/ptp_ena シンボリックリンクを作成する udev ルールが含まれています。

まず、次のコマンドを実行して、シンボリックリンクが存在するかどうかをチェックします。

[ec2-user ~]$ ls -l /dev/ptp*

出力の例

crw------- 1 root root 245, 0 Jan 31 2025 /dev/ptp0 lrwxrwxrwx 1 root root 4 Jan 31 2025 /dev/ptp_ena -> ptp0

説明は以下のとおりです。

  • /dev/ptp<index> は PTP デバイスへのパスです。

  • /dev/ptp_ena は、同じ PTP デバイスを指す定数シンボリックリンクです。

/dev/ptp_ena シンボリックリンクが存在する場合は、「PHC デバイスを使用するように chronyd デーモンを設定する」に進みます。シンボリックリンクが欠落している場合は、以下を実行します。

PTP シンボリックリンクを作成するには
  1. udev ルールを追加します。

    [ec2-user ~]$ echo "SUBSYSTEM==\"ptp\", ATTR{clock_name}==\"ena-ptp-*\", SYMLINK += \"ptp_ena\"" | sudo tee -a /etc/udev/rules.d/53-ec2-network-interfaces.rules
  2. インスタンスを再起動するか、次のコマンドを実行して、udev ルールを再ロードします。

    [ec2-user ~]$ sudo udevadm control --reload-rules && sudo udevadm trigger

PHC デバイスを使用するように chronyd デーモンを設定する

chronyd クロック同期デーモンは、PHC デバイスを、/dev/ptp_ena シンボリックリンクを使用してデバイスを識別する追加のタイムソースとして使用するように設定する必要があります。

PHC デバイスを使用するように chronyd デーモンを設定するには
  1. テキストエディタを使用して /etc/chrony.conf を編集し、次の行を追加します。

    refclock PHC /dev/ptp_ena poll 0 delay 0.000010 prefer
  2. chrony を再起動します。

    [ec2-user ~]$ sudo systemctl restart chronyd
  3. chrony が PTP ハードウェアクロックを使用していることを確認します。PHC0 デバイスは、Stratum 0 値を持つ優先タイムソースである必要があります。ローカル NTP タイムソース (設定されている場合) には、Stratum 1 値が必要です。

    [ec2-user ~]$ chronyc sources
    MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 0 377 0 +184ns[ +198ns] +/- 5032ns ^- 169.254.169.123 1 4 377 8 -18us[ -18us] +/- 115us

ハードウェアパケットタイムスタンプを確認する

PHC サポート付きでロードされた ENA ドライバーは、ハードウェアパケットタイムスタンプへのアクセスを提供します。ethtool -T interface コマンドを使用して、この機能のサポートを確認できます。

ハードウェアパケットタイムスタンプの使用の詳細については、「Linux のパケットタイムスタンプに関するドキュメント」を参照してください。

[ec2-user ~]$ sudo ethtool -T ens5
Time stamping parameters for ens5: Capabilities: software-transmit hardware-receive software-receive software-system-clock PTP Hardware Clock: 0 Hardware Transmit Timestamp Modes: none Hardware Receive Filter Modes: none all

出力が機能リストの hardware-receive に表示されている場合、ハードウェアパケットタイムスタンプはお使いのインスタンスで使用できます。