728x90
반응형

개요

  • 기존 운영 중인 ec2에 NTP 설정이 제대로 되어 있지 않는 대상이 대부분 존재하여, 서버 시간이 10분 이상 차이 나는 경우도 발견됨
  • 장시간으로 봤을 때 시간오차로 인한 서비스에 지장이 발생할 경우도 있고 원할한 트러블슈팅을 하기 어려움
  • Amazon linux 같은 경우 자체 Time sync service로 169.254.169.123의 NTP 서버를 바라볼수 있게 허용 되어 있음
  • 나머지 OS는 따로 설정 해줘야 함(예: centos, ubuntu ...)
  • 대부분 서버가 NTP 설정이 안되어 있거나 베스천 서버로 NTP로 바라보게 되어 있음(잘못설정됨)
  • 공식 설정 참조 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/set-time.html

주의

  • 실행 중인 서비스들에 대해 적용 되려면 재시작 필요하기 때문에
  • 추후 서버 재시작 하기 전에 적용 필요

설정 방법

인스턴스를 연결하고 NTP 서비스를 제거합니다.

sudo yum erase 'ntp*'

chrony 패키지를 설치합니다.

sudo yum install chrony

/etc/chrony.conf 또는 vim과 같은 텍스트 편집기를 사용하여 nano 파일을 엽니다. 파일이 다음 라인을 포함하고 있는지 확인합니다.

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

이 라인이 존재할 경우, Amazon Time Sync Service가 이미 구성된 상태이기 때문에 다음 단계로 넘어갈 수 있습니다. 라인이 없는 경우에는 파일에 이미 존재하는 다른 server 또는 pool 문 뒤에 라인을 추가하고 변경 사항을 저장합니다.

 

chrony 데몬(chronyd)을 다시 시작합니다.

sudo service chronyd restart
Starting chronyd:                                          [  OK  ]

참고

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

 

chkconfig 명령을 사용해서 매번 시스템이 부팅할 때마다 시작되도록 chronyd를 구성합니다.

sudo chkconfig chronyd on

chrony가 169.254.169.123 IP 주소를 사용하여 시간을 동기화하고 있는지 확인합니다.

chronyc sources -v
728x90
210 Number of sources = 7

          .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
         / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
        | /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
        ||                                                 .- xxxx [ yyyy ] +/- zzzz
        ||      Reachability register (octal) -.           |  xxxx = adjusted offset,
        ||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
        ||                                \\     |          |  zzzz = estimated error.
        ||                                 |    |           \\
        MS Name/IP address         Stratum Poll Reach LastRx Last sample
        ===============================================================================
        ^* 169.254.169.123               3   6    17    43    -30us[ -226us] +/-  287us
        ^- ec2-12-34-231-12.eu-west>     2   6    17    43   -388us[ -388us] +/-   11ms
        ^- tshirt.heanet.ie              1   6    17    44   +178us[  +25us] +/- 1959us
        ^? tbag.heanet.ie                0   6     0     -     +0ns[   +0ns] +/-    0ns
        ^? bray.walcz.net                0   6     0     -     +0ns[   +0ns] +/-    0ns
        ^? 2a05:d018:c43:e312:ce77:>     0   6     0     -     +0ns[   +0ns] +/-    0ns
        ^? 2a05:d018:dab:2701:b70:b>     0   6     0     -     +0ns[   +0ns] +/-    0ns

반환된 출력에서 ^*는 기본 설정된 타임 소스를 나타냅니다.

 

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

chronyc tracking
Reference ID    : A9FEA97B (169.254.169.123)
        Stratum         : 4
        Ref time (UTC)  : Wed Nov 22 13:18:34 2017
        System time     : 0.000000626 seconds slow of NTP time
        Last offset     : +0.002852759 seconds
        RMS offset      : 0.002852759 seconds
        Frequency       : 1.187 ppm fast
        Residual freq   : +0.020 ppm
        Skew            : 24.388 ppm
        Root delay      : 0.000504752 seconds
        Root dispersion : 0.001112565 seconds
        Update interval : 64.4 seconds
        Leap status     : Normal

인스턴스가 한국시간 정보를 참조하도록 설정

timedatectl status
# 확인
Local time: Mon 2021-12-20 13:25:50 KST
  Universal time: Mon 2021-12-20 04:25:50 UTC
        RTC time: Mon 2021-12-20 04:25:51
       Time zone: Asia/Seoul (KST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

기존 시간대 설정 파일 백업

mv /etc/localtime /etc/localtime_old

한국 시간대 파일 설정

cp -av /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

최종 NTP 트래픽 확인

cpdump -i eth0 | grep 169.254.169.123
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
13:18:29.753101 IP ip-10-251-22-223.ap-northeast-2.compute.internal.51302 > 169.254.169.123.ntp: NTPv4, Client, length 48
13:18:29.753253 IP 169.254.169.123.ntp > ip-10-251-22-223.ap-northeast-2.compute.internal.51302: NTPv4, Server, length 48
13:18:46.020047 IP ip-10-251-22-223.ap-northeast-2.compute.internal.37162 > 169.254.169.123.ntp: NTPv4, Client, length 48
13:18:46.020174 IP 169.254.169.123.ntp > ip-10-251-22-223.ap-northeast-2.compute.internal.37162: NTPv4, Server, length 48

 

변경 작업은 온라인 중에 가능하나,

시스템 재부팅하여 NTP를 맞추기전에 띄워져있던 서비스와 어플리케이션에 시간 적용이 필요함

 

 

 

728x90
300x250

+ Recent posts