在EC2執行個體上設定時間參考以使用本機 Amazon 時間同步服務 - Amazon Elastic Compute Cloud

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

在EC2執行個體上設定時間參考以使用本機 Amazon 時間同步服務

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

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

  • 透過NTP下列 IP 位址端點:

  • (僅限 Linux)通過直接PTP連接連接到本地PTP硬件時鐘:

    • PHC0

Amazon Linux AMIs AMIs、Windows 和大多數合作夥伴將您的執行個體AMIs設定為預設使用NTPIPv4端點。這是大多數客戶工作負載的建議設定。從這些執行個體啟動的執行個體不需要進一步的設定,AMIs除非您想要使用IPv6端點或直接連線至PTP硬體時鐘。

NTP和PTP連線不需要變更任何VPC設定,而且您的執行個體不需要存取網際網路。

注意

Connect 到 Amazon 時間同步服務的IPv4端點

本節說明如何將執行個體設定為透過IPv4端點使用本機 Amazon 時間同步服務。

請遵循於執行個體作業系統的指示。

AL2023 和最新版本的 Amazon Linux 2 和 Amazon Linux 設定AMIs為預設使用 Amazon 時間同步服務IPv4端點。從這些執行個體啟動的執行個體不需要進一步AMIs的組態,您可以略過下列程序。

如果您使用的是AMI預設情況下未設定 Amazon 時間同步服務,請使用下列其中一個程序,使用用chrony戶端在執行個體上設定 Amazon 時間同步服務。須編輯 chrony 組態檔,新增 Amazon Time Sync Service 的伺服器項目。

請遵循於執行個體作業系統的指示。

Amazon Linux
使用時間連接到 Amazon Linux 上的 Amazon 時間同步服務的IPv4端點
  1. Connect 至執行個體並解除安裝NTP服務。

    [ec2-user ~]$ sudo yum erase 'ntp*'
  2. 安裝 chrony 套裝服務。

    [ec2-user ~]$ sudo yum install chrony
  3. 使用文字編輯器 (例如 /etc/chrony.confvim) 開啟 nano 檔案。確認檔案是否包含下列程式碼行:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

    如果該行存在,則表示 Amazon 時間同步服務已設定為使用 Amazon 時間同步服務的IPv4端點,您可以繼續下一步。如果沒有,請將該行程式碼新增在檔案中已有之任何其他 serverpool 陳述式之後,然後儲存您的變更。

  4. 重新啟動 chrony 協助程式 (chronyd)。

    [ec2-user ~]$ sudo service chronyd restart
    Starting chronyd: [ OK ]
    注意

    在RHEL和 CentOS(最多版本 6)上,服務名稱會chrony取代chronyd

  5. 使用 chkconfig 命令設定 chronyd 在每次系統開機時啟動。

    [ec2-user ~]$ sudo chkconfig chronyd on
  6. 確認chrony正在使用169.254.169.123IPv4端點同步時間。

    [ec2-user ~]$ chronyc sources -v
    210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us ^- ec2-12-34-231-12.eu-west> 2 6 17 43 -388us[ -388us] +/- 11ms ^- tshirt.heanet.ie 1 6 17 44 +178us[ +25us] +/- 1959us ^? tbag.heanet.ie 0 6 0 - +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:c43:e312:ce77:> 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:dab:2701:b70:b> 0 6 0 - +0ns[ +0ns] +/- 0ns

    在傳回的輸出中,^* 表示偏好的時間來源。

  7. 確認時間同步指標是否由 chrony 回報。

    [ec2-user ~]$ chronyc tracking
    Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 22 13:18:34 2017 System time : 0.000000626 seconds slow of NTP time Last offset : +0.002852759 seconds RMS offset : 0.002852759 seconds Frequency : 1.187 ppm fast Residual freq : +0.020 ppm Skew : 24.388 ppm Root delay : 0.000504752 seconds Root dispersion : 0.001112565 seconds Update interval : 64.4 seconds Leap status : Normal
