

# EC2 インスタンス上の正確なクロックと時刻の同期
<a name="set-time"></a>

多くのサーバータスクとプロセスにとって、Amazon EC2 インスタンスでの一貫して正確な時刻のリファレンスが不可欠です。システムログのタイムスタンプは問題が発生した時期やイベントの時系列を特定する上で重要な役割を果たします。AWS CLI または AWS SDK を使用してインスタンスからリクエストを行う際に、これらのツールによって自動的にリクエストに署名されます。インスタンスの日時設定が不正確な場合、署名の日付とリクエストの日付が一致しないことがあり、その場合は AWS がリクエストを却下します。

これに対処することが重要なため、Amazon は Amazon Time Sync Service を提供しています。このサービスはすべての EC2 インスタンスからアクセスでき、さまざまな AWS のサービス で利用されます。このサービスは各 AWS リージョン で衛星接続された基準となる原子時計のフリートを使用して、世界標準時 (UTC) の正確な現在時刻表示を配信します。

最高のパフォーマンスを得るにはEC2 インスタンスで[ローカル Amazon Time Sync Service](configure-ec2-ntp.md) を使用することをお勧めします。インスタンスのローカル Amazon Time Sync Service へのバックアップのために、または Amazon EC2 外部のリソースの Amazon Time Sync Service に接続するために、`time.aws.com` にある[パブリック Amazon Time Sync Service](configure-time-sync.md) を使用できます。パブリック Amazon Time Sync Service はローカル Amazon Time Sync Service と同様に UTC に追加されたうるう秒の Leap Smearing を自動的に行います。パブリック Amazon Time Sync Service は各 AWS リージョン で衛星接続された基準となる原子時計のフリートにより、世界中でサポートされています。

## ハードウェアパケットタイムスタンプ
<a name="hardware-packet-timestamping"></a>

インスタンスでハードウェアパケットタイムスタンプを有効にして、すべての受信ネットワークパケットに 64 ビットのナノ秒精度のタイムスタンプを追加できます。ハードウェアパケットのタイムスタンプは、パケットがカーネル、ソケット、またはアプリケーションレイヤーに到達する前にハードウェアレベルで発生するため、ソフトウェアのタイムスタンプによって追加される遅延が回避されます。ハードウェアタイムスタンプの基盤となるリファレンスクロックは、Amazon Time Sync Service [PTP ハードウェアクロック](configure-ec2-ntp.md#connect-to-the-ptp-hardware-clock)です。

**利点**

ハードウェアパケットのタイムスタンプには、次の利点があります。
+ イベントの順序付けが改善されます。これは、パケットが EC2 インスタンスに到着する実際の順序を決定して公平なパケット処理を確保するためにも使用できます。
+ 一方向ネットワークレイテンシーを測定します。
+ ほとんどのオンプレミスソリューションと比較して、より高い精度と正確性で分散トランザクションの速度が向上します。

**設定の前提条件**

ハードウェアパケットのタイムスタンプを有効にするには、インスタンスが次の前提条件を満たす必要があります。
+ Linux インスタンスである必要があります。
+ [PTP ハードウェアクロックをサポートする要件](configure-ec2-ntp.md#ptp-hardware-clock-requirements)を満たす必要があります。

設定手順については、**GitHub の「**Linux kernel driver for Elastic Network Adapter (ENA) family**」ページの「[Hardware Packet Timestamping](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#hardware-packet-timestamping)」を参照してください。

## うるう秒
<a name="leap-seconds"></a>

1972 年に導入されたうるう秒は国際原子時 (TAI) と太陽時 (Ut1) の違いに対応するため、地球の自転の不規則性を考慮して UTC 時刻をときどき 1 秒調整するものです。お客様に代わってうるう秒を管理するために、当社は Amazon Time Sync Service 内での Leap Smearing を設計しました。詳細については「[うるう秒に備える — 迫り来るうるう秒と AWS](https://aws.amazon.com/blogs/aws/look-before-you-leap-the-coming-leap-second-and-aws/)」を参照してください。

うるう秒はなくなりつつあります。当社は[2035 年までにうるう秒を廃止するという第 27 回国際度量衡総会](https://www.bipm.org/en/cgpm-2022/resolution-4)で採択された決議を全面的に支持しています。

この移行をサポートするために、ローカル NTP 接続または当社のパブリック NTP プール (`time.aws.com`) 経由で Amazon Time Sync Service にアクセスする場合、うるう秒の発生中に Leap Smearing を引き続き計画しています。ただし、PTP ハードウェアクロックには Leap Smearing のオプションはありません。うるう秒が発生した場合、PTP ハードウェアクロックは UTC 標準に従ってうるう秒を追加します。Leap Smearing を行う時刻の供給元とうるう秒を挿入する時刻の供給元はほとんどの場合同様です。ただし、うるう秒の発生中は両者が異なるため、うるう秒の発生中はタイムクライアントの設定で Leap Smearing を行う時刻の供給元と行わない時刻の供給元の両方を使用することはお勧めしません。

 

**Topics**
+ [ハードウェアパケットタイムスタンプ](#hardware-packet-timestamping)
+ [うるう秒](#leap-seconds)
+ [EC2 インスタンスのタイムリファレンスを、ローカル Amazon Time Sync Service を使用するように設定します。](configure-ec2-ntp.md)
+ [EC2 インスタンスまたはインターネットに接続されたデバイスのタイムリファレンスを、パブリック Amazon Time Sync Service を使用するように設定する](configure-time-sync.md)
+ [Linux インスタンスのタイムスタンプを比較する](compare-timestamps-with-clockbound.md)
+ [インスタンスのタイムゾーンを変更する](change-time-zone-of-instance.md)

 

**関連リソース**
+ AWS コンピューティングブログ: [今がそのとき: Amazon EC2 インスタンスでマイクロ秒精度のクロック](https://aws.amazon.com/blogs/compute/its-about-time-microsecond-accurate-clocks-on-amazon-ec2-instances/)
+ AWS クラウドの運用と移行のブログ: [Manage Amazon EC2 instance clock accuracy using Amazon Time Sync Service and Amazon CloudWatch – Part 1](https://aws.amazon.com/blogs/mt/manage-amazon-ec2-instance-clock-accuracy-using-amazon-time-sync-service-and-amazon-cloudwatch-part-1/)
+ (Linux) [https://chrony-project.org/](https://chrony-project.org/)