Linux 인스턴스의 타임스탬프 비교 - Amazon Elastic Compute Cloud

Linux 인스턴스의 타임스탬프 비교

Amazon Time Sync Service를 사용하는 경우 Amazon EC2 Linux 인스턴스의 타임스탬프를 ClockBound와 비교하여 이벤트의 실제 시간을 결정할 수 있습니다. ClockBound는 EC2 인스턴스의 클록 정확도를 측정하고 지정된 타임스탬프가 인스턴스의 현재 클록과 관련하여 과거인지 미래인지 확인할 수 있도록 합니다. 이 정보는 각 인스턴스의 지리적 위치에 관계없이 EC2 인스턴스 전체에서 이벤트 및 트랜잭션의 순서와 일관성을 결정하는 데 유용합니다.

ClockBond는 오픈 소스 데몬과 라이브러리입니다. 설치 지침을 포함하여 ClockBound에 대한 자세한 내용은 GitHubClockBound를 참조하세요.

ClockBound는 Linux 인스턴스에서만 지원됩니다.

PTP 하드웨어 클럭에 대한 직접 PTP 연결을 사용하는 경우 chrony와 같은 시간 대몬(daemon)은 클럭 오차 범위를 과소평가합니다. 이는 PTP 하드웨어 클럭이 NTP와 같은 방식으로 올바른 오차 범위 정보를 chrony에 전달하지 않기 때문입니다. 따라서 시계 동기화 대몬(daemon)은 클럭이 UTC에 정확하다고 가정하므로 오차 범위가 0입니다. 전체 오차 범위를 측정하기 위해 Nitro System은 PTP 하드웨어 클럭의 오차 범위를 계산하고 이를 ENA 드라이버 sysfs 파일 시스템을 통해 EC2 인스턴스에서 사용할 수 있도록 지원합니다. 나노초 단위의 값으로 직접 읽을 수 있습니다.

PTP 하드웨어 클럭 오류 범위를 검색하는 방법
  1. 먼저 다음 명령 중 하나를 사용하여 PTP 하드웨어 클록 디바이스의 올바른 위치를 가져옵니다. 명령의 경로는 인스턴스를 시작할 때 사용한 AMI에 따라 달라집니다.

    • 대상 Amazon Linux 2:

      cat /sys/class/net/eth0/device/uevent | grep PCI_SLOT_NAME
    • Amazon Linux 2023의 경우:

      cat /sys/class/net/ens5/device/uevent | grep PCI_SLOT_NAME

    출력은 PTP 하드웨어 클럭 디바이스의 위치인 PCI 슬롯 이름입니다. 이 예제에서 위치는 0000:00:03.0입니다.

    PCI_SLOT_NAME=0000:00:03.0
  2. PTP 하드웨어 클럭 오차 범위를 검색하려면 다음 명령을 실행합니다. 이전 단계의 PCI 슬롯 이름을 포함합니다.

    cat /sys/bus/pci/devices/0000:00:03.0/phc_error_bound

    출력은 PTP 하드웨어 클럭의 클럭 오차 범위(나노초)입니다.

PTP 하드웨어 클럭에 대한 직접 PTP 연결을 사용할 때 특정 시점의 올바른 클럭 오차 범위를 계산하려면 chrony가 PTP 하드웨어 클럭을 폴링하는 시간에 chrony 또는 ClockBound에서 바인딩된 클럭 오차를 추가해야 합니다. 클럭 정확도 측정 및 모니터링에 대한 자세한 내용은 Manage Amazon EC2 instance clock accuracy using Amazon Time Sync Service and Amazon CloudWatch – Part 1을 참조하세요.