AWS EC2에서 우분투(Linux)를 사용하고 있는데요.

서버에서 국내의 API 접속해야 할 일이 있을경우,

잘 동작하지 않는 경우를 볼 수 있습니다.


이 때 생각해보아야 할 것이,

AWS의 NameServer가 ip주소를 못 찾는 것이 아닌가 입니다.

만약 못찾고 있다면, resolv.conf파일을 수정해서, 

NameServer를 Google이나, KT등에서 제공하는 NameServer로 바꾸어주어야 하는데요.

오늘은 이 방법에 대해서 정리해 보도록 하겠습니다.


1. nslookup으로 nameServer동작여부 확인하기


우선 nslookup 명령어로 정상적으로 nameserver가 외부의 접속하고자 하는 사이트의 

ip주소를 알아오는지 확인해 보겠습니다.


우선 아래와 같은 명령어로 알아보겠습니다.

국내 모 사이트의 주소를 입력해 보았는데요.


nslookup <도메인네임>


can't find라고 나옵니다.



한번더 확인하고자 하면, 

아래 명령어로 접속을 해보면 Could not resolve host라는 결과를 받게 되는데요.

dns서버가 제대로 동작을 않하니, ip주소를 못 얻어오므로 host를 못찾아서, 접속할 수 없는 것이 당연한 것이지요.


curl <도메인 네임>


이번에는,

정상적으로 동작하는 경우를 보도록 하겠습니다.

구글의 dns서버를 이용해서 테스트 해볼텐데요.

구글의 dns서버는 8.8.8.8로 외우기도 쉽네요.


nslookup <도메인네임> < dns주소>


아! 이제 주소를 찾았군요.

현재 aws의 내부 dns서버를 이용해서는 외부에 접속할 수 없다는 것을 알았습니다.




이제 해야할 일이 명확해 졌네요.

AWS내부의 dns서버가 아니라,

외부의 dns서버(구글혹은 아래의 dns서버 중 하나)를 EC2의 dns서버로 지정해 주면 되는데요.


어떻게 하면 변경할 수 있을까요?

이것은 아래에서 정리해 보겠습니다.



2. NameServer변경하기



초기 EC2에는 아래 이미지와 같이 resolv.conf가 설정되어 있는데요.


nameserver와 search값이 들어가 있습니다.

nameserver의 값은 172로 시작되어 있을텐데요.

이는  aws내부망 ip입니다.


그리고 파란색 텍스트로 resolv.conf파일은 resolvconf파일에 의해서 생성이 되고,

resolve.conf는 다시 overwriiten될 것이라고 쓰여있네요.

(바꾸면 적용은 되겠지만, reboot하거나 stop후 start하면 다시 원래 aws dns서버로 변경되는 것이네요.)


파일을 수정하기 위해서는 resolvconf파일을 수정해야 하는군요.




그럼, resolvconf파일 수정 해 보겠습니다.

아래 명령어를 통해서 tail파일을 생성해 수정할 텐데요.


sudo vim /etc/resolvconf/resolv.conf.d/tail



 DNS서버

 기본 DNS  

 보조 DNS

 GOOGLE

 8.8.8.8

 8.8.4.4

 KT Olleh

  168.126.63.1

 168.126.63.2

 SK BroadBand

 210.220.163.82

 219.250.36.130

 LG uplus

 164.124.107.9

 203.248.242.2



위표의 DNS서버 중,

구글의 기본 DNS와 보조 DNS를 위 파일에 추가해 줍니다. 

(KT나 SK, LG에서 제공해주는 DNS서버를 이용해도, 국내 사이트는 이상없이 ip주소를 찾아줄 수 있습니다)


# Google nameserver IPv4

nameserver 8.8.8.8

nameserver 8.8.4.4

# Google nameserver IPv6

nameserver 2001:4860:4860::8888

nameserver 2001:4860:4860::8844



이제 서버를 reboot시켜주면 될텐데요.

aws콘솔에서 EC2인스턴스를 선택하고, reboot를 시키겠습니다.


그럼, 이제 확인을 해보면, 

아래와 같이 이상없이 ip주소를 찾아주는 것을 볼 수 있습니다.


사실 AWS의 DNS서버를 이용해도, 

국내의 메이저 사이트들의 IP주소를 찾아주는데요.


특히, 공공api등과 관련해서 작업하다가 발견되는 경우가 많습니다.

+ Recent posts