Ubuntu
使用時間連接到 Ubuntu 上的 Amazon 時間同步服務的IPv4端點
  1. 連線至您的執行個體,然後使用 apt 來安裝 chrony 套件。

    ubuntu:~$ sudo apt install chrony
    注意

    如有必要,請執行 sudo apt update 先更新您的執行個體。

  2. 使用文字編輯器 (例如 /etc/chrony/chrony.confvim) 開啟 nano 檔案。將下列程式碼新增在檔案中已有之任何其他 serverpool 的陳述式之前,然後儲存您的變更:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  3. 重新啟動 chrony 服務。

    ubuntu:~$ sudo /etc/init.d/chrony restart
    Restarting chrony (via systemctl): chrony.service.
  4. 確認chrony正在使用169.254.169.123IPv4端點同步時間。

    ubuntu:~$ chronyc sources -v
    210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us ^- tbag.heanet.ie 1 6 17 13 -3488us[-3446us] +/- 1779us ^- ec2-12-34-231-12.eu-west- 2 6 17 13 +893us[ +935us] +/- 7710us ^? 2a05:d018:c43:e312:ce77:6 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? 2a05:d018:d34:9000:d8c6:5 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? tshirt.heanet.ie 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 10y +0ns[ +0ns] +/- 0ns

    在傳回的輸出中,以 ^* 開頭的行表示偏好的時間來源。

  5. 確認時間同步指標是否由 chrony 回報。

    ubuntu:~$ chronyc tracking
    Reference ID : 169.254.169.123 (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 29 07:41:57 2017 System time : 0.000000011 seconds slow of NTP time Last offset : +0.000041659 seconds RMS offset : 0.000041659 seconds Frequency : 10.141 ppm slow Residual freq : +7.557 ppm Skew : 2.329 ppm Root delay : 0.000544 seconds Root dispersion : 0.000631 seconds Update interval : 2.0 seconds Leap status : Normal
SUSE Linux

從 SUSE Linux 企業伺服器 15 開始,chrony是的預設實作NTP。

使用時間連接到 SUSE Linux 上的 Amazon 時間同步服務的IPv4端點
  1. 使用文字編輯器 (例如 /etc/chrony.confvim) 開啟 nano 檔案。

  2. 確認檔案是否包含下列程式碼行:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

    如果此程式碼不存在,請新增它。

  3. 將任何其他伺服器或集區的程式碼行變更為註解。

  4. 開啟 yast 並啟用 chrony 服務。

從 2018 年 8 月發行版本開始,Windows 預設會AMIs使用 Amazon 時間同步服務。從這些執行個體啟動的執行個體不需要進一步AMIs的組態,您可以略過下列程序。

如果您使用的是AMI預設情況下未設定 Amazon 時間同步服務的,請先驗證您目前的NTP組態。如果您的執行個體已在使用 Amazon 時間同步服務的IPv4端點,則無需進一步設定。如果您的執行個體未使用 Amazon 時間同步服務,請完成變更NTP伺服器以使用 Amazon 時間同步服務的程序。

驗證組NTP態
  1. 從執行個體中,開啟命令提示視窗。

  2. 輸入下列命令以取得目前的NTP組態:

    w32tm /query /configuration

    此命令會傳回 Windows 執行個體目前的組態設定,並顯示是否已連接至 Amazon Time Sync Service。

  3. (選用) 輸入下列命令,以取得目前組態的狀態:

    w32tm /query /status

    這個命令會傳回執行個體上次與NTP伺服器同步的時間,以及輪詢間隔等資訊。

若要變更NTP伺服器以使用 Amazon 時間同步服務
  1. 從命令提示視窗,執行下列命令:

    w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update
  2. 使用下列命令,確認新設定:

    w32tm /query /configuration

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

Amazon 視窗的預設網路時間通訊協定 (NTP) 設定 AMIs

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

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

  • NTP伺服器 — 從 2018 年 8 月發行版本開始,依預設AMIs使用 Amazon 時間同步服務。這次服務可以從任何訪問 AWS 區域 在 169.254.169.123 端IPv4點。此外,0x9 標記表示時間服務正作為用戶端,並使用 SpecialPollInterval 來判定以設定的時間伺服器進行查入的頻率。

  • 類型 — "NTP" 表示服務充當獨立NTP用戶端,而不是做為網域的一部分。

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

  • 特殊輪詢間隔 — 每 900 秒 (15 分鐘) 對設定的NTP伺服器進行檢查。

登錄檔路徑 金鑰名稱 資料

HKLM:\ 系統\\ 服務CurrentControlSet\ w32 時間\ Config

UpdateInterval

120

HKLM:\ 系統\\ 服務CurrentControlSet\ w32 時間\ 參數

NtpServer

169.254.169.123,0x9

HKLM:\ 系統\\ 服務CurrentControlSet\ w32 時間\ 參數

Type

NTP

HKLM:\ 系統\CurrentControlSet\ 服務\ w32 時間\\ TimeProviders NtpClient

已啟用

1

HKLM:\ 系統\CurrentControlSet\ 服務\ w32 時間\\ TimeProviders NtpClient

InputProvider

1

HKLM:\ 系統\CurrentControlSet\ 服務\ w32 時間\\ TimeProviders NtpClient

SpecialPollInterval

900

Connect 到 Amazon 時間同步服務的IPv6端點

本節說明如果您將執行個體設定為透過IPv6端點使用本機 Amazon 時間同步服務,中所述的步驟有何Connect 到 Amazon 時間同步服務的IPv4端點不同。它不會說明整個 Amazon Time Sync Service 組態程序。

IPv6端點只能在建置於 AWS 硝基系統

注意

我們不建議同時使用IPv4和IPv6端點項目。IPv4和IPv6NTP封包來自執行個體的相同本機伺服器。不需要同時設定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::123IPv6端點同步處理時間:

[ec2-user ~]$ chronyc sources -v

在輸出中,如果您看到fd00:ec2::123IPv6端點,表示組態已完成。

當您到達變更NTP伺服器以使用 Amazon 時間同步服務的步驟時,您將使用 Amazon 時間同步服務 (fd00:ec2::123) 的IPv6端點,而不是IPv4端點 (169.254.169.123):

w32tm /config /manualpeerlist:fd00:ec2::123 /syncfromflags:manual /update

確認您的新設定正在使用fd00:ec2::123IPv6端點同步處理時間:

w32tm /query /configuration

在輸出中,確認是否NtpServer顯示fd00:ec2::123IPv6端點。

Connect 到PTP硬件時鐘

PTP硬件時鐘是 AWS Nitro System,因此無需使用任何客戶資源,即可直接在受支援的裸機和虛擬化EC2執行個體上存取。

PTP硬體時鐘的NTP端點與一般 Amazon 時間同步服務的端點相同。如果您的執行個PTP體有硬體時鐘,且您已設定NTP連線 (IPv4或IPv6端點),您的執行個體時間就會自動從PTP硬體時脈取得NTP。

對於 Linux 實例,您可以配置直接PTP連接,這將為您提供比NTP連接更準確的時間。Windows 執行個體僅支援與PTP硬體時鐘的NTP連線。

要求

當符合下列需求時,即可在執行個體上使用PTP硬體時鐘:

  • 支援 AWS 區域:美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、亞太區域 (馬來西亞) 和亞太區域 (東京)

  • 支援的執行個體系列:

    • 一般用途:兆 7 安培,兆 7 克,兆平方米,M7

    • 計算最佳化:C7 安培、C7gD、C7 i

    • 最佳化記憶體:7 安培、R7 克、R7 公升、R7 公克

  • (僅限 Linux) 在支援的作業系統上安裝的ENA驅動程式版本 2.10.0 或更新版本。如需有關支援作業系統的詳細資訊,請參閱的驅動程式先決條件GitHub

本節說明如何將 Linux 執行個體設定為透過直接PTP連線透過PTP硬體時鐘使用本機 Amazon 時間同步服務。它需要在chrony配置文件中添加PTP硬件時鐘的服務器條目。

設定與PTP硬體時鐘的直接PTP連線 (僅限 Linux 執行個體)
  1. Connect 至您的 Linux 執行個體並執行下列動作:

    1. 安裝彈性網路介面卡 (ENA) 2.10.0 版或更新版本的 Linux 核心驅動程式。

    2. 啟用PTP硬體時鐘。

    如需安裝指示,請參閱上的彈性網路介面卡 (ENA) 系列的 Linux 核心驅動程式GitHub

  2. 確認 /dev/ptp0 裝置顯示在執行個體上。

    [ec2-user ~]$ ls /dev/ptp0

    預期的輸出如下:如果/dev/ptp0不在輸出中,則表示ENA驅動程式未正確安裝。請參閱此程序中的步驟 1 以安裝驅動程式。

    /dev/ptp0
  3. 使用文字編輯器編輯 /etc/chrony.conf,然後在檔案中的任何位置新增以下行。

    refclock PHC /dev/ptp0 poll 0 delay 0.000010 prefer
  4. 重新啟動計時。

    [ec2-user ~]$ sudo systemctl restart chronyd
  5. 確認 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 之後,可能需要等待幾秒鐘,星號才會出現。