View a markdown version of this page

로컬 Amazon Time Sync Service를 사용하도록 EC2 인스턴스의 시간 참조 설정 - - Amazon Elastic Compute Cloud

로컬 Amazon Time Sync Service를 사용하도록 EC2 인스턴스의 시간 참조 설정

Amazon Time Sync Service는 Amazon EC2 인스턴스가 로컬 시간 소스와 동기화할 수 있는 여러 방법을 제공합니다. 먼저, 모든 Amazon EC2 인스턴스는 NTP(Network Time Protocol)를 통해 로컬 시간 소스에 접근할 수 있습니다. 또한 강화된 Amazon Time Sync Service는 지원되는 Amazon EC2 인스턴스에 더 높은 정확도의 로컬 시간 소스를 제공합니다. 더 높은 정확도의 NTP 소스에 접근하려면 지원되는 인스턴스를 precision-time 전략을 사용하는 배치 그룹에서 시작하세요. 마지막으로, 정밀 시간 배치 그룹에서 시작된 Linux 인스턴스는 PTP Hardware Clock(PHC) 장치에 접근할 수 있으며 하드웨어 패킷 타임스탬프를 가져올 수 있습니다.

모든 Amazon EC2 인스턴스는 로컬 NTP 소스에 접근할 수 있습니다. 이 NTP 소스는 링크 로컬 IP 주소를 통해 접근할 수 있으며, 이는 별도의 VPC 구성 변경 없이도 해당 트래픽을 VPC 내부로 제한합니다. 사용 중인 AMI에는 이미 로컬 NTP 소스를 사용하도록 클럭 동기화 데몬이 기본 구성되어 있을 수 있습니다. 이 NTP 소스는 다음 IP 주소를 통해 사용할 수 있습니다.

지원되는 Amazon EC2 인스턴스는 강화된 Amazon Time Sync Service에 접근할 수 있습니다. 강화된 Amazon Time Sync Service에 접근하려면 precision-time 전략을 사용하는 배치 그룹에서 지원되는 인스턴스를 시작하세요. NTP 링크 로컬 IP 주소를 사용하는 경우, 이 개선 사항을 활용하기 위해 인스턴스를 별도로 구성할 필요는 없습니다. 모든 운영 체제에서 이 강화 기능을 사용할 수 있습니다. 원하는 NTP 클라이언트를 사용하여 강화된 NTP 소스의 이점을 받고 있는지 확인할 수 있습니다.

지원되는 인스턴스 패밀리에서 실행되는 Linux 기반 AMI에는 PHC 장치에서 시간을 가져오는 추가 옵션이 있습니다. 이 장치는 ENA 드라이버를 통해 사용할 수 있습니다. 강화된 NTP 소스와 PHC 장치는 동일한 고정밀 시간 소스를 사용합니다. PHC 시간 소스 접근은 최적화되어 있어 Amazon EC2 인스턴스를 더 정확하게 동기화할 수 있습니다.

고려 사항

Amazon Time Sync Service의 IPv4 엔드포인트 접근

AMI는 기본적으로 Amazon Time Sync Service를 이미 구성했을 수 있습니다. 그렇지 않으면 다음 절차를 사용하여 IPv4 엔드포인트를 통해 로컬 Amazon Time Sync Service를 사용하도록 인스턴스를 구성합니다.

문제 해결에 도움이 필요하면 Linux 인스턴스의 NTP 동기화 문제 해결 또는 Windows 인스턴스의 시간 문제 해결을 참조하세요.

Amazon Linux

AL2023 및 최신 버전의 Amazon Linux 2는 기본적으로 Amazon Time Sync Service IPv4 엔드포인트를 사용하도록 구성되어 있습니다. 인스턴스가 이미 구성되었음을 확인하면 다음 절차를 건너뛸 수 있습니다.

IPv4 엔드포인트를 사용하도록 chrony가 구성되어 있는지 확인하는 방법

다음 명령을 실행합니다. 출력에서 ^*로 시작되는 줄은 기본 시간 소스를 나타냅니다.

