Last Updated on 11월 29, 2023 by Jade(정현호)
안녕하세요
해당 포스팅은 AWS 클라우드 프리티어 가입 생성 부터 , Nginx PHP MariaDB 스택구성 , WordPress 구성까지 이어지는 연재 글의 중간글 입니다.
다음 글의 링크는 하단에 있습니다.
이전 연재 글
AWS EC2 생성
Ubuntu 18.04 서버 초기 설정 내역 정리
새롭게 구현된 시간 동기화
chrony 는 새롭게 구현된 시간동기화이고 기존의 ntpd 를 대체합니다.
간헐적인 네트워크 연결 (예 : 랩톱) 및 혼잡 한 네트워크와 같은 어려운 조건에서도 시간이 동기화 되도록 설계되었습니다.
ntpd와는 달리 하드웨어 타임 스탬프를 통해 시스템 시계 동기화를 지원하여 LAN에 있는 시스템 간의 시간 동기화 정확도를 향상시킵니다
- wikipedia 참조
Chrony는 RHEL7 에 부터 나온 출시된 새로운 시간동기화 데몬입니다.
우분투에서도 사용할 수 있으며 많은 리눅스에서 기본 동기화 데몬으로 변경되는 추세입니다.
Chrony 설치 및 설정
Chrony 설치 및 AWS 에서의 설정 그리고 그 외 클라우드 등에서의 설정에 대해서 확인해보도록 하겠습니다.
.
설치
설치는 아래와 같이 apt(또는 apt-get) 로 진행하시면 됩니다.
ubuntu$ sudo apt install chrony
.
AWS - 서버 및 Pool 설정
서버 및 pool 에 대한 설정은 /etc/chrony/chrony.conf 을 설정하면 됩니다.
AWS 에서는 리전내 시간동기화 서버 서비스를 제공하고 있어 이용할 수 있습니다
꼭 해당 서버를 써야 하는(필수)는 아니지만 제공되고 있고 같은 센터 내에서 서비스를 받을 수 있기 때문에 설정해보도록 하겠습니다.
* AWS가 아닌 다른 환경은 바로 아래쪽에 내용이 있습니다.
chrony.conf 파일 수정
ubuntu$ sudo vi /etc/chrony/chrony.conf
[원본(기존) 내용]
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
[서버 추가]
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
<---------
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
서비스 활성화 및 데몬 재시작
ubuntu$ sudo systemctl enable chrony
ubuntu$ sudo systemctl restart chrony
상태 확인
ubuntu$ sudo chronyc sources -v
210 Number of sources = 9
.-- 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 4 17 4 -401ns[+1987ns] +/- 509us
^- pugot.canonical.com 2 6 13 2 +17ms[ +17ms] +/- 172ms
^- alphyn.canonical.com 2 6 17 3 -367us[ -367us] +/- 149ms
^- golem.canonical.com 2 6 17 1 +546us[ +546us] +/- 159ms
^- chilipepper.canonical.com 2 6 17 1 +2372us[+2372us] +/- 142ms
<중략>
설정한 IP 169.254.169.123 에서 시간동기화가 이루어지고 있는 걸 확인할 수 있습니다.
추가적으로 chronyc tracking 와 timedatectl 통해 추가적인 내용을 확이 할 수 있습니다.
ubuntu$ sudo chronyc tracking
Reference ID : A9FEA97B (169.254.169.123)
Stratum : 4
Ref time (UTC) : Tue Oct 20 14:24:54 2020
System time : 0.000033780 seconds fast of NTP time
Last offset : +0.000091065 seconds
RMS offset : 0.000091065 seconds
Frequency : 10.049 ppm fast
Residual freq : +4.960 ppm
Skew : 8.921 ppm
Root delay : 0.001217723 seconds
Root dispersion : 0.000381964 seconds
Update interval : 16.1 seconds
Leap status : Normal
ubuntu$ sudo timedatectl
Local time: Tue 2020-10-20 23:25:13 KST
Universal time: Tue 2020-10-20 14:25:13 UTC
RTC time: Tue 2020-10-20 14:25:14
Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
.
다른 클라우드 - 서버 및 Pool 설정
다른 클라우드나 On Premise 환경에서는 아래와 같이 설정하시면 됩니다
* 설치는 동일 합니다.
chrony.conf 파일 수정
ubuntu$ sudo vi /etc/chrony/chrony.conf
pool 1.kr.pool.ntp.org iburst minpoll 4 maxpoll 4
pool 1.asia.pool.ntp.org iburst minpoll 4 maxpoll 4
pool 2.asia.pool.ntp.org iburst minpoll 4 maxpoll 4
pool time.google.com iburst minpoll 4 maxpoll 4
server time.bora.net iburst
파일 설정 저장 후 데몬 재시작
ubuntu$ sudo systemctl restart chrony
동기화 정보 확인
ubuntu$ chronyc sources -v
210 Number of sources = 19
.-- 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
==============================================
^? smtp8.duckfine.co.kr 3 4 7 1 +256us[ +256us] +/- 21ms
^? 193.123.243.2 2 4 7 0 -403us[ -403us] +/- 49ms
^? 62.201.225.9 2 4 3 3 -5319us[-5319us] +/- 205ms
^? ntp.kku.ac.th 1 4 7 3 +29us[ +29us] +/- 61ms
^? vps-9ee2ad88.vps.ovh.ca 2 4 3 3 -11ms[ -11ms] +/- 78ms
^? vps-22c7558f.vps.ovh.ca 2 4 3 3 -11ms[ -11ms] +/- 79ms
^? time.cloudflare.com 3 4 3 4 +3019us[+3019us] +/- 72ms
^? 202.118.1.130 0 4 0 - +0ns[ +0ns] +/- 0ns
^? 120.25.115.20 2 4 1 6 -2121us[-2121us] +/- 51ms
^? x.ns.gin.ntt.net 2 4 7 1 +1151us[+1151us] +/- 88ms
^? clock.kku.ac.th 0 4 0 - +0ns[ +0ns] +/- 0ns
^? 2001:470:19:301::124 0 4 0 - +0ns[ +0ns] +/- 0ns
^? t1.time.sg3.yahoo.com 0 4 0 - +0ns[ +0ns] +/- 0ns
^? 2001:3c8:1501:65::1501:11 0 4 0 - +0ns[ +0ns] +/- 0ns
^? time2.google.com 1 4 3 2 +72us[ +72us] +/- 33ms
<중략>
시간 동기화 즉시 실행(즉시 동기화)
rdate -s 나 ntpdate -u 등과 같이 수동으로 즉시 시간을 동기화 하고자 할 때는 아래의 명령어를 사용하면 됩니다.
ubuntu$ sudo chronyc -a makestep
200 OK
다음 이어지는 글 : 우분투+Nginx + PHP+FPM +MariaDB LEMP 1 - 스택 설치 및 구성
Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io