AWS Managed Microsoft AD에 가입된 Linux 시스템에서 FQDN을 사용하여 Amazon EFS 마운트하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 3월 12일

Microsoft Active Directory용 AWS Directory Service를 사용하고 있습니다. 내 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스를 Active Directory 도메인에 가입했습니다. EC2 Linux 인스턴스에 완전히 정규화된 도메인 이름(FQDN)을 사용하여 Amazon Elastic File System(Amazon EFS)을 마운트할 수 없습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS Managed Microsoft AD에 Linux 시스템을 가입하려면 Active Directory용 DNS 서버를 사용하도록 인스턴스를 구성합니다. 이 구성은 EC2 Linux 인스턴스의 모든 DNS 요청이 Active Directory DNS 서버로 라우팅됨을 의미합니다.

Microsoft AD를 사용하면 모든 DNS 요청이 VPC에 대해 Amazon이 제공한 DNS 서버의 IP 주소로 전달됩니다. 이 DNS 서버는 Amazon Route 53(Route 53) 프라이빗 호스팅 영역에 구성된 이름을 확인합니다. Route 53 프라이빗 호스팅 영역을 사용하지 않는 경우 DNS 요청이 퍼블릭 DNS 서버로 전달됩니다. AWS 서비스에 대한 프라이빗 호스팅 영역이 없는 경우 DNS 요청은 퍼블릭 DNS 서버로 전달됩니다. 즉, AWS 서비스 FQDN을 퍼블릭 IP 주소로만 확인할 수 있습니다. 자세한 내용은 DNS 구성을 참조하세요.

즉, Amazon EFS FQDN은 프라이빗 IP 주소로만 확인됩니다. Microsoft AD를 사용하는 경우 FQDN을 사용하여 EFS를 마운트할 수 없습니다.

문제 예시

이 예시에서는 AWS Managed Microsoft AD를 사용합니다. 제공된 DNS 서버는 10.30.32.80 및 10.20.34.122입니다. EFS 파일 시스템은 마운트 대상이 10.20.0.178인 동일한 VPC에서 생성되었습니다.

1. netcat을 사용하여 EC2 인스턴스가 EFS 마운트 대상 10.20.0.178과의 연결을 설정할 수 있는지 확인합니다.

nc -vz 10.20.0.178 2049
Connection to 10.20.0.178 2049 port [tcp/nfs] succeeded!

2. EX2 Linux 서버에서 Microsoft AD를 통합한 다음 Active Directory DNS 서버를 구성합니다.

echo 'supersede domain-name-servers 10.20.32.80, 10.20.34.122;' | sudo tee --append /etc/dhcp/dhclient.conf
echo 'supersede domain-search "nikkisDNS.com";' | sudo tee --append /etc/dhcp/dhclient.conf
sudo dhclient -r
sudo dhclient

3. resolv.conf 파일을 점검해 DNS 서버가 구성되었는지 확인합니다.

cat /etc/resolv.conf
options timeout:2 attempts:5
; generated by /sbin/dhclient-script
search nikkisDNS.com.
nameserver 10.20.32.80
nameserver 10.20.34.122

4. 파일 시스템에서 dig를 실행하여 마운트 대상 프라이빗 IP가 반환되지 않는지 확인합니다.

dig fs-ca591a02.efs.eu-west-1.amazonaws.com 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.64.amzn1 <<>> fs-ca591a02.efs.eu-west-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 33320
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;fs-ca591a02.efs.eu-west-1.amazonaws.com. IN A

;; AUTHORITY SECTION:
eu-west-1.amazonaws.com. 299	IN	SOA	dns-external-master.amazon.com. hostmaster.amazon.com. 1312 180 60 2592000 7229

참고: DNS 요청은 A 레코드로 확인되지 않으며 상태에 NXDOMAIN이 표시됩니다.

VPC에 대해 Amazon이 제공한 이름 서버를 사용하는 경우 다음과 같은 문제가 해결됩니다.

dig @10.20.0.2 fs-ca591a02.efs.eu-west-2.amazonaws.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.64.amzn1 <<>> fs-ca591a02.efs.eu-west-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29705
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;fs-ca591a02.efs.eu-west-1.amazonaws.com. IN A

;; ANSWER SECTION:
fs-ca591a02.efs.eu-west-1.amazonaws.com. 60 IN A 10.20.0.178

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

Amazon VPC 제공 DNS에 요청을 전달하도록 Microsoft AD에 대한 조건부 전달자를 구성합니다. 이 방법은 Active Directory에서 제공하는 DNS를 사용하는 경우 다른 AWS 서비스 FQDN을 프라이빗 IP 주소로 확인하는 데에도 효과적입니다.

이렇게 하려면 조건부 전달자 규칙을 구성합니다. 이렇게 하면 도메인의 모든 하위 도메인이 특정 DNS 서버 IP로 전송됩니다. 예를 들어 amazonaws.com의 하위 도메인에 대한 모든 DNS 요청을 Amazon VPC에서 제공하는 DNS의 프라이빗 IP로 전달할 수 있습니다.

참고: Amazon VPC가 제공하는 DNS IP는 VPC IPv4 네트워크 범위의 기본 IP 주소에 2를 더한 예약된 IP 주소입니다.

조건부 전달자 규칙를 만들려면 create-conditional-forwarder AWS CLI 명령을 실행합니다.

aws ds create-conditional-forwarder --directory-id d-93673d4d5a --remote-domain-name amazonaws.com --dns-ip-addrs 10.20.0.2 --region eu-west-1

다음과 같은 파라미터를 사용하십시오.

  • directory-id - AD 디렉터리 ID를 입력합니다.
  • remote-domain-name - 모든 도메인을 지정할 수 있습니다. 이 규칙은 이 도메인 또는 하위 도메인과 일치하는 모든 FQDN에 적용됩니다.
  • dns-ip-addrs- Amazon VPC가 제공하는 DNS IP를 입력합니다.

이렇게 하면 EFS FQDN의 DNS 확인이 허용되고 이후 FQDN을 사용하여 EFS FS를 마운트합니다.

dig fs-ca591a02.efs.eu-west-2.amazonaws.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.64.amzn1 <<>> fs-ca591a02.efs.eu-west-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29705
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;fs-ca591a02.efs.eu-west-1.amazonaws.com. IN A

;; ANSWER SECTION:
fs-ca591a02.efs.eu-west-1.amazonaws.com. 60 IN A 10.20.0.178