DNS 이름과 사용자 지정 DNS 서버를 사용하여 Amazon Elastic File System을 탑재하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 7일

사용자 지정 DNS(Domain Name System) 서버가 있습니다. DNS 이름을 사용하여 Amazon Elastic File System(Amazon EFS)을 탑재하려면 어떻게 해야 합니까?

간략한 설명

파일 시스템의 DNS 이름을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 Amazon EFS 파일 시스템을 탑재할 수 있습니다. 이렇게 하려면 다음 조건이 충족되어야 합니다.

  • 연결 중인 EC2 인스턴스는 Virtual Private Cloud(VPC) 내에 있어야 하며 사용자 지정 DNS 서버를 사용하도록 구성해야 합니다. 자세한 내용은 DHCP 옵션 세트를 참조하십시오.
  • DNS 설정 DNS 해결 방법DNS 호스트 이름은 사용자 지정 VPC에서 활성화됩니다. 자세한 내용은 VPC에 대한 DNS 지원 업데이트를 참조하십시오.

참고: Amazon EFS 파일 시스템은 Linux EC2 인스턴스에만 탑재할 수 있습니다.

해결 방법

Windows DNS 서버 사용

1.    VPC 콘솔의 왼쪽 탐색 창에서 [VPC]를 선택하고 원하는 VPC를 선택한 다음 [요약] 탭을 선택합니다. IPv4 CIDR 주소를 기록해 둡니다.

2.    EC2-VPC에서 Amazon DNS 서버는 VPC 네트워크 범위에 2를 더한 위치에 있습니다(예: CIDR 172.31.0.0/16의 경우 172.31.0.2). 자세한 내용은 Amazon DNS 서버를 참조하십시오.

3.    dnscmd 명령, /zoneadd/forwarder 파라미터, 1단계의 IP 주소를 사용하여 Windows DNS 서버에 조건부 전달자를 추가합니다. 이 예에서 IP 주소는 172.31.0.2입니다. 이 주소는 주소가 172.31.0.0/16인 서브넷에 대해 두 번째 유효한 IPv4 주소입니다.

C:\Windows\system32> dnscmd  /ZoneAdd amazonaws.com /forwarder 172.31.0.2

조건부 전달자는 amazonaws.com 도메인에서 Windows VPC DNS 서버에 대한 DNS 요청을 처리합니다. 이를 통해 EC2 인스턴스의 DNS 쿼리를 Amazon DNS 서버로 전달할 수 있습니다. 여기서 Amazon DNS 서버는 Amazon EFS DNS 이름을 변환할 수 있습니다. 또는 사용자 지정 DNS 서버에서 영역 전달을 설정할 수 있지만 교차 가용 영역 트래픽은 알고 있어야 합니다.

4.    nslookup 명령과 EFS 파일 시스템 ID를 사용하여 Windows DNS 서버에서 DNS 쿼리를 해결하는지 확인합니다. Windows DNS 서버에서 다음 명령을 실행합니다.

C:\Windows\system32>nslookup file-system-id.efs.aws-region.amazonaws.com

참고: Amazon EFS 파일 시스템 ID를 찾으려면 Amazon EFS 콘솔을 엽니다. 그런 다음 왼쪽 탐색 창에서 [파일 시스템]을 선택합니다.

dnsmasq 사용 – Amazon Linux AMI 및 Amazon Linux 2와 함께 사용

참고: 사용자 지정 DNS 서버를 사용하여 Amazon EFS에 연결해야 하는 모든 EC2 인스턴스에 대해 다음 단계를 사용합니다.

1.    dnsmasq 서버를 설치합니다.

sudo yum install -y dnsmasq

2.    dnsmasq를 실행할 전용 시스템 사용자를 생성합니다.

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

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

3.    (선택 사항) 이전 구성의 백업을 생성하려면 mv 명령을 사용하여 dnsmasq.conf 파일의 사본을 생성합니다.

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

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

