Amazon EC2 Linux 서버에서 NTP 동기화 문제를 해결하려면 어떻게 해야 하나요?
Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스의 날짜 또는 시간이 정확하지 않거나 NTP(Network Time Protocol) 참조 서버와 동기화되지 않습니다. 이 문제를 해결하고 싶습니다.
해결 방법
NTP 동기화 문제를 해결하려면 먼저 Linux 서버에서 사용하는 NTP 서버를 확인합니다. 그런 다음 NTP 동기화를 구성하고 NTP 서버에 대한 연결을 확인합니다.
인스턴스가 NTP 서버와 동기화되었는지 확인하려면 다음 명령을 실행하여 시간을 확인합니다.
timedatectl
NTP 서버 확인
Amazon Linux 서버에서 chrony 또는 NTP 데몬(ntpd)을 사용하여 NTP 서버와 동기화합니다. NTP 서버 구성에 대한 자세한 내용은 RHEL(Red Hat Linux Enterprise) 웹 사이트에서 chrony suite를 사용하여 NTP 구성 또는 ntpd를 사용하여 NTP 구성을 참조하세요.
참고: chrony는 ntpd보다 더 빠르고 정확하게 시스템 시계를 동기화하기 때문에 시간 동기화에 chrony를 사용하는 것이 가장 좋습니다. 자세한 내용은 RHEL 웹 사이트에서 chrony와 ntpd 의 차이점을 참조하세요.
인스턴스가 chrony 또는 ntpd 데몬을 사용하도록 구성되어 있는지 확인하려면 다음 명령을 실행합니다.
chrony:
sudo systemctl status chronyd chronyc tracking
ntpd:
sudo systemctl status ntpd ntpstat
Amazon Linux 2 또는 Amazon Linux 2023 인스턴스에서 ntpd를 제거하고 chrony를 설치하려면 다음 명령을 실행합니다.
sudo yum erase ntp* sudo yum install chrony
chrony를 시작하고 활성화하려면 다음 명령을 실행합니다.
sudo systemctl start chronyd sudo systemctl enable chronyd
NTP 소스 구성
구성 파일에서 구성된 NTP 서버 목록을 확인합니다. 구성 파일의 기본 위치는 chrony의 경우 /etc/chrony.conf 이고 ntpd의 경우 /etc/ntp.conf입니다.
Amazon Linux 2
기본 /etc/chrony.conf 파일 대신 /etc/chrony.d/ 디렉터리의 소스를 사용하도록 chrony를 구성합니다.
Amazon Linux 2023
기본 /etc/chrony.conf 파일 대신 /run/chrony.d 또는 /etc/chrony.d/ 디렉터리의 소스를 사용하도록 chrony를 구성합니다.
/etc/chrony.conf 구성 파일에서 소스 디렉터리(sourcedir)의 위치를 확인하거나 **/etc/chrony.d/**의 README 파일을 확인합니다.
소스 디렉터리 중 하나에 고유한 chrony 소스 파일을 만듭니다(예: /etc/chrony.d/your-source-file.sources).
소스가 구성된 위치를 기록해 둡니다. 그런 다음 올바른 서버 또는 풀을 사용하고 있는지 확인합니다.
로컬 Amazon Time Sync Service 또는 퍼블릭 Amazon Time Sync Service에 대한 NTP 동기화를 구성할 수 있습니다. 인스턴스에서 로컬 Amazon Time Sync Service를 사용하는 것이 가장 좋습니다. 퍼블릭 Amazon Time Sync Service를 백업으로 사용하거나 Amazon Virtual Private Cloud(Amazon VPC) 외부에 있는 디바이스의 경우 사용할 수 있습니다. 조직 내부의 NTP 서버에 대한 NTP 동기화를 구성할 수도 있습니다.
chrony를 구성하고 소스 파일을 만든 후 서비스를 다시 시작합니다. 그런 다음 Amazon Linux 2 또는 Amazon Linux 2023에서 다음 명령을 실행하여 인스턴스가 실행 중인지 확인합니다.
chrony:
sudo systemctl restart chronyd.service sudo systemctl status chronyd.service
ntpd:
sudo systemctl restart ntpd.service sudo systemctl status ntpd.service
로컬 Amazon Time Sync Service에 대한 NTP 동기화 구성
VPC 내의 링크-로컬 IPv4 주소 169.254.169.123을 사용하여 Amazon Time Sync Service에 액세스합니다.
Amazon Time Sync Service 링크-로컬 IP 주소를 NTP 소스로 추가하려면 NTP 소스가 지정된 구성 파일을 엽니다. 예를 들어 chrony에 대한 /etc/chrony.conf 파일을 엽니다. 그런 다음, 다음 줄을 추가합니다.
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
AWS Nitro System에 구축된 인스턴스에서 액세스할 수 있는 IPv6 로컬 주소를 사용하는 경우 구성 파일에 다음 줄을 추가합니다.
server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4
변경 사항을 적용하려면 다음 명령을 실행하여 chrony를 다시 시작합니다.
sudo systemctl restart chronyd.service
ntpd를 다시 시작하려면 다음 명령을 실행합니다.
sudo systemctl restart ntpd.service
참고: IPv4 및 IPv6 엔드포인트 항목을 별도로 사용하는 것이 가장 좋습니다. IPv4 및 IPv6 NTP 패킷은 인스턴스의 동일한 로컬 서버에서 가져옵니다. IPv4 및 IPv6 엔드포인트를 모두 구성하는 경우 인스턴스의 시간 정확도가 향상되지 않습니다.
퍼블릭 Amazon Time Sync Service에 대한 NTP 동기화 구성
Linux 인스턴스 또는 외부 인터넷 연결 디바이스는 퍼블릭 엔드포인트 time.aws.com를 사용하여 Amazon Time Sync Service에 액세스할 수 있습니다.
Amazon Time Sync Service 퍼블릭 엔드포인트를 NTP 소스로 추가하려면 소스가 있는 ntpd 또는 chrony 구성 파일을 엽니다. 그리고 나서 다음 명령을 실행합니다.
pool time.aws.com iburst
변경 사항을 적용하려면 다음 명령을 실행하여 chrony를 다시 시작합니다.
sudo systemctl restart chronyd.service
ntpd를 다시 시작하려면 다음 명령을 실행합니다.
sudo systemctl restart ntpd.service
조직 내부의 자체 NTP 서버에 대한 NTP 동기화 구성
조직 내부의 NTP 서버를 사용할 수 있습니다. 또는 공용 인터넷을 통해 액세스할 수 있는 NTP 서버를 사용할 수 있습니다.
참고: 신뢰할 수 있는 NTP 서버만 사용하는 것이 가장 좋습니다.
고유한 NTP 소스를 추가하려면 소스가 있는 ntpd 또는 chrony 구성 파일을 엽니다. 그런 다음, 다음 줄을 추가합니다.
server internal-ntp-server-hostname-or-ip-address
참고: internal-ntp-server-hostname-or-ip-address를 NTP 서버 호스트 이름 또는 IP 주소의 이름으로 바꿉니다.
Linux 인스턴스가 네트워크를 통해 새 NTP 서버의 IP 주소 및 포트에 연결할 수 있는지 확인합니다.
기본적으로 Chrony는 링크-로컬 및 원격 엔드포인트를 통해 Amazon Time Sync 시간을 소스로 사용합니다.
Amazon Linux 2023
Amazon Linux 2023에서 기본 구성을 재정의하려면 다음 단계를 완료하세요.
-
**USE_AMAZON_NTP_POOL="no"**를 포함하도록 /etc/sysconfig/chronyd 파일을 수정합니다.
-
다음 명령을 실행하여 chrony를 다시 시작합니다.
sudo systemctl restart chrony.service
ntpd를 다시 시작하려면 다음 명령을 실행합니다.
sudo systemctl restart ntpd.service
Amazon Linux 2
Amazon Linux 2에서 기본 구성을 재정의하려면 다음 단계를 완료하세요.
-
/etc/chrony.d/link-local.sources 파일을 수정합니다. 줄의 시작 부분에 **#**을 추가하여 Amazon Time Sync Service에 대한 항목을 주석 처리합니다.
#server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
-
다음 명령을 실행하여 chrony를 다시 시작합니다.
sudo systemctl restart chronyd.service
ntpd를 다시 시작하려면 다음 명령을 실행합니다.
sudo systemctl restart ntpd.service
참고: /etc/chrony.d/README 파일은 기본 구성을 재정의하는 다른 방법에 대한 정보를 제공합니다.
인스턴스가 올바른 시간에 동기화되었는지 확인
인스턴스가 올바른 시간으로 동기화되었는지 확인하려면 다음 명령을 실행합니다.
chrony:
chronyc tracking timedatectl
ntpd:
ntpstat timedatectl
구성된 모든 소스를 나열하려면 다음 명령을 실행합니다.
chrony:
chronyc sources -v
ntpd:
ntpq -p
추가 문제 해결 단계
NTP 동기화 문제가 계속 발생하면 다음 작업을 수행합니다.
- ntpd 또는 chrony 로그 파일에서 문제를 확인하는 데 도움이 될 수 있는 오류 메시지 또는 경고를 확인합니다.
- 시스템의 시간이 NTP 서버 시간과 다른 경우 NTP 서버 시간과 일치하도록 시스템 시간을 수동으로 설정합니다. timedatectl과 같은 도구를 사용할 수 있습니다.
- Linux 서버가 NTP 서버 호스트 이름을 확인할 수 있는지 확인합니다.
- OS(운영 체제) 방화벽, 보안 그룹, 네트워크 액세스 제어 목록(네트워크 ACL) 또는 라우팅 테이블이 외부 NTP 서버를 차단하지 않는지 확인합니다. 인스턴스에는 UDP 포트 123에 대한 아웃바운드 트래픽이 필요합니다. 스테이트리스 방화벽과 네트워크 ACL의 경우 임시 포트 1024~65535를 통한 반환 트래픽을 허용해야 합니다.
- VPC에서 사용자 지정 DHCP 옵션 세트를 사용하는 경우 NTP 서버 주소를 올바르게 구성해야 합니다.
관련 정보
관련 콘텐츠
- AWS 공식업데이트됨 2달 전
- AWS 공식업데이트됨 5달 전
- AWS 공식업데이트됨 일 년 전