設定 Windows 執行個體的時間 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Windows 執行個體的時間

對許多伺服器任務和程序而言,Windows 執行個體上一致且精準的時間參考很重要。在識別問題發生的時間和事件的時間順序方面,系統日誌中的時間戳記扮演著至關重要的角色。當您使用 AWS CLI 或 AWS SDK 向執行個體提出要求時,這些工具會代表您簽署要求。如果執行個體的日期和時間設定不正確,可能會導致簽名日期和請求日期之間出現差異,導致 AWS 拒絕您的請求。

為了解決這個重要層面,Amazon 提供 Amazon Time Sync Service,此服務可從所有 EC2 執行個體存取和提供不同 AWS 服務使用。該服務使用衛星連接和原子參考時鐘的隊列,以提供協調世界時(UTC)全球標準的準確和當前時間讀數。 AWS 區域

Amazon Time Sync Service 可以使用網路時間通訊協定 (NTP),或在支援的執行個體上提供本機精確時間協定 (PTP) 硬體時鐘。PTP 硬體時鐘支援 NTP 或直接 PTP 連線。NTP 和直接 PTP 連線使用的是相同高度精確時間來源,但直接 PTP 連線比 NTP 連線更精確。與 Amazon Time Sync Service 的 NTP 連線支援飛躍塗抹,而 PTP 與 PTP 硬體時鐘的連線不會塗抹時間。如需詳細資訊,請參閱 閏秒

對於備份到執行個體上的本機 Amazon Time Sync Service,以及將 Amazon EC2 以外的資源連線至 Amazon Time Sync Service,您可以使用位於 time.aws.com 的公有 Amazon Time Sync Service。公有 Amazon Time Sync Service (例如本機 Amazon Time Sync Service),會自動消彌加至 UTC 的任何閏秒。公用 Amazon 時間同步服務由我們的衛星連接和原子參考時鐘在全球範圍內提供支援。 AWS 區域

若為 Linux 執行個體,請參閱設定 Linux 執行個體的時間

設定您的執行個體使用本機 Amazon Time Sync Service

您的執行個體可以存取本機 Amazon Time Sync Service,如下所示:

NTP 連線不需要變更任何 VPC 組態,而且執行個體不需要存取網際網路。

PTP 硬體時鐘是 AWS Nitro 系統的一部分,因此可在支援的裸機和虛擬化 EC2 執行個體上直接存取,不會使用任何客戶資源。

PTP 硬體時鐘的 NTP 端點與透過 IPv4 或 IPv6 進行的一般 Amazon Time Sync Service 連線相同。如果軟體設定為 NTP 端點,且在具有 PTP 硬體時鐘的執行個體上執行,便會透過 NTP 自動連接到 PTP 硬體時鐘。

從 2018 年 8 月版本開始,Windows AMI 預設會使用 Amazon Time Sync Service。從這些 AMI 啟動的執行個體不需要進一步的設定,您可以略過下列程序。

連接至 Amazon Time Sync Service 的 IPv4 端點

請先確認目前的 NTP 組態。如果您的執行個體已在使用 Amazon Time Sync Service 的 IPv4 端點,則無需進一步設定。如果您的執行個體不是使用 Amazon Time Sync Service,請完成程序,將 NTP 伺服器變更為使用 Amazon Time Sync Service。

確認 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

    在傳回的輸出中,確認 NtpServer 顯示 169.254.169.123 IPv4 端點。

Amazon Windows AMI 的預設網路時間通訊協定 (NTP) 設定

Amazon 機器映像 (AMI) 通常會遵守 out-of-the-box 預設值,除非需要變更才能在 EC2 基礎設施上運作。下列設定已確認在虛擬化環境中運作良好,以及可將任何時鐘漂移保持在一秒的準確度內:

  • 更新間隔 — 控制時間服務調整系統時間以達到精確度的頻率。 AWS 設定每兩分鐘進行一次更新間隔。

  • NTP 伺服器:從 2018 年 8 月發行版本開始,AMI 預設使用 Amazon Time Sync Service。您可以從任何 AWS 區域 位於 IPv4 端點上的任何一個端點存取此次服務。此外,0x9 標記表示時間服務正作為用戶端,並使用 SpecialPollInterval 來判定以設定的時間伺服器進行查入的頻率。

  • 類型 – “NTP” 表示服務將充當獨立式 NTP 用戶端,而不是充當網域的一部分。

  • 啟用和 InputProvider — 計時服務已啟用,並提供作業系統的時間。

  • 特殊輪詢間隔:每 900 秒或 15 分鐘檢查一次已設定的 NTP 伺服器。

