Windows インスタンスの時刻同期が失敗した際の対処法

2023.05.02

困っていること

Windows インスタンスにて、OS の時刻がズレてしまい同期エラーが発生しています。
対処法を教えてください。

どう対応すればいいの?

以下の順に確認を行い、事象が解消されるかお試しください。

1. Amazon Time Sync Service を利用する
2. RealTimeIsUniversal レジストリキーが設定されているかを確認する
3. EC2Config / EC2Launch サービスのバージョンを確認する

Amazon Time Sync Service を利用する

Windows 標準のタイムサービスを利用している場合、Amazon Time Sync Service の利用をご検討ください。 EC2 インスタンスでは Amazon Time Sync Servie と NTP プロトコルを用いて時刻同期を行うことを AWS では推奨されており、こちらを設定いただくことで事象が改善する可能性があります。

Amazon では、Amazon Time Sync Service を提供します。このサービスはすべての EC2 インスタンスからアクセスでき、その他の AWS のサービスにも利用されます。Amazon Time Sync Service を使用してインスタンスを設定することをお勧めします。

RealTimeIsUniversal レジストリキーが設定されているかを確認する

ドキュメント を参考に RealTimeIsUniversal レジストリキーが設定されているかどうかを確認してください。

Windows インスタンスの時刻を変更するときは、システムを再起動してもその時刻が維持されるようにする必要があります。そうでない場合、インスタンスを再起動すると、再び UTC 時間が使用されます。Windows Server 2008 以降の場合、RealTimeIsUniversal レジストリキーを追加することで時刻設定を維持することができます。このキーは、すべての現世代のインスタンスでデフォルトで設定されます。RealTimeIsUniversal レジストリキーが設定されているかどうかを確認するには、以下の手順のステップ 4 を参照してください。キーが設定されていない場合は、以下の手順を最初から実行します。

EC2 インスタンスでコマンドプロンプトウィンドウを開き、以下のコマンドを使用してインスタンスでキーが正常に保存されたことを確認できます。

reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /s

上記コマンドから TimeZoneInformation レジストリキーのサブキーを返します。ジョブが実行されると、次のような RealTimeIsUniversal キーがリストの一番下に表示されます。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
    Bias                            REG_DWORD     0x1e0
    DaylightBias                    REG_DWORD     0xffffffc4
    DaylightName                    REG_SZ        @tzres.dll,-211
    DaylightStart                   REG_BINARY    00000300020002000000000000000000
    StandardBias                    REG_DWORD     0x0
    StandardName                    REG_SZ        @tzres.dll,-212
    StandardStart                   REG_BINARY    00000B00010002000000000000000000
    TimeZoneKeyName                 REG_SZ        Pacific Standard Time
    DynamicDaylightTimeDisabled     REG_DWORD     0x0
    ActiveTimeBias                  REG_DWORD     0x1a4
    RealTimeIsUniversal             REG_DWORD     0x1

こちらの、弊社ブログ も参考になるかと思いますので、ご確認ください。

EC2Config / EC2Launch サービスのバージョンを確認する

EC2Config

Amazon Time Sync Servie 宛のルート情報は、EC2Config サービスのバージョン 4.9.2905 以降を使用されている場合 に、OS 起動時に自動で追加される動作となっています。

4.9.2905
・新しいバージョンの SSM Agent (2.3.50.0)
・AMZN タイムサービスにルート 169.254.169.123/32 を追加
・GRID ライセンスにルート 169.254.169.249/32 を追加
・EBS NVMe ボリュームが一時的なものとしてマークされる問題を修正

EC2Config サービスのバージョンが古い場合 Amazon Time Sync Servie (169.254.169.123) との時刻同期は継続的に成功している状況でも、NTP サーバーへの通信が不安定となる可能性があります。
ご利用中の EC2Config サービスのバージョンが古い可能性があるので、ドキュメント を参考に EC2 Config サービスのバージョンアップを実施いただき、事象が解消されるかご確認ください。

EC2Launch

EC2Launch サービスのバージョン 1.3.2003189 以降を使用されている場合 ルートを追加した後に w32tm resync が追加する動作となっています。

1.3.2003189
ルートを追加した後に w32tm resync が追加されました。

NTP サーバーへの通信が不安定となる可能性があるため、ドキュメント を参考に EC2Launch サービスのバージョンアップを実施いただき、事象が解消されるかご確認ください。

もし EC2Config / EC2Launch の更新後も時刻同期が失敗される場合は、ルートテーブルの状況や以下コマンドによる Amazon Time Sync Servie への疎通性をご確認ください。

w32tm /monitor /computers:169.254.169.123


解消されない場合

上記 1~3 の対処法を実施しても事象が解消されない場合は EC2 インスタンスの再作成をご検討ください。

参考資料