[해외서비스] 특정 도메인을 여러국가에서 동일한도메인으로 서비스
해외서비스를 할때 사용하는 도메인 방법에는 여러가지가 있을 수 있겠지만 크게 두가지 정도로 볼 수 있을것 같습니다. 저도 완전히 서버에 대한 업무만 하는것은 아니고 본래 직업은 PHP웹프로그래머 입니다.
첫번째, www.도메인.com 네임서버 지리적서비스
두번째, 국가코드.도메인.com 네임서버 국가마다 지정
저희는 첫번째 방식을 선택 하였습니다. GeoDNS 기능으로 많이 사용하는 BIND에서도 지원을 합니다. BIND는 사내에서 사용하면 IP 단위로 제어하는 기능도 있고 괜찮은데요. IP에 대한 관리도 필요하고 안정성등 여러가지 측면에서 AWS의 Route53 네임서버를 활용하는것이 좋습니다. 비용은 생각보다 많지 않습니다.
두번째 방식은 알아서 서버 지정하여 사용하면 됩니다. 국가 언어 선택했을때 그 도메인 지정하면 되겠습니다. 첫번째 방식은 사용자에 따라서 자동으로 그 국가의 서버에 접속하게 하는 방식입니다. 문제는 IP 기반이라서 그리고 접속하여 사용하는 네임서버의 IP 기반이라서 100% 정확하지 않을 수 있다는것이 단점인데 현재로서는 다른 방법을 찾지 못하였습니다.
예를 들면 이런 문제가 있습니다. 누군가 노트북에 국내 KTDNS 자동도 아니고 수동설정하여 미국에 가서 사이트 접속하면 미국서버가 아니라 국내 서버로 접속 될 수 있다는것입니다. 실제 PC에서 테스트 할때도 각 나라의 네임서버을 알려 주는 사이트에서 정보를 얻어 수동으로 네임서버 지정하여 그 국가 서버에 잘 접속되는지 테스트 합니다.
여러국가에 서비스 할때는 Route53에서 좋은 기능인 장애처리 기능을 사용하면 됩니다. 싱가폴서버 장애 발생시 국내나 인도서버로 접속되어 서비스 받을 수 있도록 하는 방법입니다. 그리고 실제는 클라우드프론트의 캐쉬를 사용하기 때문에 초기 HTML 받아 오는것 이외에는 이미지등 모두 기존과 같이 엣지 서버에 있기 때문에 많이 느리지 않을 것입니다.
다음엔 부하분산 방식에 대해서 생각해 본것을 올려 보겠습니다. 보통의 부하분산은 컴퓨터 단에서 리버스프록시 방식을 많이 사용하던가요? 그런것만 많이 알려져 있는데요. 저희도 초기에 그렇게 생각하고 그렇게 설정 하였고 했는데 이 방식이 서버가 엄청나게 많이 필요한곳에선 이게 맞는데 하루 몇만 정도 들어오는 경우는 이게 맞나. 전세계 기존으로 하루 몇만이면 특정 국가는 클라우드프론트에서 처리해주는것이 있기 때문에 동적인 처리하는 서버 1대로 충분합니다. 작은것을 여러개 두면 관리의 무제가 있고 ... 그럼 실제 서버가 잘 죽냐... 그건또 아닙니다. 이 부분에 대한 생각을 적어 보겠습니다.