登錄檔路徑 金鑰名稱 資料

港島綫 M:\System\\ 服務CurrentControlSet\ w32 時間\ Config

UpdateInterval

120

港島綫 M:\System\\ 服務CurrentControlSet\ w32 時間\ 參數

NtpServer

169.254.169.123,0x9

港島綫 M:\System\\ 服務CurrentControlSet\ w32 時間\ 參數

Type

NTP

港島綫 M:\System\\ 服務CurrentControlSet\ w32 時間\\ TimeProviders NtpClient

已啟用

1

港島綫 M:\System\\ 服務CurrentControlSet\ w32 時間\\ TimeProviders NtpClient

InputProvider

1

港島綫 M:\System\\ 服務CurrentControlSet\ w32 時間\\ TimeProviders NtpClient

SpecialPollInterval

900

連接至 PTP 硬體時鐘

Windows 執行個體僅支援連接 PTP 硬體時鐘的 NTP 連線。

PTP 硬體時鐘的 NTP 端點與透過 IPv4 或 IPv6 連接的一般 Amazon Time Sync Service 連線相同。如果軟體設定為連接到 NTP 端點,且在具有 PTP 硬體時鐘的執行個體上執行,便會透過 NTP 自動連接到 PTP 硬體時鐘。

要求

符合下列需求才能在執行個體上使用 PTP 硬體時鐘:

  • 支援 AWS 區域:美國東部 (維吉尼亞北部) 和亞太區域 (東京)

  • 支援的執行個體系列:R7g

將您的執行個體或任何網際網路連線裝置設定為使用公用的 Amazon Time Sync Service

您可以將執行個體或任何連接網際網路的裝置 (例如本機電腦或內部部署伺服器) 設定為使用可透過網際網路從 time.aws.com 存取的公有 Amazon Time Sync Service。您可以使用公有的 Amazon 時間同步服務做為本機 Amazon 時間同步服務的備份,以及將資源連接 AWS 到 Amazon 時間同步服務以外的資源。

根據執行個體或裝置的作業系統,使用下列其中一個程序將執行個體或裝置設定為使用公用 Amazon Time Sync Service。

Linux
若要將 Linux 執行個體或裝置設定為使用公有 Amazon Time Sync Service,請使用 chrony 或 ntpd
  1. 使用文字編輯器編輯 /etc/chrony.conf (若使用 chrony) 或 /etc/ntp.conf (若使用 ntpd),如下所示:

    1. 若要防止執行個體或裝置嘗試混合已消彌和未消彌的伺服器,請刪除以 server 開頭的行或變成註解,但連接本機 Amazon Time Sync Service 的任何現有連線除外。

      重要

      如果要將 EC2 執行個體設定為連接到公有 Amazon Time Sync Service,請勿移除以下行,這一行會將執行個體設定為連接到本機 Amazon Time Sync Service。本機 Amazon Time Sync Service 是更直接的連線,可提供更高的時鐘準確度。公有 Amazon Time Sync Service 只能當成備案。

      server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
    2. 新增以下行以連接至公有 Amazon Time Sync Service。

      pool time.aws.com iburst
  2. 使用以下其中一個命令重新啟動常駐程式。

    • chrony

      sudo service chronyd force-reload
    • ntpd

      sudo service ntp reload
macOS
將您的 macOS 執行個體或裝置設定為使用公有 Amazon Time Sync Service
  1. 開啟 System Preferences (系統偏好設定)

  2. 選擇 Date & Time (日期與時間),然後選擇 Date & Time (日期與時間) 標籤。

  3. 若要進行變更,請選擇鎖定圖示,然後在出現提示時輸入您的密碼。

  4. 對於 Set date and time automatically (自動設定日期與時間),輸入 time.aws.com