[ec2-user ~]$ chronyc sources -v | grep -F ^*
^* 169.254.169.123 3 4 377 13 -4325ns[-9201ns] +/- 401us
이전 버전의 Amazon Linux 2에서 IPv4 엔드포인트에 연결하도록 chrony를 구성하는 방법
  1. 인스턴스를 연결하고 NTP 서비스를 제거합니다.

    [ec2-user ~]$ sudo yum erase 'ntp*'
  2. chrony 패키지를 설치합니다.

    [ec2-user ~]$ sudo yum install chrony
  3. /etc/chrony.conf 또는 vim과 같은 텍스트 편집기를 사용하여 nano 파일을 엽니다. 파일에 이미 존재할 수 있는 server 또는 pool 문 앞에 다음 라인을 추가하고 변경 사항을 저장합니다.

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  4. chrony 대몬(chronyd)을 다시 시작합니다.

    [ec2-user ~]$ sudo service chronyd restart
    Starting chronyd: [ OK ]
    참고

    RHEL 및 CentOS(최대 버전 6까지)에서 서비스 이름은 chrony이 아니라 chronyd입니다.

  5. 각 시스템 부팅 시 chronyd가 시작되도록 구성하려면 chkconfig 명령을 사용합니다.

    [ec2-user ~]$ sudo chkconfig chronyd on
  6. chrony169.254.169.123 IPv4 엔드포인트를 사용하여 시간을 동기화하고 있는지 확인합니다.

    [ec2-user ~]$ chronyc sources -v | grep -F ^*

    출력에서 ^*는 기본 시간 소스를 나타냅니다.

    ^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us
  7. chrony에서 보고된 시간 동기화 지표를 확인합니다.

    [ec2-user ~]$ chronyc tracking
    Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed May 06 00:39:14 2026 System time : 0.000002191 seconds fast of NTP time Last offset : +0.000002164 seconds RMS offset : 0.000082968 seconds Frequency : 3.710 ppm slow Residual freq : +0.002 ppm Skew : 0.504 ppm Root delay : 0.000362541 seconds Root dispersion : 0.000225028 seconds Update interval : 16.1 seconds Leap status : Normal
Ubuntu
Ubuntu에서 IPv4 엔드포인트에 연결하도록 chrony를 구성하는 방법
  1. 인스턴스를 연결해 apt를 사용하여 chrony 패키지를 설치합니다.

    ubuntu:~$ sudo apt install chrony
    참고

    필요할 경우 sudo apt update를 실행하여 먼저 인스턴스를 업데이트합니다.

  2. /etc/chrony/chrony.conf 또는 vim과 같은 텍스트 편집기를 사용하여 nano 파일을 엽니다. 파일에 이미 존재하는 server 또는 pool 문 앞에 다음 라인을 추가하고 변경 사항을 저장합니다.

    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. chrony169.254.169.123 IPv4 엔드포인트를 사용하여 시간을 동기화하고 있는지 확인합니다.

    ubuntu:~$ chronyc sources -v | grep -F ^*

    출력에서 ^*로 시작되는 줄은 기본 시간 소스를 나타냅니다.

    ^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us
  5. chrony에서 보고된 시간 동기화 지표를 확인합니다.

    ubuntu:~$ chronyc tracking
    Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed May 06 00:39:14 2026 System time : 0.000002191 seconds fast of NTP time Last offset : +0.000002164 seconds RMS offset : 0.000082968 seconds Frequency : 3.710 ppm slow Residual freq : +0.002 ppm Skew : 0.504 ppm Root delay : 0.000362541 seconds Root dispersion : 0.000225028 seconds Update interval : 16.1 seconds Leap status : Normal
SUSE Linux

SUSE Linux Enterprise Server 15부터 chrony는 NTP의 기본 구현입니다.

SUSE Linux에서 IPv4 엔드포인트에 연결하도록 chrony를 구성하는 방법
  1. /etc/chrony.conf 또는 vim과 같은 텍스트 편집기를 사용하여 nano 파일을 엽니다.

  2. 파일이 다음 라인을 포함하고 있는지 확인합니다.

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

    이 라인이 표시되지 않는 경우, 추가합니다.

  3. 다른 서버 혹은 풀 라인 설명

  4. YaST를 열고 chrony 서비스를 활성화하세요.

Windows

