☁️ Tencent Cloud/☁️ Tencent cloud Products

[VPC] VPC리소스를 Public network와 연결하는 방법

just in here

 

 

이 글에서는 Tencent cloud의 VPC리소스가 외부 공용 인터넷에 접근하는 방식을
AWS의 internet gateway를 통한 방식과 비교하여 간단하게 설명한다.

 

 

 

 

AWS의 Internet gateway

 

 AWS의 퍼블릭 서브넷이 인터넷에 접속하려면 일반적으로 Internet gateway를 통해야한다. AWS의 공식문서 중 VPC 네트워킹에 관한 토폴로지를 보면 항상 대문처럼 생긴 Internet gateway를 확인할 수 있는데, VPC와 외부 인터넷을 연결시켜주는 통로 같은 느낌으로 꽤나 직관적인 느낌을 준다.

 

 애초에 AWS에서는 퍼블릭 서브넷과 프라이빗 서브넷의 구분을 해당 서브넷이 internet gateway와 직접적으로 연결되어 있는지 여부로 판단한다. 어떤 서브넷이 Internet gateway로 향하는 아웃바운드 트래픽 룰을 포함하고 있는 라우팅 테이블과 연결되어 있으면 그 서브넷을 퍼블릭 서브넷이라고 부르는 것이다.

 

 

서브넷을 생성할 때 부터 public, private 속성을 결정하고,

그에따라 동일VPC 로컬 영역을 제외한 모든 트래픽을 Internet gateway로 내보내는 기본 라우팅 테이블이 자동으로 바인딩 된다.

심지어 퍼블릭서브넷 내부의 인스턴스가 퍼블릭IP를 할당 받은 상태여도 연결된 라우팅 테이블에서 Internet gateway에 대한 룰이 없으면 직접적으로 퍼블릭 네트워크와의 연결이 되지 않는다.

 

In Tencent cloud

하지만 Tencent cloud에서는 다르다. 일단 internet gateway라는 요소 자체가 명시적으로 존재하지 않는다. 따라서 AWS처럼 라우팅테이블의 구성에 따라 public, private 서브넷을 구분하지 않는다. (Tencent cloud 공식문서 어디에도 public subnet과 private subnet이라는 용어가 존재하지 않는다.)


그렇다면 어떻게 외부 인터넷에 접속할까? 

그냥 public IP(혹은 EIP)를 할당하면 된다. Internet gateway가 없기 때문에 (Tencent cloud 공식 문서에 internet gateway라는 용어가 없을 뿐이지 public gateway 등의 단어로 외부 인터넷 연결을 간접적으로 표현하긴 한다.) 

 

별도로 라우팅 룰을 적지 않아도 public IP가 인스턴스에 연결되어있다는 것이 외부 인터넷 엑세스가 가능하다는 의미가 된다.

실제로 Tencent cloud 콘솔에서 라우팅 테이블을 생성할때 목적지 중에 인터넷게이트웨이가 없는 것을 확인할 수 있다.

기본 라우팅 테이블의 경우에도 VPC 내부에 대한 로컬 룰 밖에 없다. 이렇게 되어 있어도 public IP (혹은 EIP)가 인스턴스에 바인딩 되어있다면, Tencent cloud는 자체적으로 해당 인스턴스의 인터넷 연결을 가능하게 한다.  Microsoft Azure의 경우도 비슷하다. Azure도 명시적인 인터넷게이트웨이의 존재가 없고, 라우팅 룰로 public/private 서브넷을 구분하지 않는다.

 

Public subnet / Private subnet

 정리하면, Tencent cloud에서는 internet gateway가 따로 없고 public IP(혹은 EIP)를 VPC네트워크 환경의 인스턴스에 바인딩하면 라우팅 테이블에 별도의 라우팅 룰이 없어도 외부 퍼블릭 네트워크에 접속이 가능하다.

그렇다면 서브넷의 public/private 구분은 어떻게 해야할까?

 AWS에서는 이에 대한 명확한 기준이 있기 때문에, 어떤 서브넷 안에 private IP만을 가진 인스턴스가 몇 개가 존재하든 간에 서브넷에 연결된 라우팅테이블에 internet gateway에 대한 룰이 있다면 그 서브넷은 퍼블릭 서브넷이다.

 Tencent cloud에서는 애초에 둘을 구분짓지 않기도 하지만, 위에서 예를 든 서브넷은 그야말로 둘 중 어느 곳에도 속하지 않는 존재인 것이다. 그러나 일반적으로 외부와의 직접적인 연결이 차단되어있고, NAT gateway를 통한 제한적인 아웃바운드 접속이 가능하게 설계된 서브넷은 프라이빗 서브넷으로 칭하고, 그 외의 서브넷은 퍼블릭하다고 보는 것이 타당할 것이다.

 

마치며

 VPC 네트워킹에서 Internet gateway의 명시적인 존재는 네트워크 트래픽 플로우를 이해하는데 도움이 될 수 있다. 라우팅  테이블을 통한 public 트래픽의 경우도 그렇고 심지어 private subnet에서의 NAT 프로세스를 보면 실제적으로 private IP를 public IP로 변환하는 작업은 NAT gateway가 아닌 Internet gateway에서 일어난다. (AWS의 경우 이 점을 공인문서에서 설명하고 있다.) 

 

 Tencent Cloud는 이러한 AWS Internet gateway가 담당하는 역할을 외부로 드러내지 않고 있다. 따라서 VPC와 서브넷을 생성할때 public/private 속성을 선택하지 않아도 되고, Internet gateway를 포함한 라우팅 룰에 대해 설정할 필요가 없다. 완전히 클라우드를 처음 접하는 사용자들에겐 이 방식이 오히려 쉽게 느껴질 수 있다.

 

 실제로 Tencent Cloud 콘솔을 사용해보면 타 벤더사들에 갖추고 있는 기능들을 모두 가지고 있으면서도 한결 더 간결한 UI와 친절한 사용자경험을 제공하는 것을 체험할 수 있는데 사용자 입장에서는 위와 같은 VPC 네트워킹의 방법을 포함하여 여러 가지 CSP 콘솔 중 장점만을 모아서 최선의 콘솔을 구현하기 위해 계속해서 노력 중 이라는 느낌을 받게 한다.