sudo vim /etc/dnsmasq.conf

5.    /etc/dnsmasq.conf 파일을 다음과 유사하게 편집합니다.

listen-address=127.0.0.1
port=53
bind-interfaces
user=dnsmasq
group=dnsmasq
pid-file=/var/run/dnsmasq.pid
server=/amazonaws.com/169.254.169.253

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

참고: 모든 VPC에 공통된 Amazon DNS 서버의 IP 주소 169.254.169.253을 사용하거나 VPC의 CIDR 블록을 기반으로 DNS 서버의 IP 주소를 사용할 수 있습니다.

6.    /etc/resolv.dnsmasq 파일을 생성합니다. 그런 다음 DHCP 옵션 세트에 지정된 사용자 지정 domain-name-servers를 설정합니다.

sudo bash -c "echo 'nameserver x.x.x.x' >> /etc/resolv.dnsmasq"

DHCP 옵션 세트에 지정된 모든 DNS 서버에 대해 위의 명령을 수행합니다. 앞의 예에서 x.x.x.xDHCP 옵션 세트에 언급된 DNS 중 하나입니다.

7.    DNS 서버 이름을 확인합니다.

# cat /etc/resolv.dnsmasq
nameserver x.x.x.x   
nameserver y.y.y.y

8.    resolv.conf 파일에 DNS 서버 이름 127.0.0.1을 입력합니다.

# cat /etc/resolv.conf
options timeout:2 attempts:5
; generated by /usr/sbin/dhclient-script
search ec2.internal <on-prem-domain-name i.e example.com>
nameserver 127.0.0.1

9.    dhclient.conf를 수정하여 사용자 지정된 nameserver 항목을 유지합니다.

sudo bash -c "echo 'supersede domain-name-servers 127.0.0.1;' >> /etc/dhcp/dhclient.conf"

참고: 이전 단계를 완료해야 합니다. 그렇지 않으면 dhclient가 인스턴스 재부팅 시 resolv.conf의 값을 재정의할 수 있습니다. 127.0.0.1(dnsmasq)을 DNS 해석기로 사용합니다. 자세한 내용은 프라이빗 Amazon EC2 인스턴스가 Amazon Linux, Ubuntu 또는 RHEL을 실행 중입니다. 재부팅 중에 지속되는 정적 DNS 서버를 EC2 인스턴스에 할당하려면 어떻게 해야 합니까?를 참조하십시오.

10.    8단계에서 변경한 사항을 확인합니다.

# cat /etc/dhcp/dhclient.conf
timeout 300;
supersede domain-name-servers 127.0.0.1;

참고: resolv.conf에서 DNS에 대한 장애 조치 항목을 사용하려면 다음 예제와 같이 127.0.0.1 이후에 장애 조치 DNS 서버 주소를 추가합니다.

# cat /etc/dhcp/dhclient.conf
timeout 300;
supersede domain-name-servers 127.0.0.1, x.x.x.x, y.y.y.y;

11.    dnsmasq 서버를 다시 시작합니다. 그리고 다음 명령을 사용하여 부팅 시 시작하도록 서비스를 설정합니다.

Amazon Linux AMI

sudo service dnsmasq restart
sudo chkconfig dnsmasq on

Amazon Linux 2

sudo systemctl restart dnsmasq.service
sudo systemctl enable dnsmasq.service

12.    dig 명령을 사용하여 dnsmasq가 올바르게 작동하는지 확인합니다.

dig amazonaws.com
dig example.com

예상대로 문제가 해결되면 dnsmasq 캐시가 올바르게 작동하는 것입니다.

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

sudo dhclient

-또는-

sudo reboot

14.    dig 또는 nslookup을 사용하는 DNS 쿼리를 수행하여 인스턴스가 DNS 캐시를 사용 중인지 확인합니다.

dig amazonaws.com (AWS Specific Domain)
dig example.com (Custom domain)

자세한 내용은 추가 탑재 고려 사항을 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?