Windows AMI는 2018년 8월 릴리스부터 기본적으로 Amazon Time Sync Service를 사용합니다. 이러한 AMI에서 시작된 인스턴스에는 추가 구성이 필요하지 않으며 다음 절차를 건너뛰어도 됩니다.

기본적으로 Amazon Time Sync Service가 구성되지 않은 AMI를 사용하는 경우 먼저 현재 NTP 구성을 확인하세요. 인스턴스가 이미 Amazon Time Sync Service의 IPv4 엔드포인트를 사용하고 있는 경우 추가 구성이 필요하지 않습니다. 인스턴스가 Amazon Time Sync Service를 사용하지 않는 경우 Amazon Time Sync Service를 사용하도록 NTP 서버를 변경하는 절차를 완료합니다.

NTP 구성을 확인하려면
  1. 인스턴스에서 명령 프롬프트 창을 엽니다.

  2. 다음 명령을 입력하여 현재 NTP 구성을 가져옵니다.

    w32tm /query /configuration

    이 명령은 Windows 인스턴스에 대한 현재 구성 설정을 반환하고 Amazon Time Sync Service에 연결되어 있는지 보여줍니다.

  3. (선택 사항) 다음 명령을 입력하여 현재 구성의 상태를 가져옵니다.

    w32tm /query /status

    이 명령은 인스턴스를 NTP 서버와 마지막으로 동기화한 시간, 폴링 간격 등의 정보를 반환합니다.

Amazon Time Sync Service를 사용하도록 NTP 서버를 변경하려면
  1. 명령 프롬프트 창에서 다음 명령을 실행합니다.

    w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update
  2. 다음 명령을 사용하여 새 설정을 확인합니다.

    w32tm /query /configuration

    반환된 출력에서 NtpServer169.254.169.123 IPv4 엔드포인트가 표시되는지 확인합니다.

Amazon Windows AMI에 대한 기본 NTP 설정

일반적으로 Amazon Machine Image(AMI)는 EC2 인프라에서 함수 변경이 필요한 경우를 제외하고는 내장된 기본 설정을 그대로 유지합니다. 다음 설정은 가상 환경에서 잘 작동할 뿐 아니라 클럭 드리프트를 1초 이내의 정확도로 유지하는 것으로 판명되었습니다.

  • 업데이트 간격 - 시간 서비스가 시스템 시간의 정확도를 조정하는 빈도를 제어합니다. AWS는 업데이트 간격을 2분에 한 번으로 구성합니다.

  • NTP 서버 – AMI는 2018년 8월 릴리스부터 기본적으로 Amazon Time Sync Service를 사용합니다. 이 시간 서비스는 169.254.169.123 IPv4 엔드포인트에 있는 모든 AWS 리전에서 액세스할 수 있습니다. 뿐만 아니라 0x9 플래그는 시간 서비스가 클라이언트 역할을 하면서 SpecialPollInterval을 사용하여 구성된 시간 서버에 체크인하는 빈도를 파악함을 나타냅니다.

  • 유형 – “NTP”는 서비스가 도메인 일부의 역할을 수행하는 대신 독립 실행형 NTP 클라이언트의 역할을 수행할 것임을 뜻합니다.

  • 활성화 및 InputProvider – 시간 서비스가 활성화되어 운영 체제에 시간을 제공합니다.

  • 특수 폴링 간격 – 900초(15분)마다 구성된 NTP 서버를 확인합니다.

    참고

    Windows Server 2025 AMI의 경우 SpecialPollInterval 값은 900초가 아닌 1024초입니다.

레지스트리 경로 키 이름 Data

HKLM:\System\CurrentControlSet\services\w32time\Config

UpdateInterval

120

HKLM:\System\CurrentControlSet\services\w32time\Parameters

NtpServer

169.254.169.123,0x9

HKLM:\System\CurrentControlSet\services\w32time\Parameters

유형

NTP

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

활성

1

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

InputProvider

1

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

SpecialPollInterval

900(Windows Server 2016, 2019 및 2022) 또는 1024(Windows Server 2025)

Amazon Time Sync Service의 IPv6 엔드포인트 접근

