간단하게 requests.get(url) 이런 식으로 웹페이지를 요청하는 코드에서 다음과 같은 오류가 발생했다. 로컬에서는 동작하는데 서버에 올리니 동작을 안 하는 상황.
Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 72, in get return request('get', url, params=params, **kwargs) File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 58, in request return session.request(method=method, url=url, **kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 508, in request resp = self.send(prep, **send_kwargs) File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 618, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 508, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPSConnectionPool(host='xxx.xxx.xxx', port=443): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
로컬에서는 동작하는데, AWS EC2 instance에서 저런 오류가 나는 것은 DNS resolution이 안되는 것이라고 생각해서 DNS 설정에 다음을 추가해줬다.
/etc/resolv.conf 파일에 다음과 같이 구글 DNS를 추가
nameserver 8.8.8.8
그 뒤로는 잘 동작함. 오예.
<2020년 10월 19일 추가>
서버가 재시작 되었는데, /etc/resolv.conf 파일이 자동으로 초기화된다.
찾아보니까 /sbin/dhclient-script 에서 매번 자동으로 생성되는 파일이고, /etc/sysconfig/network-scripts/ifcfg-eth0 에 다음 내용을 맨 마지막에 추가해서 구글 DNS 서버가 자동으로 추가될 수 있게 할 수 있다.
DNS1="8.8.8.8"
DNS2="기본 DNS를 입력"
참고자료: https://gunnm.tistory.com/141
More from my site
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Leave a Comment