구글 클라우드 플랫폼(GCP)의 서비스 중 Cloud NAT이란 것이 있습니다. 이게 무엇을 하는 것이냐? 온프레미스 환경에서 NAT 프록시 역할을 하는 장비를 떠올리면 됩니다. 대표적인 것이 L4 스위치가 있죠. Cloud NAT을 어디에 쓰나? 용도는 많습니다. 클라우드에 올린 VM 보안 강화 용도가 가장 일반적이고 이 외에도 VM 기반 서비스에 대한 확장성과 고가용성 보장에도 유용합니다.
GCP의 Cloud NAT은 개념과 기능은 온프레미스에서 쓰는 NAT 프록시 장비와 같습니다. 내부 망에 있는 시스템과 외부에 있는 클라이언트 등의 대상과 연결을 위해 중간에서 IP 주소를 변환해 주는 것이죠. 하는 일은 같지만 동작 방식은 좀 다릅니다. 보통 온프레미스 환경에서 NAT 프록시는 서버 앞 단에 배치됩니다. 반면에 Cloud NAT는 논리적인 위치가 있을 뿐 실제로 VM 앞에 뭔가 새로운 인스턴스를 두는 구성이 아닙니다.
Cloud NAT의 경우 활성화를 하면 적용 대상 VM에 NAT IP와 관련 포트가 할당됩니다. 이 작업은 구글의 네트워크 가상화 스택에 있는 안드로메다(Andromeda) 컨트롤러가 합니다.
“Cloud NAT 적용 예: 외부 망에 패치 업데이트 서비스가 존재할 경우”
Cloud NAT 개념도 파악했으니 실제 사용 예를 보시죠. 외부에 패치 업데이트 서비스가 있다고 가정하겠습니다. GCP에 구축한 VM은 외부 망에 있는 업데이트 서비스에 새로운 패치가 올라올 때마다 연결되어야 합니다. 업데이트 서비스 연결 대상 VM은 GCP의 us-east1과 europe-west-1에 있고 각각 서브넷 1(10.240.0.0/16)과 서브넷 3(192.168.1.0/24)에 있습니다. 물론 외부 IP 주소는 할당되어 있지 않습니다. 다만 이들 VM은 정기적으로 외부 서버(203.0.113.1)에 접속해 최신 업데이트를 받아와야 합니다. 이런 조건에서 Cloud NAT을 이용하면 VM에 외부 IP를 부여할 수 있습니다. 이 경우 아웃바운드만 허용하는 것이 NAT의 조건입니다. 업데이트 때만 VM에 외부 업데이트 서버에 접속이 가능하다는 소리죠. 이를 큰 그림으로 그려보면 다음과 같습니다. 외부 업데이트 서버와 내부 VM 간 연결을 위한 NAT 즉, IP 주소 변환이 어떻게 이루어지는 지 한눈에 들어오네요.
본 포스팅에 소개한 Cloud NAT에 대한 자세한 내용은 관련 문서를 참조 바랍니다.