Windows
將您的 Windows 執行個體或裝置設定為使用公有 Amazon Time Sync Service
  1. 開啟 Control Panel (主控台)。

  2. 選擇 Date and Time (日期與時間) 圖示。

  3. 選擇 Internet Time (網際網路時間) 標籤。如果您的 PC 是網域的一部分,就無法使用此索引標籤。在這種情況下,系統會與網域控制器同步時間。您可以將控制器設定為使用公有 Amazon Time Sync Service。

  4. 選擇 Change settings (變更設定)。

  5. 選取 Synchronize with an Internet time server (與網際網路時間伺服器同步) 的核取方塊。

  6. Server (伺服器) 旁,輸入 time.aws.com

將您的 Windows Server 執行個體或裝置設定為使用公有 Amazon Time Sync Service

變更執行個體的時區

Windows 執行個體預設為 UTC (國際標準時間) 時區。您可以將執行個體上的時間變更為當地時區或網路中的另一個時區。

變更 Windows 執行個體的時區
  1. 從執行個體中,開啟命令提示視窗。

  2. 找出執行個體使用的時區。若要取得時區清單,請使用下列命令:

    tzutil /l

    此命令會傳回所有可用時區的清單,格式如下:

    display name time zone ID
  3. 找出要指派給執行個體的時區 ID。

  4. 使用下列命令指派其他時區:

    tzutil /s "Pacific Standard Time"

    新的時區應該會立即生效。

注意

您可以使用下列命令來指派 UTC 時區:

tzutil /s "UTC"

防止您為 Windows 伺服器 2008 及更新版本設定好的時區變更

當您變更 Windows 執行個體上的時區時,必須確定在系統重新啟動之後仍然會持續保留時區。否則,執行個體重新啟動時,會回復成使用 UTC 時間。對於 Windows Server 2008 和更新版本,您可以新增 RealTimeIsUniversal 登錄機碼來持續保留時區設定。依預設,此機碼會在所有最新一代的執行個體上設定。若要確認是否已設定 RealTimeIsUniversal 登錄機碼,請參閱下列程序中的步驟 4。如果未設定機碼,請從頭開始執行下列步驟。

若要設定 RealTimeIsUniversal 登錄機碼
  1. 從執行個體中,開啟命令提示視窗。

  2. 使用下列命令,新增登錄機碼:

    reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
  3. 如果您使用的是在 2013 年 2 月 22 日之前建立的視窗伺服器 2008 AMI (是視窗伺服器 2008 R2),我們建議您更新至最新的 AWS 視窗 AMI。如果您使用的是執行 Windows Server 2008 R2 (「不是」 Windows Server 2008) 的 AMI,您必須確認 Microsoft Hotfix KB2922223 已確實安裝。如果未安裝此修補程式,我們建議您更新至最新的 AWS Windows AMI。

  4. (選用) 使用下列命令,確認執行個體已順利儲存機碼:

    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

閏秒

1972 年推出的閏秒是為了消彌由於地球自轉速度不穩定,導致國際原子時間 (TAI) 與太陽時間 (Ut1) 之間產生的差異,而不定期校正 UTC 時間的一秒鐘。為了代表客戶管理閏秒,我們在 Amazon Time Sync Service 中設計了閏秒消彌機制。如需詳細資訊,請參閱閏秒搶先報:即將到來的閏秒和 AWS

國際度量衡局第 27 屆大會決議,將在 2035 年之前取消閏秒,我們全力支持這項決議。

為了支援這次轉變,我們仍計劃透過本機 NTP 連線或公有 NTP 集區 (time.aws.com) 存取 Amazon Time Sync Service 時,在閏秒事件期間消彌時間。不過 PTP 硬體時鐘不提供消彌時間選項。如果發生閏秒,PTP 硬體時鐘會依照 UTC 標準加上閏秒。在大多數情況下,消彌的閏秒和閏秒時間來源相同。但由於閏秒事件期間會有所不同,所以不建議在閏秒事件期間,在您的時間用戶端組態中同時使用消彌和未消彌的時間來源。