이 섹션에서는 IPv6 엔드포인트를 통해 로컬 Amazon Time Sync Service를 사용하도록 인스턴스를 구성하는 경우 Amazon Time Sync Service의 IPv4 엔드포인트 접근에 설명된 단계가 어떻게 다른지 설명합니다. 전체 Amazon Time Sync Service 구성 프로세스를 설명하지는 않습니다.

IPv6 엔드포인트는 Nitro 기반 인스턴스에서만 액세스할 수 있습니다.

IPv4 및 IPv6 엔드포인트 항목을 함께 사용하는 것은 권장하지 않습니다. IPv4 및 IPv6 NTP 패킷은 인스턴스의 동일한 로컬 서버에서 가져옵니다. IPv4 엔드포인트와 IPv6 엔드포인트를 모두 구성할 필요는 없으며, 이렇게 해도 인스턴스의 시간 정확도가 향상되지 않습니다.

Linux

사용 중인 Linux 배포에 따라 chrony.conf 파일을 편집하는 단계에 도달하면 IPv4 엔드포인트(169.254.169.123) 대신 Amazon Time Sync Service(fd00:ec2::123)의 IPv6 엔드포인트를 사용합니다.

server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4

파일을 저장하고 chrony가 fd00:ec2::123 IPv6 엔드포인트를 사용하여 시간을 동기화하는지 확인합니다.

[ec2-user ~]$ chronyc sources -v

출력에 fd00:ec2::123 IPv6 엔드포인트가 표시될 경우 구성이 완료된 것입니다.

Windows

Amazon Time Sync Service를 사용하도록 NTP 서버를 변경하는 단계에 도달하면 IPv4 엔드포인트(169.254.169.123)가 아닌 Amazon Time Sync Service(fd00:ec2::123)의 IPv6 엔드포인트를 사용하게 됩니다.

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

새 설정이 fd00:ec2::123 IPv6 엔드포인트를 사용하여 시간을 동기화하고 있는지 확인합니다.

w32tm /query /configuration

출력에서 NtpServerfd00:ec2::123 IPv6 엔드포인트를 표시하는지 확인합니다.

강화된 Amazon Time Sync Service 접근

강화된 Amazon Time Sync Service는 지원되는 Amazon EC2 인스턴스에 더 높은 정확도의 로컬 시간 소스를 제공합니다. precision-time 전략을 사용하는 배치 그룹에서 시작된 인스턴스는 이러한 로컬 소스에 접근할 수 있습니다. 링크 로컬 NTP 소스 또는 Linux 인스턴스의 PTP Hardware Clock(PHC) 장치에서 더 정확한 시간이 필요한 애플리케이션에는 정밀 시간 배치 그룹을 권장합니다. 정밀 시간 배치 그룹으로 인스턴스를 시작하면 AWS은(는) AWS 인프라에서 고정밀 시간 소스에 직접 접근할 수 있는 지원 하드웨어에 인스턴스를 배치합니다.

주요 이점
  • 기본으로 개선된 NTP 소스 — 앞 섹션에서 설명한 NTP 링크 로컬 IP 주소를 사용하는 경우, 인스턴스는 강화된 로컬 NTP 시간 소스에 즉시 접근할 수 있습니다.

  • 마이크로초 단위의 정확한 클럭 동기화 — Amazon EC2 Linux 인스턴스를 PTP Hardware Clock 장치를 사용하도록 구성하여 마이크로초 단위의 정확한 클럭 동기화를 달성합니다.

  • 간편한 배포 — 단일 배치 전략으로 모든 인스턴스가 정밀 시간 기능을 갖도록 보장합니다.

  • 하드웨어 패킷 타임스탬프 — 네트워크 측정을 위한 하위 수준 패킷 타임스탬프에 접근합니다.

  • 추가 비용 없음 — 정밀 시간 배치 그룹은 추가 비용 없이 사용할 수 있습니다.

