EC2 인스턴스의 시간 기준을 로컬 Amazon Time Sync Service로 설정하기
EC2 인스턴스의 시간 기준을 로컬 Amazon Time Sync Service로 설정하기
Amazon Time Sync Service는 Amazon EC2 인스턴스가 로컬 시간 소스에 동기화할 수 있는 여러 방법을 제공해요. 먼저 모든 Amazon EC2 인스턴스는 NTP(Network Time Protocol)로 로컬 시간 소스에 도달할 수 있습니다. 추가로, 향상된 Amazon Time Sync Service는 지원되는 Amazon EC2 인스턴스에 더 높은 정확도의 로컬 시간 소스를 제공해요. 더 높은 정확도의 NTP 소스에 도달하려면 지원되는 인스턴스를 precision-time 전략의 배치 그룹(placement group)에서 실행하면 됩니다. 마지막으로 precision time 배치 그룹에서 실행된 Linux 인스턴스는 PTP 하드웨어 클록(PHC) 장치에 접근하고 하드웨어 패킷 타임스탬프를 검색할 수 있어요.
출처: 문서
본문
모든 Amazon EC2 인스턴스는 로컬 NTP 소스에 접근할 수 있어요. **링크-로컬 IP 주소(link-local IP address)**로 NTP 소스에 도달할 수 있는데, 이는 특정 VPC 구성 변경 없이 이 트래픽을 VPC 내로 제한합니다. AMI가 기본적으로 클록 동기화 데몬을 로컬 NTP 소스에 사용하도록 이미 구성했을 수 있어요. 이 NTP 소스는 다음 IP 주소로 제공됩니다.
- IPv4:
169.254.169.123 - IPv6:
fd00:ec2::123(Nitro 기반 인스턴스에서만 접근 가능)
지원되는 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 인스턴스의 더 정확한 동기화로 이어져요.
고려사항 (Considerations)
- NTP 시간 소스는 UTC 시간 척도의 윤초 스미어(leap smearing) 보기를 제공하지만, PHC는 시간을 스미어하지 않아요. 자세한 내용은 Leap seconds 문서를 참고하세요.
- Linux 인스턴스만 로컬 PTP 하드웨어 클록에 접근할 수 있어요. Windows 인스턴스는 향상된 Amazon Time Sync Service에 접근하려면 NTP를 사용해야 합니다.
- 링크-로컬 주소를 사용하는 서비스에는 초당 1024 패킷(PPS) 제한이 있어요. 이 제한에는 Route 53 Resolver DNS 쿼리, Instance Metadata Service(IMDS) 요청, Amazon Time Sync Service NTP 요청, Windows Licensing Service(Windows 기반 인스턴스용) 요청의 합계가 포함됩니다.
목차 (Contents)
- Amazon Time Sync Service의 IPv4 엔드포인트 접근 (Access the IPv4 endpoint)
- Amazon Time Sync Service의 IPv6 엔드포인트 접근 (Access the IPv6 endpoint)
- 향상된 Amazon Time Sync Service 접근 (Access the enhanced Amazon Time Sync Service)
- PTP 하드웨어 클록(PHC) 접근 (Access the PTP Hardware Clock)
Amazon Time Sync Service의 IPv4 엔드포인트 접근하기
AMI가 기본적으로 Amazon Time Sync Service를 구성해 두었을 수 있어요. 그렇지 않으면 다음 절차를 사용해 IPv4 엔드포인트를 통해 인스턴스가 로컬 Amazon Time Sync Service를 사용하도록 구성합니다.
트러블슈팅 도움은 Troubleshoot NTP synchronization issues on Linux instances 또는 Troubleshoot time issues on Windows instances 문서를 참고하세요.
Amazon Linux
AL2023과 최신 버전의 Amazon Linux 2는 기본적으로 Amazon Time Sync Service IPv4 엔드포인트를 사용하도록 구성되어 있어요. 인스턴스가 이미 구성되어 있음을 확인하면 다음 절차를 건너뛸 수 있습니다.
chrony가 IPv4 엔드포인트를 사용하도록 구성되었는지 확인하려면
다음 명령을 실행합니다. 출력에서 ^*로 시작하는 줄이 선호 시간 소스를 나타내요.
[ec2-user ~]$ chronyc sources -v | grep -F ^*
^* 169.254.169.123 3 4 377 13 -4325ns[-9201ns] +/- 401us
이전 버전의 Amazon Linux 2에서 chrony가 IPv4 엔드포인트에 연결하도록 구성하려면
- 인스턴스에 연결하고 NTP 서비스를 제거합니다.
[ec2-user ~]$ sudo yum erase 'ntp*'
- chrony 패키지를 설치합니다.
[ec2-user ~]$ sudo yum install chrony
- 텍스트 편집기(예:
vim또는nano)로/etc/chrony.conf파일을 엽니다. 파일에 있을 수 있는 다른 server나 pool 문보다 앞에 다음 줄을 추가하고 변경 사항을 저장합니다.
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
- chrony 데몬(chronyd)을 다시 시작합니다.
[ec2-user ~]$ sudo service chronyd restart
Starting chronyd: [ OK ]
참고: RHEL과 CentOS(버전 6까지)에서는 서비스 이름이
chronyd가 아니라chrony입니다.
- 각 시스템 부팅 시 chronyd가 시작되도록 구성하려면
chkconfig명령을 사용합니다.
[ec2-user ~]$ sudo chkconfig chronyd on
- chrony가
169.254.169.123IPv4 엔드포인트를 사용해 시간을 동기화하고 있는지 확인합니다.
[ec2-user ~]$ chronyc sources -v | grep -F ^*
출력에서 ^*는 선호 시간 소스를 나타내요.
^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us
- 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에서 chrony를 IPv4 엔드포인트에 연결하도록 구성하려면
- 인스턴스에 연결하고
apt로 chrony 패키지를 설치합니다.
ubuntu:~$ sudo apt install chrony
참고: 필요하다면 먼저
sudo apt update를 실행해 인스턴스를 업데이트하세요.
- 텍스트 편집기(예:
vim또는nano)로/etc/chrony/chrony.conf파일을 엽니다. 파일에 이미 있는 다른 server나 pool 문보다 앞에 다음 줄을 추가합니다. 변경 사항을 저장하세요.
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
- chrony 서비스를 다시 시작합니다.
ubuntu:~$ sudo /etc/init.d/chrony restart
Restarting chrony (via systemctl): chrony.service.
- chrony가
169.254.169.123IPv4 엔드포인트를 사용해 시간을 동기화하고 있는지 확인합니다.
ubuntu:~$ chronyc sources -v | grep -F ^*
출력에서 ^*로 시작하는 줄이 선호 시간 소스를 나타내요.
^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us
- 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에서 chrony를 IPv4 엔드포인트에 연결하도록 구성하려면
- 텍스트 편집기(예:
vim또는nano)로/etc/chrony.conf파일을 엽니다. - 파일에 다음 줄이 포함되어 있는지 확인합니다.
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
이 줄이 없으면 추가하세요. 3. 다른 server나 pool 줄은 주석 처리합니다. 4. YaST를 열고 chrony 서비스를 활성화합니다.
Windows
2018년 8월 릴리스부터 Windows AMI는 기본적으로 Amazon Time Sync Service를 사용합니다. 이 AMI에서 실행된 인스턴스에는 추가 구성이 필요 없으며 다음 절차를 건너뛸 수 있어요.
기본적으로 Amazon Time Sync Service가 구성되지 않은 AMI를 사용한다면 먼저 현재 NTP 구성을 확인하세요. 인스턴스가 이미 Amazon Time Sync Service의 IPv4 엔드포인트를 사용하고 있다면 추가 구성이 필요 없습니다. 인스턴스가 Amazon Time Sync Service를 사용하지 않는다면 NTP 서버를 Amazon Time Sync Service로 변경하는 절차를 완료하세요.
NTP 구성을 확인하려면
- 인스턴스에서 명령 프롬프트(Command Prompt) 창을 엽니다.
- 다음 명령을 입력해 현재 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 설정
AMI(Amazon Machine Image)는 EC2 인프라스트럭처에서 작동하는 데 필요한 변경이 있는 경우를 제외하고 일반적으로 **기본 그대로의 기본값(box defaults)**을 따릅니다. 가상 환경에서 잘 작동하고 클록 드리프트를 1초 이내의 정확도로 유지하는 것으로 확인된 설정은 다음과 같습니다.
| 항목 | 설명 |
|---|---|
| Update Interval | 시간 서비스가 시스템 시간을 정확도에 맞게 조정하는 빈도를 관리합니다. AWS는 업데이트 간격을 2분마다 한 번으로 구성해요. |
| NTP Server | 2018년 8월 릴리스부터 AMI는 기본적으로 Amazon Time Sync Service를 사용합니다. 이 시간 서비스는 모든 AWS Region에서 169.254.169.123 IPv4 엔드포인트로 접근할 수 있어요. 또한 0x9 플래그는 시간 서비스가 클라이언트로 작동하며, 구성된 시간 서버에 얼마나 자주 체크인할지 결정하는 데 SpecialPollInterval을 사용함을 나타냅니다. |
| Type | "NTP"는 서비스가 도메인의 일부로 작동하는 대신 독립형 NTP 클라이언트로 작동함을 의미합니다. |
| Enabled 및 InputProvider | 시간 서비스가 활성화되어 운영 체제에 시간을 제공합니다. |
| Special Poll Interval | 구성된 NTP Server에 900초(15분)마다 체크합니다. |
참고: Windows Server 2025 AMI의 경우 SpecialPollInterval 값은 900초가 아니라 1024초입니다.
| 레지스트리 경로 (Registry path) | 키 이름 (Key name) | 데이터 (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 |
Type | NTP |
HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient |
Enabled | 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 엔드포인트 접근하기
이 섹션은 IPv4 엔드포인트 접근에서 설명한 단계가 IPv6 엔드포인트로 인스턴스를 구성할 때 어떻게 달라지는지 설명해요. 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의 **IPv6 엔드포인트(fd00:ec2::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 엔드포인트가 보이면 구성이 완료된 것입니다.
Windows
NTP 서버를 Amazon Time Sync Service로 변경하는 단계에 도달하면 IPv4 엔드포인트(169.254.169.123) 대신 IPv6 엔드포인트(fd00:ec2::123)를 사용하게 됩니다.
w32tm /config /manualpeerlist:fd00:ec2::123 /syncfromflags:manual /update
새 설정이 fd00:ec2::123 IPv6 엔드포인트를 사용해 시간을 동기화하는지 확인합니다.
w32tm /query /configuration
출력에서 NtpServer가 fd00:ec2::123 IPv6 엔드포인트를 표시하는지 확인하세요.
향상된 Amazon Time Sync Service 접근하기
향상된 Amazon Time Sync Service는 지원되는 Amazon EC2 인스턴스에 더 높은 정확도의 로컬 시간 소스를 제공해요. precision-time 전략의 배치 그룹에서 실행된 인스턴스는 이러한 로컬 소스에 접근할 수 있습니다.
링크-로컬 NTP 소스나 Linux 인스턴스의 PTP 하드웨어 클록(PHC) 장치 중 하나에서 더 정확한 시간이 필요한 애플리케이션에는 precision time 배치 그룹을 권장합니다. 인스턴스를 precision time 배치 그룹에 실행하면 AWS가 인스턴스를 AWS 인프라스트럭처의 고정밀 시간 소스에 직접 접근할 수 있는 지원 하드웨어에 배치합니다.
주요 장점 (Key benefits)
- 기본적으로 개선된 NTP 소스 – 앞 섹션에서 설명한 대로 NTP 링크-로컬 IP 주소를 사용한다면 인스턴스가 향상된 로컬 NTP 시간 소스에 즉시 접근할 수 있어요.
- 마이크로초 정확도의 클록 동기화 – Amazon EC2 Linux 인스턴스를 PTP 하드웨어 클록 장치를 사용하도록 구성해 마이크로초 정확도의 클록 동기화를 달성합니다.
- 간소화된 배포 – 단일 배치 전략으로 모든 인스턴스가 precision time 기능을 갖추게 합니다.
- 하드웨어 패킷 타임스탬핑 – 네트워크 측정을 위한 저수준 패킷 타임스탬프에 접근합니다.
- 추가 비용 없음 – precision time 배치 그룹은 추가 요금 없이 사용할 수 있어요.
규칙과 제한사항 (Rules and limitations)
- precision time 배치 그룹은 모든 AWS 상용 리전에서 사용할 수 있습니다.
- precision time 배치 그룹은 다음 Gen7 이후 Amazon EC2 인스턴스 패밀리를 지원합니다.
- 범용(General purpose): M7a, M7g, M7gd, M7i, M7i-flex, M8a, M8g
- 컴퓨팅 최적화(Compute optimized): C7a, C7gd, C7i, C7i-flex, C8g, C8gd
- 메모리 최적화(Memory optimized): R7a, R7g, R7i, R8g, X8g
- 스토리지 최적화(Storage optimized): I8g, I8ge
- precision time 배치 그룹에서 인스턴스를 시작하거나 실행하는데 향상된 Amazon Time Sync Service에 접근할 하드웨어가 충분하지 않으면 요청이 실패합니다.
- precision time 배치 그룹에서 인스턴스를 중지한 뒤 다시 시작하면 여전히 배치 그룹에서 실행됩니다. 하지만 향상된 Amazon Time Sync Service에 접근할 하드웨어가 충분하지 않으면 시작이 실패할 수 있어요.
- Amazon EC2는 향상된 Amazon Time Sync Service를 지원하는 하드웨어를 지속적으로 추가합니다. 용량 부족으로 요청이 실패하면 나중에 다시 시도하거나 다른 가용 영역을 시도하세요. 자세한 내용은 Troubleshoot Amazon EC2 instance launch issues 문서를 참고하세요.
- 배치 그룹의 규칙과 제한사항이 적용됩니다. 자세한 내용은 Placement groups for your Amazon EC2 instances 문서를 참고하세요.
precision time 배치 그룹 만들기
AWS CLI, AWS Management Console, 또는 AWS SDK를 사용해 precision-time 전략을 지정함으로써 precision time 배치 그룹을 만들 수 있어요.
AWS CLI 사용
다음 명령을 실행합니다.
aws ec2 create-placement-group \
--group-name my-precision-time-pg \
--strategy precision-time
이 명령은 Capacity Reservations를 만들 때 사용하는 배치 그룹 ARN과, 인스턴스를 실행하고 배치 그룹을 연결할 때 사용하는 그룹 이름 또는 그룹 ID를 반환합니다.
인스턴스 실행
precision time 배치 그룹을 만든 뒤 인스턴스를 실행할 때 이를 지정해 향상된 Amazon Time Sync Service에 접근합니다.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type r7g.2xlarge \
--placement GroupId=pg-0aaa1111111111111
향상된 Amazon Time Sync Service 접근 확인
precision time 배치 그룹에서 인스턴스를 실행하면 향상된 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 하드웨어 클록(PHC) 접근하기
**PTP 하드웨어 클록(PHC)**은 AWS Nitro System의 일부예요. precision time 배치 그룹에서 실행된 지원되는 베어 메탈 및 가상화 Amazon EC2 인스턴스에서 직접 접근할 수 있습니다. PHC 장치는 현재 Linux 인스턴스에서만 접근 가능합니다. 다음 섹션은 Linux 인스턴스에서 PHC 장치를 설정하고 확인하는 방법을 설명해요.
요구사항 (Requirements)
- 지원되는 운영 체제에 ENA 드라이버 버전 2.10.0 이상이 설치되어 있어야 합니다.
- Linux를 실행하는 Amazon EC2 인스턴스. 지원되는 운영 체제에 대한 자세한 내용은 GitHub의 드라이버 사전 조건을 참고하세요.
- precision time 배치 그룹에서 실행된 Amazon EC2 인스턴스(Access the enhanced Amazon Time Sync Service 참고).
참고: 향상된 Amazon Time Sync Service와 PHC 장치는 다음 리전과 특정 인스턴스 패밀리에서는 precision time 배치 그룹 없이도 접근할 수 있습니다. 최상의 경험을 위해 Amazon EC2 인스턴스를 precision 배치 그룹에서 실행할 것을 권장합니다.
- 레거시 접근 지원 AWS 리전: US East (N. Virginia), US East (Ohio), Asia Pacific (Malaysia), Asia Pacific (Thailand), Asia Pacific (Tokyo), Europe (Stockholm)
- 레거시 접근 지원 Local Zones: US East (New York City)
- 레거시 접근 지원 인스턴스 패밀리:
- 범용(General purpose): M7a, M7g, M7i
- 메모리 최적화(Memory optimized): R7a, R7g, R7i
- 스토리지 최적화(Storage optimized): I8g, I8ge
PHC 지원으로 ENA 드라이버 컴파일 및 활성화
운영 체제에 특화된 정보는 GitHub의 ENA 드라이버 문서에서 최신 ENA(Elastic Network Adapter) 드라이버 버전의 가장 최근 지침을 항상 검토하세요. 다음은 Amazon Linux에 대한 단계 개요입니다.
시작하기 전에 인스턴스가 요구사항을 충족하는지 확인하세요.
PHC 지원으로 ENA 드라이버를 컴파일하고 활성화하려면
- 사전 조건을 설치합니다.
[ec2-user ~]$ sudo yum update
[ec2-user ~]$ sudo yum install kernel-devel-$(uname -r) git
[ec2-user ~]$ sudo reboot
- 필요한 ptp 모듈을 로드합니다.
[ec2-user ~]$ sudo modprobe ptp
- 최신 ENA 드라이버 버전(2.10.0 이상)을 검색합니다.
[ec2-user ~]$ git clone https://github.com/amzn/amzn-drivers.git /tmp/amzn-drivers
- PHC 지원으로 ENA 드라이버
ena.ko를 빌드합니다.
[ec2-user ~]$ cd /tmp/amzn-drivers/kernel/linux/ena
[ec2-user ~]$ ENA_PHC_INCLUDE=1 make
- ENA 드라이버를 다시 로드하고 PHC 장치를 활성화합니다.
[ec2-user ~]$ sudo rmmod ena && sudo insmod ena.ko phc_enable=1
- 로드된 ENA 드라이버가 PHC 지원을 하는지 검증합니다.
[ec2-user ~]$ modinfo ena | grep -E "phc_enable"
parm: phc_enable:Enable PHC.
- PHC 지원이 ENA 드라이버로 활성화되었는지 검증합니다.
[ec2-user ~]$ cat /sys/module/ena/parameters/phc_enable
1
재부팅 시 드라이버를 설치하고 phc_enable 옵션을 활성화하는 지침은 GitHub의 ENA 드라이버 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 드라이버가 올바르게 설치되지 않은 것입니다. Compile and enable the ENA driver with PHC support의 단계를 검토하세요.
PTP 심링크 구성
PTP 장치는 일반적으로 /dev/ptp0, /dev/ptp1 등으로 이름이 지정되며, 인덱스는 하드웨어 초기화 순서에 따라 달라져요. 심링크(symlink)를 만들면 chrony 같은 애플리케이션이 인덱스 변경과 관계없이 올바른 장치를 일관되게 참조할 수 있습니다.
최신 Amazon Linux 2023 AMI에는 ENA 호스트와 연결된 올바른 /dev/ptp 항목을 가리키는 /dev/ptp_ena 심링크를 만드는 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 장치를 가리키는 상수 심링크입니다.
/dev/ptp_ena 심링크가 있으면 Configure the chronyd daemon to use the PHC device로 건너뜁니다. 없으면 다음을 수행하세요.
PTP 심링크를 만들려면
- 다음 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
- 인스턴스를 재부팅하거나 다음 명령을 실행해 udev 규칙을 다시 로드합니다.
[ec2-user ~]$ sudo udevadm control --reload-rules && sudo udevadm trigger
chronyd 데몬이 PHC 장치를 사용하도록 구성
chronyd 클록 동기화 데몬이 추가 시간 소스로 PHC 장치를 사용하도록 구성해야 하며, 장치 식별에는 /dev/ptp_ena 심링크를 사용합니다.
chronyd 데몬이 PHC 장치를 사용하도록 구성하려면
- 텍스트 편집기로
/etc/chrony.conf를 편집하고 다음 줄을 추가합니다.
refclock PHC /dev/ptp_ena poll 0 delay 0.000010 prefer
- chrony를 다시 시작합니다.
[ec2-user ~]$ sudo systemctl restart chronyd
- 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 문서의 packet timestamping을 참고하세요.
[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가 보이면 하드웨어 패킷 타임스탬핑이 인스턴스에서 사용 가능한 것입니다.