Amazon Elastic Compute Cloud(Amazon EC2) Linux에서 DNS 확인 실패를 방지하려면 어떻게 해야 합니까? 

CPU 및 네트워크 사용량을 줄이고 DNS 확인 실패를 방지하려면 DNS 캐시를 적용합니다.

DNS 캐시를 사용하여 다음 중 하나와 같은 AWS 응용 프로그램을 사용하여 DNS 자원에 연결하면 네트워크를 통해 DNS 확인 프로그램과 상호 작용하지 않고 대부분의 되풀이 DNS 쿼리가 캐시에서 로컬로 응답됩니다.

  • Amazon Relational Database Service(Amazon RDS)
  • Amazon ElastiCache
  • Amazon Simple Storage Service(Amazon S3)

Amazon Linux를 사용하여 로컬 DNS 캐시를 설정하려면 다음을 수행하여 dnsmasq (DHCP 및 캐시 DNS 서버)를 구성하십시오.

1.    다음 명령을 실행하여 dnsmasq을 설치하십시오.

sudo yum install -y dnsmasq

2.    다음 명령을 사용하여 dnsmasq를 실행할 전용 시스템 사용자를 만듭니다.

sudo groupadd -r dnsmasq
sudo useradd -r -g dnsmasq dnsmasq

주 : dnsmasq은 일반적으로 루트 사용자로 실행되지만 시작 후 다른 사용자로 변경하여 루트 권한을 삭제합니다 (기본적으로 사용자는 "nobody"임).

3.    다음 명령을 사용하여 dnsmasq 구성 파일의 복사본을 만듭니다.

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4.    텍스트 편집기 (예 : vim )를 사용하여 구성 파일을 엽니 다.

sudo vim /etc/dnsmasq.conf

5.    Then, edit the file /etc/dnsmasq.conf so that it is similar to the following:

# Server Configuration
listen-address=127.0.0.1
port=53
bind-interfaces
user=dnsmasq
group=dnsmasq
pid-file=/var/run/dnsmasq.pid

# Name resolution options
resolv-file=/etc/resolv.dnsmasq
cache-size=500
neg-ttl=60
domain-needed
bogus-priv

6.    /etc/resolv.dnsmasq 파일을 만든 다음 Amazon DNS 서버 또는 DHCP 옵션 세트 에 지정한 사용자 정의 도메인 이름 서버를 설정합니다.

sudo vim /etc/resolv.dnsmasq
nameserver 10.0.0.2

Note: For EC2-Classic, the Amazon DNS server is located at 172.16.0.23. EC2 VPC의 경우 DHCP Options Sets 에서 DNS 서버 위치에 대한 자세한 정보를 찾을 수 있습니다. 인스턴스에서 dnsmasq 캐시를 통해 AMI를 생성하여 다른 CIDR을 사용하는 다른 VPC에서 시작하거나 사용자 지정 DNS 서버가 DHCP 옵션에 지정된 경우 해당 네트워크에 대한 이름 서버를 사용하도록 /etc/resolv.dnsmasq 파일을 조정합니다.

7.    다음 명령을 사용하여 dnsmasq을 시작하고 부팅시 서비스를 시작으로 설정하십시오.

sudo service dnsmasq start
sudo chkconfig dnsmasq on

8.    를 사용하여 dnsmasq가 올바르게 작동하는지 확인하십시오! dig 명령 :

dig aws.amazon.com @127.0.0.1

응답이 다음과 유사하면 dnsmasq 캐시가 올바르게 작동합니다.

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.56.amzn1 <<>> aws.amazon.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25122
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;aws.amazon.com.            IN    A

;; ANSWER SECTION:
aws.amazon.com.        41    IN    A    54.239.31.69

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
...

9.    dnsmasq DNS 캐시를 기본 DNS 확인자로 설정하십시오.

주 : /etc/dhcp/dhclient.conf 파일을 변경하거나 작성하여 DHCP가 제공하는 기본 DNS 결정자를 억제해야합니다. 자세한 내용은 Ubuntu, RHEL 또는 Amazon Linux를 실행하는 비공개 Amazon EC2 인스턴스에 정적 DNS 서버를 어떻게 할당합니까?를 참조하십시오.

10.    다음 명령을 사용하여 기본 DNS 확인 프로그램을 대체 옵션으로 구성합니다.

sudo vim /etc/dhcp/dhclient.conf
supersede domain-name-servers 127.0.0.1, 10.0.0.2;

11.    변경 내용을 적용하려면 dhclient 명령을 실행하거나 인스턴스를 재부팅합니다.

sudo dhclient

– 또는 –  

sudo reboot

인스턴스가 DNS 캐시를 사용하는지 확인하려면 dig 명령을 실행하십시오.

dig aws.amazon.com

응답에 DNS 요청에 회신하는 서버가 127.0.0.1인 것으로 표시되면 DNS 캐시가 올바르게 작동하는 것입니다.  

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.56.amzn1 <<>> aws.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1028
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;aws.amazon.com.            IN    A

;; ANSWER SECTION:
aws.amazon.com.        55    IN    A    54.239.31.69

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) <<<-------
...

페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2018년 6월 27일

업데이트: 2018-12-04