규칙 및 제한 사항
  • 정밀 시간 배치 그룹은 모든 AWS 상용 리전에서 사용할 수 있습니다.

  • 정밀 시간 배치 그룹은 다음 Gen7 이상 Amazon EC2 인스턴스 패밀리를 지원합니다.

    • 범용: M7a, M7g, M7g-flex, M7gd, M7i, M7i-flex, M8a, M8g, M8g-flex

    • 컴퓨팅 최적화: C7a, C7gd, C7i, C7i-flex, C8g, C8g-flex, C8gd

    • 메모리 최적화: R7a, R7g, R7i, R7id, R8g, X8adez, X8adz-3tb, X8adz-6tb, X8adzs, X8aedez, X8aedz-3tb, X8aedz-6tb, X8aez, X8az, X8g, X8ge

    • 스토리지 최적화: I8g, I8ge

  • 정밀 시간 배치 그룹에서 인스턴스를 시작하거나 시작할 때 강화된 Amazon Time Sync Service에 접근할 수 있는 하드웨어가 부족하면 요청이 실패합니다.

  • 정밀 시간 배치 그룹의 인스턴스를 중지했다가 다시 시작하면 여전히 해당 배치 그룹에서 실행됩니다. 다만 강화된 Amazon Time Sync Service에 접근할 수 있는 하드웨어가 부족한 경우 시작이 실패할 수 있습니다.

  • Amazon EC2는 강화된 Amazon Time Sync Service를 지원하는 하드웨어를 지속적으로 추가하고 있습니다. 용량 부족으로 요청이 실패하면 나중에 다시 시도하거나 다른 가용 영역을 시도하세요. 자세한 내용은 Amazon EC2 인스턴스 시작 문제 해결 섹션을 참조하세요.

  • 배치 그룹의 규칙 및 제한 사항이 적용됩니다. 자세한 내용은 Amazon EC2 인스턴스에 대한 배치 그룹 섹션을 참조하세요.

정밀 시간 배치 그룹 생성

precision-time 전략을 지정하여 AWS CLI, AWS 관리 콘솔 또는 AWS SDK를 사용하여 정밀 시간 배치 그룹을 생성할 수 있습니다.

AWS CLI 사용

다음 명령을 실행합니다.

aws ec2 create-placement-group \ --group-name my-precision-time-pg \ --strategy precision-time

이 명령은 용량 예약 생성 시 사용하는 배치 그룹 ARN과, 인스턴스 시작 및 배치 그룹 연결 시 사용하는 그룹 이름 또는 그룹 ID를 반환합니다.

인스턴스 시작

정밀 시간 배치 그룹을 생성한 후에는 강화된 Amazon Time Sync Service에 접근하기 위해 인스턴스 시작 시 이를 지정하세요.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type r7g.2xlarge \ --placement GroupId=pg-0aaa1111111111111

강화된 Amazon Time Sync Service 접근 확인

정밀 시간 배치 그룹에서 인스턴스를 시작하면 강화된 NTP 시간 소스의 이점을 받을 수 있습니다.

예를 들어 인스턴스에서 chronyd 데몬을 사용하는 경우, NTP 시간 소스가 이제 Stratum 1로 표시되고 클럭 정확도 지표가 개선되었는지 확인할 수 있습니다.

[ec2-user ~]$ chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 1 4 377 3 +3477ns[+4689ns] +/- 91us

chrony에서 보고된 시간 동기화 지표를 확인합니다.

[ec2-user ~]$ chronyc tracking
Reference ID : A9FEA97B (169.254.169.123) Stratum : 2 Ref time (UTC) : Wed May 06 01:33:43 2026 System time : 0.000000276 seconds fast of NTP time Last offset : +0.000000331 seconds RMS offset : 0.000001929 seconds Frequency : 2.870 ppm fast Residual freq : +0.000 ppm Skew : 0.031 ppm Root delay : 0.000107584 seconds Root dispersion : 0.000036476 seconds Update interval : 16.2 seconds Leap status : Normal

PTP Hardware Clock(PHC) 접근

PTP Hardware Clock(PHC)은 AWS Nitro System의 일부입니다. 이는 정밀 시간 배치 그룹에서 시작된 지원되는 베어 메탈 및 가상화 Amazon EC2 인스턴스에서 직접 접근할 수 있습니다. PHC 장치는 현재 Linux 인스턴스에서만 접근할 수 있습니다. 다음 섹션에서는 Linux 인스턴스에서 PHC 장치를 설정하고 확인하는 방법을 설명합니다.

