EC2 인스턴스의 정밀 시계와 시간 동기화
EC2 인스턴스의 정밀 시계와 시간 동기화 (Precision clock and time synchronization on your EC2 instance)
Amazon EC2 인스턴스에 일관되고 정확한 시간 기준이 있는 것은 많은 서버 작업과 프로세스에 매우 중요해요. 시스템 로그의 타임스탬프는 문제가 발생한 시점과 이벤트의 시간 순서를 식별하는 데 필수적인 역할을 해요. 인스턴스에서 AWS CLI나 AWS SDK로 요청을 만들면 이러한 도구가 사용자를 대신해 요청에 서명해요. 인스턴스의 날짜·시간 설정이 부정확하면 서명의 날짜와 요청 날짜 사이에 불일치가 생겨 AWS가 요청을 거부할 수 있어요.
이 중요한 측면을 해결하기 위해 Amazon은 모든 EC2 인스턴스에서 액세스할 수 있고 다양한 AWS 서비스가 사용하는 Amazon Time Sync Service(아마존 시간 동기화 서비스)를 제공해요. 이 서비스는 각 AWS 리전의 위성 연결 및 원자 기준 시계 플릿(fleet)을 사용해 UTC(협정 세계시) 글로벌 표준의 정확하고 현재의 시간 판독값을 전달해요.
최상의 성능을 위해 EC2 인스턴스의 로컬 Amazon Time Sync Service를 사용할 것을 권장해요. 로컬 Amazon Time Sync Service의 백업으로, 또는 Amazon EC2 외부의 리소스를 Amazon Time Sync Service에 연결하려면 time.aws.com에 있는 퍼블릭 Amazon Time Sync Service를 사용할 수 있어요. 퍼블릭 Amazon Time Sync Service는 로컬 Amazon Time Sync Service와 마찬가지로 UTC에 추가되는 윤초(leap seconds)를 자동으로 스미어(smear)해요. 퍼블릭 Amazon Time Sync Service는 각 AWS 리전의 위성 연결 및 원자 기준 시계 플릿으로 전 세계적으로 지원돼요.
하드웨어 패킷 타임스탬프 (Hardware packet timestamping)
인스턴스에서 하드웨어 패킷 타임스탬프를 활성화하면 들어오는 모든 네트워크 패킷에 64비트 나노초 정밀도 타임스탬프를 추가할 수 있어요. 하드웨어 패킷 타임스탬프는 하드웨어 수준에서 — 패킷이 커널, 소켓, 애플리케이션 계층에 도달하기 전에 — 발생하므로 소프트웨어 타임스탬프가 추가하는 지연을 우회해요. 하드ware 타임스탬프의 기본 기준 시계는 Amazon Time Sync Service PTP 하드웨어 시계예요.
이점 (Benefits)
하드웨어 패킷 타임스탬프는 다음 이점을 제공해요.
- 이벤트 순서를 개선하며, 이를 통해 패킷이 EC2 인스턴스에 도착하는 실제 순서를 결정해 공정한 패킷 처리를 보장할 수 있어요.
- 단방향 네트워크 지연을 측정해요.
- 대부분의 온프레미스 솔루션보다 높은 정밀도와 정확도로 분산 트랜잭션 속도를 높여요.
사전 준비 및 구성 (Prerequisites and configuration)
하드웨어 패킷 타임스탬프를 활성화하려면 인스턴스가 다음 사전 준비를 충족해야 해요.
- Linux 인스턴스여야 해요.
- PTP 하드웨어 시계를 지원하기 위한 요구 사항을 충족해야 해요.
구성 지침은 GitHub의 'Elastic Network Adapter (ENA) 패밀리에 대한 Linux 커널 드라이버의 하드웨어 패킷 타임스탬프' 페이지를 참고하세요.
윤초 (Leap seconds)
1972년에 도입된 윤초는 지구 자전의 불규칙성을 고려해 TAI(국제원자시)와 태양시(Ut1) 사이의 차이를 반영하기 위해 UTC 시간에 가끔 1초씩 조정하는 것입니다. 고객을 대신해 윤초를 관리하기 위해 Amazon Time Sync Service 내에 윤초 스미어(smearing)를 설계했어요. 자세한 내용은 'Look Before You Leap – The Coming Leap Second and AWS'를 참고하세요.
윤초는 사라지고 있으며, 우리는 2035년 이전에 윤초를 폐기하기로 한 제27차 국제도량형총회(CGPM)의 결정을 전적으로 지지해요.
이 전환을 지원하기 위해 우리는 여전히 로컬 NTP 연결이나 퍼블릭 NTP 풀(time.aws.com)을 통해 Amazon Time Sync Service에 액세스할 때 윤초 이벤트 동안 시간을 스미어링할 계획이에요. 그러나 PTP 하드웨어 시계는 스미어된 시간 옵션을 제공하지 않아요. 윤초가 발생하면 PTP 하드웨어 시계는 UTC 표준에 따라 윤초를 추가해요. 윤초 스미어와 윤초 시간 소스는 대부분의 경우 동일해요. 그러나 윤초 이벤트 동안에는 다르기 때문에, 윤초 이벤트 중에는 시간 클라이언트 구성에서 스미어된 시간 소스와 스미어되지 않은 시간 소스를 함께 사용하지 않는 것을 권장해요.
주제 (Topics)
- EC2 인스턴스의 시간 기준을 로컬 Amazon Time Sync Service로 설정하기
- EC2 인스턴스나 인터넷 연결 디바이스의 시간 기준을 퍼블릭 Amazon Time Sync Service로 설정하기
- Linux 인스턴스의 타임스탬프 비교하기
- 인스턴스의 시간대 변경하기
관련 리소스 (Related resources)
- AWS Compute Blog: It's About Time: Microsecond-Accurate Clocks on Amazon EC2 Instances
- AWS Cloud Operations & Migrations Blog: Manage Amazon EC2 instance clock accuracy using Amazon Time Sync Service and Amazon CloudWatch – Part 1
- (Linux) https://chrony-project.org/