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
'IT > AWS' 카테고리의 다른 글
AWS EKS ContainerCreating에서 무한 루프 해결 방법 (0) | 2022.03.31 |
---|---|
AWS 스냅샷 조회 및 삭제 방법 (0) | 2022.03.30 |
Amazon Linux 에서 PHP 7.X 설치 (0) | 2022.01.17 |
AWS CLI 보안그룹 추가 및 포트 삭제 (0) | 2022.01.17 |
AWS S3 + CloudFront CORS 설정 (0) | 2021.08.12 |