本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 EC2 執行個體上設定時間參考以使用本機 Amazon 時間同步服務
本機 Amazon 時間同步服務可以使用網路時間通訊協定 (NTP),或在支援的執行個體上提供本機精確時間協定 (PTP) 硬體時鐘。PTP 硬體時鐘支援 NTP 連線 (Linux 和 Windows 執行個體) 或直接 PTP 連線 (僅限 Linux 執行個體)。NTP 和直接 PTP 連線使用的是相同高度精確時間來源,但直接 PTP 連線比 NTP 連線更精確。與 Amazon Time Sync Service 的 NTP 連線支援飛躍塗抹,而 PTP 與 PTP 硬體時鐘的連線不會塗抹時間。如需詳細資訊,請參閱 閏秒。
您的執行個體可以存取本機 Amazon Time Sync Service,如下所示:
-
透過位於下列 IP 地址端點的 NTP:
-
IPv4:
169.254.169.123
-
IPv6:
fd00:ec2::123
(只有在AWS 硝基系統上建置的執行個體才能存取。)
-
-
(僅限 Linux) 透過直接 PTP 連線來連線至本機 PTP 硬體時鐘:
-
PHC0
-
Amazon 的 AMI、視窗 AMI 和大多數合作夥伴 AMI 將您的執行個體設定為預設使用 NTP IPv4 端點。這是大多數客戶工作負載的建議設定。除非您要使用 IPv6 端點或直接連接到 PTP 硬體時鐘,否則從這些 AMI 啟動的執行個體不需要進一步的設定。
NTP 和 PTP 連線不需要變更任何 VPC 組態,而且執行個體不需要存取網際網路。
注意
只有 Linux 執行個體可以使用直接 PTP 連線來連線到本機 PTP 硬體時鐘。Windows 執行個體會使用 NTP 連線到本機 PTP 硬體時鐘。
連接至 Amazon Time Sync Service 的 IPv4 端點
本節說明如何將執行個體設定為透過 IPv4 端點使用本機 Amazon Time Sync Service。
請遵循於執行個體作業系統的指示。
預設情況下,AL2023 和最新版的 Amazon Linux 2 與 Amazon Linux AMI 設定為使用 Amazon Time Sync Service IPv4 端點。從這些 AMI 啟動的執行個體不需要進一步的組態,而且您可以略過下列程序。
如果您使用的 AMI 未依預設設定 Amazon Time Sync Service,請按照下列其中一個程序,使用 chrony
用戶端在執行個體上設定 Amazon Time Sync Service。須編輯 chrony
組態檔,新增 Amazon Time Sync Service 的伺服器項目。
請遵循於執行個體作業系統的指示。
從 2018 年 8 月版本開始,Windows AMI 預設會使用 Amazon Time Sync Service。從這些 AMI 啟動的執行個體不需要進一步的設定,您可以略過下列程序。
如果您使用的 AMI 並未依預設設定 Amazon 時間同步服務,請先驗證您目前的 NTP 組態。如果您的執行個體已在使用 Amazon Time Sync Service 的 IPv4 端點,則無需進一步設定。如果您的執行個體不是使用 Amazon Time Sync Service,請完成程序,將 NTP 伺服器變更為使用 Amazon Time Sync Service。
確認 NTP 組態
-
從執行個體中,開啟命令提示視窗。
-
輸入下列命令,以取得目前 NTP 組態:
w32tm /query /configuration
此命令會傳回 Windows 執行個體目前的組態設定,並顯示是否已連接至 Amazon Time Sync Service。
-
(選用) 輸入下列命令,以取得目前組態的狀態:
w32tm /query /status
此命令會傳回資訊,例如執行個體最後一次與 NTP 伺服器同步的時間以及輪詢間隔。
將 NTP 伺服器改為使用 Amazon Time Sync Service
-
從命令提示視窗,執行下列命令:
w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update
-
使用下列命令,確認新設定:
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 |
連接至 Amazon Time Sync Service 的 IPv6 端點
本節說明如要設定執行個體以透過 IPv6 端點使用本機 Amazon Time Sync Service,步驟與 連接至 Amazon Time Sync Service 的 IPv4 端點 所述有何不同。它不會說明整個 Amazon Time Sync Service 組態程序。
IPv6 端點只能在 AWS Nitro 系統上建置的執行個體上存取。
注意
我們不建議同時使用 IPv4 和 IPv6 端點項目。IPv4 和 IPv6 NTP 封包來自您的執行個體的相同本機伺服器。同時設定 IPv4 和 IPv6 端點是不必要的做法,而且不會改善執行個體的時間準確性。
請遵循於執行個體作業系統的指示。
根據您使用的 Linux 發行版,當您到達編輯時間 .conf 檔案的步驟時,您將使用 Amazon 時間同步服務 (fd00:ec2::123
) 的 IPv6 端點,而不是 IPv4 端點 ():169.254.169.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 端點,表示組態已完成。
當您到達將 NTP 伺服器變更為使用 Amazon 時間同步服務的步驟時,您將使用 Amazon 時間同步服務 (fd00:ec2::123
) 的 IPv6 端點,而不是 IPv4 端點 (169.254.169.123
):
w32tm /config /manualpeerlist:fd00:ec2::123 /syncfromflags:manual /update
確認您的新設定正在使用 fd00:ec2::123
IPv6 端點同步處理時間:
w32tm /query /configuration
在輸出中,確認是否NtpServer
顯示 fd00:ec2::123
IPv6 端點。
連接至 PTP 硬體時鐘
PTP 硬體時鐘是 AWS Nitro 系統的一部分,因此可在支援的裸機和虛擬化 EC2 執行個體上直接存取,不會使用任何客戶資源。
PTP 硬體時鐘的 NTP 端點與一般 Amazon 時間同步服務的端點相同。如果您的執行個體具有 PTP 硬體時鐘,而且您已設定 NTP 連線 (與 IPv4 或 IPv6 端點),則您的執行個體時間會自動從 NTP 上的 PTP 硬體時脈取得。
對於 Linux 執行個體,您可以設定直接 PTP 連線,這會提供比 NTP 連線更準確的時間。Windows 執行個體僅支援與 PTP 硬體時鐘的 NTP 連線。
要求
符合下列需求才能在執行個體上使用 PTP 硬體時鐘:
-
支援 AWS 區域:美國東部 (維吉尼亞北部) 和亞太區域 (東京)
-
支援的執行個體系列:
-
一般用途:兆 7 安培,兆 7 克,兆平方米,M7
-
運算最佳化:C7 安培、C7gD、C7 i
-
最佳化記憶體:7 安培、R7 克、R7 公升
-
-
(僅限 Linux) ENA 驅動程式 2.10.0 版或更新版本安裝在支援的作業系統上。如需有關支援作業系統的詳細資訊,請參閱的驅動程式先決條件GitHub
。
本節說明如何使用直接 PTP 連線,將 Linux 執行個體設定為透過 PTP 硬體時鐘使用本機 Amazon 時間同步服務。它需要在chrony
組態檔案中新增 PTP 硬體時鐘的伺服器項目。
設定與 PTP 硬體時鐘的直接 PTP 連線 (僅限 Linux 執行個體)
-
Connect 至您的 Linux 執行個體,然後執行下列動作:
-
安裝彈性網路介面卡 (ENA) 2.10.0 版或更新版本的 Linux 核心驅動程式。
-
啟用 PTP 硬體時鐘。
如需安裝指示,請參閱上的彈性網路介面卡 (ENA) 系列的 Linux 核心驅動程式GitHub
。 -
-
確認
/dev/ptp0
裝置顯示在執行個體上。[ec2-user ~]$
ls /dev/ptp0
預期的輸出如下:如果
/dev/ptp0
不在輸出中,表示 ENA 驅動程式未正確安裝。請參閱此程序中的步驟 1 以安裝驅動程式。/dev/ptp0
-
使用文字編輯器編輯
/etc/chrony.conf
,然後在檔案中的任何位置新增以下行。refclock PHC /dev/ptp0 poll 0 delay 0.000010 prefer
-
重新啟動計時。
[ec2-user ~]$
sudo systemctl restart chronyd
-
確認 chrony 是使用 PTP 硬體時鐘來同步此執行個體上的時間。
[ec2-user ~]$
chronyc sources
預期的輸出結果
MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 0 377 1 +2ns[ +1ns] +/- 5031ns
在傳回的輸出中,
*
表示偏好的時間來源。PHC0
對應 PTP 硬體時鐘。重新啟動 chrony 之後,可能需要等待幾秒鐘,星號才會出現。