구글 클라우드의 네트워크는 뭐 따로 강조할 필요가 없습니다. 구글은 IT 기업 중 가장 긴 해저 광케이블망을 운영하는 통신사업자의 면면을 갖추고 있고, 이를 토대로 다양한 구글 서비스와 클라우드 서비스(GCP)를 운영하고 있습니다. 이런 강력한 네트워크 환경에 관리 편의성까지 제공한다? 네, 구글이 최근 넥스트 19에서 Traffic Director를 소개했습니다.
Traffic Director는 다양한 위치에 구성한 서비스 메시(Service mesh) 환경을 위한 네트워크 관리 서비스라 보면 됩니다. 도구가 아닙니다. 구글이 책임지고 운영하는 관리형 서비스로 99.99%의 SLA를 제공합니다. Traffic Director는 클라우드를 이용하는 기업의 불편을 해결하기 위해 등장했습니다. 여러 개발팀이, 여러 위치에서, 다양한 설정으로 애플리케이션을 개발해 운영하는 모습, 왠지 친숙할 것입니다. 이처럼 복잡한 서비스 메시 환경을 Traffic Director는 단일 관리 체계로 묶습니다. Traffic Director는 운영과 개발을 분리하는 것을 핵심으로 합니다. 개발자가 네트워크를 고려해 개발하지 않아도 되게 만들겠다! 뭐, 이런 목표로 만든 서비스입니다.
구조는 위와 같습니다. 어떤 위치에 가성 머신이나 컨테이너 환경을 구성해 운영하건 관계없이 Evnoy 등의 서비스 프록시가 배포됩니다. 이 프록시는 네트워크 환경에서 컨트롤 플래인(control plane) 역할을 합니다. 애플리케이션이 네트워크를 고려할 것은 없습니다. 네트워크 관련 설정은 프록시에서 정책을 기반으로 운영됩니다. 프록시의 간의 통신은 xDS API를 통해 이루어집니다.
클라우드 환경에서 로드밸런싱 고민도 싹 사라져 “강력한 글로벌 로드 밸런싱”
Traffic Director의 주요 역할 중 하나는 바로 로드밸런싱입니다. 많은 분이 클라우드 환경에서 로드밸런싱 설정에 어려움을 느껴왔죠. 이제 Traffic Director에 맡기면 됩니다. Traffic Director는 전 세계 GCP 모든 리전을 대상으로 글로벌 로드밸런싱을 합니다. 원리는 간단합니다. RTT(round-trip time) 시간이 가장 짧은 곳에 있는 인스턴스로 트래픽을 보냅니다.
만약 가장 가까운 인스턴스에 장애가 발생하거나, 이미 너무 많은 부하가 가해지고 있으면 Traffic Director는 지능적으로 트래픽을 다른 인스턴스로 보냅니다.
여기저기 인스턴스를 올리다 보면 서버 헬스체크하는 것도 일이죠. 서비스 메시 규모가 크면 매우 복잡한 일이 됩니다. Traffic Director는 이것도 간소화합니다. 헬스체크 결과를 프록시들이 수집하고, 이를 EDS API를 통해 중앙으로 모읍니다.
만약 로드밸런싱으로 폭주하는 트래픽을 견딜 수 없다면? Traffic Director가 알아서 오토 스케일링을 합니다. 트래픽을 리다이렉트 하는 것만으로 벅찬 시점에 자동으로 리소스가 확장된다면? 운영자 측면에서 이것보다 든든한 것이 또 어디 있겠습니까.
그렇다면 운영자가 할 수 있는 것은 없을까요? Traffic Director는 애플리케이션의 코드 수정 없이 네트워크 관련 설정을 반영할 수 있도록 룰 기반의 트래픽 관리 기능도 제공합니다. HTTP 매치 룰, HTTP 액션, 트래픽 정책, 필터링 등을 룰 기반으로 적용할 수 있습니다.
Traffic Director를 더 자세히 알고 싶다면 넥스트 19의 발표 영상이 도움이 될 것입니다.