요구 사항

  • 지원되는 운영 체제에 ENA 드라이버 버전 2.10.0 이상이 설치되어 있어야 합니다.

  • Linux를 실행하는 Amazon EC2 인스턴스. 지원되는 운영 체제에 대한 자세한 내용은 GitHub의 드라이버 사전 조건을 참조하세요.

  • 정밀 시간 배치 그룹에서 시작된 Amazon EC2 인스턴스(강화된 Amazon Time Sync Service 접근 참조).

참고

강화된 Amazon Time Sync Service와 PHC 장치는 다음 리전 및 특정 인스턴스 패밀리에서 정밀 시간 배치 그룹 없이도 계속 접근할 수 있습니다. 최상의 환경을 위해 Amazon EC2 인스턴스를 정밀 배치 그룹에서 시작하는 것을 권장합니다.

  • 레거시 액세스 지원 AWS 리전: 미국 동부(버지니아 북부), 미국 동부(오하이오), 아시아 태평양(말레이시아), 아시아 태평양(태국), 아시아 태평양(도쿄), 유럽(스톡홀름)

  • 레거시 액세스 지원 로컬 존: 미국 동부(뉴욕)

  • 레거시 액세스 지원 인스턴스 패밀리:

    • 범용: M7a, M7g, M7i

    • 메모리 최적화: R7a, R7g, R7i

    • 스토리지 최적화: I8g, I8ge

PHC 지원과 함께 ENA 드라이버 컴파일 및 활성화

운영 체제에 맞는 최신 정보는 항상 GitHub의 최신 ENA(Elastic Network Adapter) 드라이버 버전 ENA 드라이버 문서를 참조하세요. 다음은 Amazon Linux에 대한 단계 개요입니다.

시작하기 전에 인스턴스가 요구 사항을(를) 충족하는지 확인하세요.

PHC 지원과 함께 ENA 드라이버를 컴파일하고 활성화하는 방법
  1. 필수 구성 요소 설치.

    [ec2-user ~]$ sudo yum update [ec2-user ~]$ sudo yum install kernel-devel-$(uname -r) git [ec2-user ~]$ sudo reboot
  2. 필요한 ptp 모듈 로드.

    [ec2-user ~]$ sudo modprobe ptp
  3. 최신 ENA 드라이버 버전(버전 2.10.0 이상)을 검색합니다.

    [ec2-user ~]$ git clone https://github.com/amzn/amzn-drivers.git /tmp/amzn-drivers
  4. PHC 지원과 함께 ENA 드라이버 ena.ko 빌드.

    [ec2-user ~]$ cd /tmp/amzn-drivers/kernel/linux/ena [ec2-user ~]$ ENA_PHC_INCLUDE=1 make
  5. ENA 드라이버 재로드 및 PHC 장치 활성화.

    [ec2-user ~]$ sudo rmmod ena && sudo insmod ena.ko phc_enable=1
  6. 로드된 ENA 드라이버에 PHC 지원이 있는지 확인.

    [ec2-user ~]$ modinfo ena | grep -E "phc_enable"
    parm: phc_enable:Enable PHC.
  7. ENA 드라이버에서 PHC 지원이 활성화되었는지 확인.

    [ec2-user ~]$ cat /sys/module/ena/parameters/phc_enable
    1

드라이버 설치 및 재부팅 시 phc_enable 옵션 활성화 방법은 GitHubENA 드라이버 README를 참조하세요.

PTP 장치 구성 확인

인스턴스에 ENA PTP 하드웨어 클럭 디바이스가 표시되는지 확인하세요.

