AWS ipv4 유료화에 대응하여, 서버들 ipv6 전용으로 전환 테스트가 슬슬 종료됩니다. 서버이야기 | Posted on 2024. 5. 26. 20:46
전번에 처리를 하려다가..
시간이 부족해서 처리 못하였던것을, 이번에 좀더 확실하게 테스트를 완료하여서 처리중에 있습니다.
옆에는 기존에 사용중인 proxy 서버..
(다들 프록시 서버나 VPN 서버 하나 둘쯤은 가지고 있잖아요???)
왼쪽은 매달 9딸라씩 내던 이미지 옵티마이저가 사실 해골물이었다는 충격적인 결과에, 자체적인 옵티마이즈 서버를 구축해서 올려둔 서버;;
(일단 옵티마이저 서비스를 성능이 좋다는 nodejs 로 구축..)
ipv6 가 문제인게..
github 조차도 ipv6 를 지원하지 않습니다!
(이전 서버글에서도 깠지만.. ipv6 를 지원하는 서비스가 엄청나게 적어서 쓸수가 없;;)
그래서 이번기회에 ipv4 를 완전히 제거해서 사용할수 있도록 하는것을 목표로 이것저것 테스트 해봤는데..
일단은 성공은 했습니다.
프록시 서버를 경우하는 걸로 해결을;;
ipv4 를 한달간 사용한다면 3.5 달라를 사용합니다.
하지만 AWS 라이트세일을 사용한다면 5달라를 사용합니다.
즉, ipv4 2개를 쓴다고하면 AWS 라이트세일을 하나 대여해서 접속 중계기로 사용하는게 이득일 수 있습니다.
저는 일단 프록시 서버를 한대 구축 후 AWS 라이트세일과 EC2를 피어링했습니다.
(과거 몇년전에 삽질하면서 다 해둔 피어링이긴한데;; 이런곳에서 쓸모가 있을줄은;;)
내 컴퓨터에서 프록시를 경유해서 접속할때 설정은, putty 에서 설정에 proxy 가 있는데 이곳에 프록시 접속 정보를 입력해주면 접속이 가능합니다.
(일본어 윈도우즈라서 폰트가 깨지기는 하는데, 대충 접속할때 저 화면에서 추가로 설정만 잡아주면 됩니다.)
윈도우즈는 이렇게 쉽게 접속이 가능했는데..
문제는 본인은 개발시 맥을 쓴다는거..
맥에서는 ProxyCommand 에 아래처럼 적용해서 접속을 성공시켰습니다.
(맥은 뭔가 접속에 대한 힌트가 별로 없어서 삽질을 많이 한;;)
/usr/bin/nc -X 5 -x {Proxy IP}:{Proxy Port} %h %p
ProxyJump 라던가 이것저것 다 테스트 해봤는데, 저는 프록시 경우는 저렇게 추가로 설정해서 접속하고 있습니다.
물론 윈도우즈와 맥에서 접속 기본 IP는 AWS 내부 IP 로 접속해야합니다.
(그래야 프록시에서 내부 통신으로 접속이 되니까..)
대부분의 경우 이렇게 설정하면 서버로 접속은 큰 문제가 없을겁니다.
문제는 전번글에서도 작성했다시피, 서버에서 외부로 빠져나가는 ip 가 ipv6 를 지원하는 서비스가 아니면 데이터를 갱신하지 못한다는거;;
sudo vi /etc/environment
http_proxy="{Proxy IP}:{Proxy Port}"
https_proxy="{Proxy IP}:{Proxy Port}"
위 명령어를 통해서 서버내에서 http 와 https 로 빠져나가는 통신에 대해서 프록시가 적용이 됩니다.
(귀찮으면 위 설정으로 서버에서 빠져나가는 통신은 전부 적용하도록 합시다. 그러면 ipv4 통신도 가능하게 됩니다.)
위 명령어도 문제가 좀 있는게..
보통은 wget 이랑 curl 을 쓸텐데, socks5 를 지정하면 wget 이 안되고..
socks5 를 날리면 curl https 가 안되고;;
알아서 적당히 취사 선택해서 사용하도록 합시다.
(저 방법도 알아본게, sh 로 설치하는 스크립트도 에러를 뿜뿜해서;;)
sh 파일에서 wget 을 전부 curl 로 바꾸는 수고를 들인다거나..
(아니면 셋팅때만 ipv4를 받는것도 방법인데, 라이트세일은 그것도 안되서;;)
추가적으로 github 를 프록시로 받아오는 방법입니다.
인터넷 검색해보면 여러가지가 있는데..
vi ~/.ssh/config
Host github.com
User {Your ID}
IdentityFile {Your Password File Path}
Hostname ssh.github.com
Port 443
ProxyCommand nc --proxy-type socks5 --proxy {Your Proxy IP}:{Your Proxy Port} %h %p
저는 위 설정으로 성공을 하였습니다.
IPv4 유료화에 대응하시는 분들에게 조금은 도움이 되면 좋겠다 싶어서 포스팅으로 남겨둡니다.
저도 외부 통신때문에 어쩔 수 없이 받아둔 ipv4 를 삭제 시키고 상황을 계속 지켜봐야겠네요.
이렇게 하면 로드밸런서용으로만 ipv4 2개만 필요 할 수 있습니다.
(본인은 DB를 외부에서 접속해야하는데 터널링이 안되서;; 어쩔수 없이 DB도 ipv4 를 하나 받아서 쓰고 있지만;;)