메뉴
Amazon Elastic Compute Cloud
User Guide for Linux Instances

Linux 인스턴스의 시간 설정

많은 서버 작업과 프로세스에서 일관되고 정확한 시간 참조가 중요합니다. 대부분의 시스템 로그에는 문제가 발생한 시간과 이벤트가 발생한 순서를 파악하는 데 사용할 수 있는 타임스탬프가 포함되어 있습니다. AWS CLI 또는 AWS SDK를 사용하여 인스턴스에서 요청하는 경우 이러한 도구가 사용자를 대신하여 요청에 서명합니다. 인스턴스의 날짜와 시간이 잘못 설정되어 있으면 서명 날짜가 요청 날짜와 일치하지 않아 AWS가 해당 요청을 거부할 수 있습니다. Amazon Linux 인스턴스에는 기본적으로 NTP(Network Time Protocol)가 구성되며, 시스템 시간은 인터넷에 있는 퍼블릭 서버의 로드 밸런싱 풀과 동기화되고 UTC 표준 시간대로 설정됩니다. NTP에 대한 자세한 내용은 http://www.ntp.org/를 참조하십시오.

중요

이 절차는 Amazon Linux에서 사용하기 위한 것입니다. 기타 배포에 대한 자세한 내용은 해당 설명서를 참조하십시오.

표준 시간대 변경

기본적으로 Amazon Linux 인스턴스는 UTC(협정 세계시) 표준 시간대로 설정되지만, 인스턴스의 시간을 현지 시간 또는 네트워크의 다른 표준 시간대로 변경해야 할 수도 있습니다.