[ec2-user ~]$ for file in /sys/class/ptp/*; do echo -n "$file: "; cat "$file/clock_name"; done

예상 결과

/sys/class/ptp/ptp<index>: ena-ptp-<PCI slot>

위치:

  • index는 커널에 등록된 PTP 하드웨어 클럭 인덱스입니다.

  • PCI slot은 ENA 이더넷 컨트롤러 PCI 슬롯입니다. lspci | grep ENA에 표시된 것과 동일한 슬롯입니다.

출력 예시

/sys/class/ptp/ptp0: ena-ptp-05

ena-ptp-<PCI slot>이 출력에 없으면 ENA 드라이버가 제대로 설치되지 않은 것입니다. PHC 지원과 함께 ENA 드라이버 컴파일 및 활성화의 단계를 검토하세요.

PTP 디바이스 이름은 하드웨어 초기화 순서에 따라 인덱스가 지정되며 일반적으로 /dev/ptp0, /dev/ptp1 등입니다. symlink를 생성하면 chrony와 같은 애플리케이션이 인덱스 변경에 관계없이 올바른 디바이스를 일관되게 참조할 수 있습니다.

최신 Amazon Linux 2023 AMI에는 ENA 호스트에 연결된 올바른 /dev/ptp 항목을 가리키는 /dev/ptp_ena symlink를 생성하는 udev 규칙이 포함되어 있습니다.

먼저 다음 명령을 실행하여 심볼릭 링크가 있는지 확인합니다.

[ec2-user ~]$ ls -l /dev/ptp*

출력 예시

crw------- 1 root root 245, 0 Jan 31 2025 /dev/ptp0 lrwxrwxrwx 1 root root 4 Jan 31 2025 /dev/ptp_ena -> ptp0

위치:

  • /dev/ptp<index>는 PTP 디바이스에 대한 경로입니다.

  • /dev/ptp_ena는 동일한 PTP 디바이스를 가리키는 상수 symlink입니다.

/dev/ptp_ena 심볼릭 링크가 있으면 PHC 장치를 사용하도록 chronyd 대몬 구성(으)로 건너뜁니다. 누락된 경우 다음 중 하나를 수행하세요.

PTP 심볼릭 링크 생성 방법
  1. 다음 udev 규칙을 추가하세요.

    [ec2-user ~]$ echo "SUBSYSTEM==\"ptp\", ATTR{clock_name}==\"ena-ptp-*\", SYMLINK += \"ptp_ena\"" | sudo tee -a /etc/udev/rules.d/53-ec2-network-interfaces.rules
  2. 인스턴스를 재부팅하거나 다음 명령을 실행하여 udev 규칙을 다시 로드하세요.

    [ec2-user ~]$ sudo udevadm control --reload-rules && sudo udevadm trigger

PHC 장치를 사용하도록 chronyd 대몬 구성

chronyd 클럭 동기화 대몬은 /dev/ptp_ena 심볼릭 링크를 사용하여 장치를 식별하는 방식으로, PHC 장치를 추가 시간 소스로 사용하도록 구성해야 합니다.

chronyd 대몬이 PHC 장치를 사용하도록 구성하는 방법
  1. 텍스트 편집기로 /etc/chrony.conf을(를) 편집하고 다음 줄을 추가합니다.

    refclock PHC /dev/ptp_ena poll 0 delay 0.000010 prefer
  2. chrony를 다시 시작합니다.

    [ec2-user ~]$ sudo systemctl restart chronyd
  3. chrony가 PTP 하드웨어 클럭을 사용하고 있는지 확인합니다. PHC0 장치가 Stratum 0 값을 가진 우선 시간 소스여야 합니다. 로컬 NTP 시간 소스(구성된 경우)는 Stratum 1 값을 가져야 합니다.

    [ec2-user ~]$ chronyc sources
    MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 0 377 0 +184ns[ +198ns] +/- 5032ns ^- 169.254.169.123 1 4 377 8 -18us[ -18us] +/- 115us

하드웨어 패킷 타임스탬프 확인

PHC 지원과 함께 로드된 ENA 드라이버는 하드웨어 패킷 타임스탬프에 대한 접근을 제공합니다. ethtool -T interface 명령을 사용하여 이 기능의 지원 여부를 확인할 수 있습니다.

하드웨어 패킷 타임스탬프 사용에 대한 자세한 내용은 패킷 타임스탬프 Linux 문서를 참조하세요.

[ec2-user ~]$ sudo ethtool -T ens5
Time stamping parameters for ens5: Capabilities: software-transmit hardware-receive software-receive software-system-clock PTP Hardware Clock: 0 Hardware Transmit Timestamp Modes: none Hardware Receive Filter Modes: none all

출력에 Capabilities 목록에서 hardware-receive이(가) 표시되면 인스턴스에서 하드웨어 패킷 타임스탬프를 사용할 수 있습니다.