

# Linux インスタンスのタイムスタンプを比較する
<a name="compare-timestamps-with-clockbound"></a>

Amazon Time Sync Service を使用している場合はAmazon EC2 Linux インスタンスのタイムスタンプと ClockBound を比較して、イベントの実際の時刻を判断できます。ClockBound は EC2 インスタンスのクロック精度を測定し、インスタンスの現在のクロックに関して、特定のタイムスタンプが過去または将来にあるかどうかを確認できます。この情報は各インスタンスの地理的位置に関係なく、EC2 インスタンス間のイベントとトランザクションの順序と一貫性を判断するのに役立ちます。

ClockBound はオープンソースのデーモンとライブラリです。ClockBound の詳細については*GitHub* の[ClockBound](https://github.com/aws/clock-bound)を参照してください。

ClockBound は Linux インスタンスでのみサポートされています。

PTP ハードウェアクロックへの直接 PTP 接続を使用している場合、chrony などのタイムデーモンはクロック誤差範囲を過小評価します。これはPTP ハードウェアクロックが NTP と異なり誤差範囲の正しい情報を chrony に渡さないためです。その結果、クロック同期デーモンはクロックが UTC に対して正確であると想定しているため、`0` という誤差範囲になります。誤差範囲全体を測定するために、Nitro System は PTP ハードウェアクロックの誤差範囲を計算し、ENA ドライバー `sysfs` ファイルシステムを介して EC2 インスタンスで使用できるようにします。これをナノ秒単位の値として直接読み取ることができます。

**PTP ハードウェアクロックエラーバウンドを取得するには**

1. まず、以下のコマンドのいずれかを使用して PTP ハードウェアクロックデバイスの正しい位置を取得します。コマンドのパスはインスタンスの起動に使用される AMI によって異なります。
   + 複数 Amazon Linux 2:

     ```
     cat /sys/class/net/eth0/device/uevent | grep PCI_SLOT_NAME
     ```
   + 複数 Amazon Linux 2023:

     ```
     cat /sys/class/net/ens5/device/uevent | grep PCI_SLOT_NAME
     ```

   出力は PTP ハードウェアクロックデバイスの場所である PCI スロット名です。この例では場所は `0000:00:03.0` です。

   ```
   PCI_SLOT_NAME={{0000:00:03.0}}
   ```

1. PTP ハードウェアクロックのエラー範囲を取得するには次のコマンドを実行します。前の手順で取得した PCI スロット名を指定します。

   ```
   cat /sys/bus/pci/devices/{{0000:00:03.0}}/phc_error_bound
   ```

   出力は PTP ハードウェアクロックのクロック誤差範囲 (ナノ秒単位) です。

PTP ハードウェアクロックへの直接 PTP 接続を使用するときに、特定の時点における正しいクロック誤差範囲を計算するにはPTP ハードウェアクロックをポーリングする時点の「範囲からのクロックエラーバウンド」chrony または「ClockBound」を追加する必要があります。chronyクロック精度の測定とモニタリングの詳細については「[Amazon Time Sync Service と Amazon CloudWatch を使用して Amazon EC2 インスタンスのクロック精度を管理する — パート 1](https://aws.amazon.com/blogs/mt/manage-amazon-ec2-instance-clock-accuracy-using-amazon-time-sync-service-and-amazon-cloudwatch-part-1/)」を参照してください。