인스턴스의 표준 시간대를 변경하려면 다음을 수행합니다.

  1. 인스턴스에서 사용할 표준 시간대를 식별합니다. /usr/share/zoneinfo 디렉터리에는 표준 시간대 데이터 파일이 계층 구조로 들어 있습니다. 해당 위치의 디렉터리 구조를 탐색하여 원하는 표준 시간대의 파일을 찾습니다.

    Copy
    [ec2-user ~]$ ls /usr/share/zoneinfo Africa Chile GB Indian Mideast posixrules US America CST6CDT GB-Eire Iran MST PRC UTC Antarctica Cuba GMT iso3166.tab MST7MDT PST8PDT WET Arctic EET GMT0 Israel Navajo right W-SU ...

    이 위치의 일부 항목(예: America)은 디렉터리이며, 이러한 디렉터리에는 도시별 표준 시간대 파일이 들어 있습니다. 인스턴스에 사용할 도시 또는 해당 표준 시간대에 속하는 도시를 찾습니다. 이 예제에서는 로스앤젤레스의 표준 시간대 파일인 /usr/share/zoneinfo/America/Los_Angeles를 사용할 수 있습니다.

  2. /etc/sysconfig/clock 파일을 새 표준 시간대로 업데이트합니다.

    1. 즐겨 사용하는 텍스트 편집기(vim 또는 nano)로 /etc/sysconfig/clock 파일을 엽니다. /etc/sysconfig/clockroot가 소유하므로 sudo와 함께 편집기 명령을 사용해야 합니다.

    2. ZONE 항목을 찾아서 표준 시간대 파일로 변경합니다. 경로에서 /usr/share/zoneinfo 부분은 생략하십시오. 예를 들어 로스앤젤레스 표준 시간대로 변경하려면 ZONE 항목을 다음과 같이 변경합니다.

      Copy
      ZONE="America/Los_Angeles"

      참고

      UTC=true 항목을 다른 값으로 변경하지 마십시오. 이 항목은 하드웨어 클록에 대한 것으로, 인스턴스에 대해 다른 표준 시간대를 설정할 때 따로 조정할 필요가 없습니다.

    3. 파일을 저장하고 텍스트 편집기를 종료합니다.

  3. 인스턴스가 현지 시간 정보를 참조할 때 표준 시간대 파일을 찾을 수 있도록 /etc/localtime과 표준 시간대 파일 사이에 심볼 링크를 생성합니다.

    Copy
    [ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
  4. 시스템을 재부팅하여 모든 서비스와 애플리케이션에 새로운 표준 시간대 정보를 적용합니다.

    Copy
    [ec2-user ~]$ sudo reboot

NTP 구성

Amazon Linux 인스턴스에는 기본적으로 NTP(Network Time Protocol)가 구성되지만, 스탠다드 NTP 구성을 사용하려면 인스턴스에서 인터넷에 액세스할 수 있어야 합니다. 또한 인스턴스의 보안 그룹 규칙은 포트 123(NTP)에서 아웃바운드 UDP 트래픽을 허용해야 하고, 네트워크 ACL 규칙은 포트 123에서 인바운드와 아웃바운드 UDP 트래픽을 모두 허용해야 합니다. 이 섹션의 절차에서는 기본 NTP 구성이 올바르게 작동하는지 확인하는 방법을 보여 줍니다. 인스턴스에서 인터넷에 액세스할 수 없는 경우 정확한 시간을 유지하려면 프라이빗 네트워크에서 다른 서버를 쿼리하도록 NTP를 구성해야 합니다.

NTP가 제대로 작동하는지 확인하려면

  1. ntpstat 명령을 사용하여 인스턴스에서 NTP 서비스의 상태를 확인합니다.

    Copy
    [ec2-user ~]$ ntpstat

    아래와 비슷하게 출력되는 경우 인스턴스에서 NTP가 제대로 작동하고 있는 것입니다.

    synchronised to NTP server (12.34.56.78) at stratum 3 time correct to within 399 ms polling server every 64 s

    출력에 "unsynchronised"가 표시되는 경우 1분 정도 기다렸다가 다시 시도하십시오. 동기화를 처음으로 완료하는 데 1분 정도 걸릴 수 있습니다.

    출력에 "Unable to talk to NTP daemon. Is it running?"이 표시되는 경우 NTP 서비스를 시작하고 부팅 시 자동으로 시작하도록 NTP 서비스를 활성화해야 할 수 있습니다.

  2. (선택 사항) ntpq -p 명령을 사용하여 NTP 서버에 알려진 피어 목록과 상태 요약을 확인할 수 있습니다.

    Copy
    [ec2-user ~]$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +lttleman.deekay 204.9.54.119 2 u 15 128 377 88.649 5.946 6.876 -bittorrent.tomh 91.189.94.4 3 u 133 128 377 182.673 8.001 1.278 *ntp3.junkemailf 216.218.254.202 2 u 68 128 377 29.377 4.726 11.887 +tesla.selinc.co 149.20.64.28 2 u 31 128 377 28.586 -1.215 1.435

    이 명령의 출력에 활동 내역이 없는 경우 보안 그룹, 네트워크 ACL 또는 NTP 포트에 대한 액세스를 차단하는 방화벽이 있는지 확인합니다.

NTP를 시작하고 활성화하려면

  1. 다음 명령을 사용하여 NTP 서비스를 시작합니다.

    Copy
    [ec2-user ~]$ sudo service ntpd start Starting ntpd: [ OK ]
  2. chkconfig 명령을 사용하여 부팅 시 시작하도록 NTP를 활성화합니다.

    Copy
    [ec2-user ~]$ sudo chkconfig ntpd on
  3. 다음 명령을 사용하여 NTP가 활성화되었는지 확인합니다.

    Copy
    [ec2-user ~]$ sudo chkconfig --list ntpd ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    여기에서 ntpd는 실행 수준 2, 3, 4, 5에서 on인 올바른 상태입니다.

NTP 서버를 변경하려면

스탠다드 NTP 서버를 사용하지 않도록 하거나 인터넷에 액세스할 수 없는 인스턴스에 대해 프라이빗 네트워크 내의 자체 NTP 서버를 사용해야 할 수 있습니다.

  1. 즐겨 사용하는 텍스트 편집기(vim 또는 nano 등)에서 /etc/ntp.conf 파일을 엽니다. /etc/ntp.conf는 루트가 소유하므로 sudo와 함께 에디터 명령을 사용해야 합니다.

  2. NTP 구성에 대해 폴링할 서버를 정의하는 server 섹션을 찾습니다.

    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    server 0.amazon.pool.ntp.org iburst
    server 1.amazon.pool.ntp.org iburst
    server 2.amazon.pool.ntp.org iburst
    server 3.amazon.pool.ntp.org iburst

    참고

    n.amazon.pool.ntp.org DNS 레코드를 통해 AWS에서 NTP 트래픽의 로드 밸런스를 유지할 수 있습니다. 그러나 이러한 서버는 pool.ntp.org 프로젝트에서 퍼블릭 NTP 서버이고 AWS에서 소유하거나 관리하지 않습니다. 이러한 서버는 지리적으로 인스턴스에 가깝거나 AWS 네트워크 내에 위치하지 않을 수도 있습니다. 자세한 내용은 http://www.pool.ntp.org/en/을 참조하십시오.

  3. 서버 정의의 시작 부분에 "#" 문자를 추가하여 사용하지 않을 서버를 주석으로 처리합니다.

    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    #server 0.amazon.pool.ntp.org iburst
    #server 1.amazon.pool.ntp.org iburst
    #server 2.amazon.pool.ntp.org iburst
    #server 3.amazon.pool.ntp.org iburst
  4. 시간 동기화를 위해 폴링할 각 서버에 대한 항목을 추가합니다. 이 항목에 대한 DNS 이름 또는 점으로 구분된 네 부분의 숫자로 된 IP 주소(예: 10.0.0.254)를 사용할 수 있습니다.

    Copy
    server my-ntp-server.my-domain.com iburst
  5. 새 서버를 선택하려면 NTP 서비스를 다시 시작합니다.

    Copy
    [ec2-user ~]$ sudo service ntpd start Starting ntpd: [ OK ]
  6. 새 설정이 적용되고 NTP가 작동하는지 확인합니다.

    Copy
    [ec2-user ~]$ ntpstat synchronised to NTP server (64.246.132.14) at stratum 2 time correct to within 99 ms

이 페이지에서: