[GCP] VPC Network 통신 테스트 및 정리
개요
약 2년 동안 AWS만 사용했는데 이번에 저희 팀에서 GCP를 사용해 보기로 했습니다.
GCP Network를 대충 보니 AWS와 많이 다른 거 같았습니다.
비교해 보면서 정리해 보겠습니다. 공부하면서 적는것이라 틀린 부분이 있을 수 있습니다.
틀린 부분은 댓글로 알려주시면 감사하겠습니다.
VPC Network
범위는 Project > VPC > Region > Subnet 입니다. (AWS의 범위는 Region > Zone > VPC > Subnet )
GCP VPC는 Global이기 때문에 VPC 내부에 Region이 있습니다.
같은 VPC에 위치한 서로 다른 리전끼리 VPC Routing을 통해 프라이빗 IP로 서로 통신이 가능합니다.
위의 내용을 테스트해보겠습니다.
Firewall에서 ssh, icmp를 any로 열어둔 상태입니다.
GCP Firewall은 AWS Security Group입니다.
public-a
public-a VM에서 외부로 ping이 나가는 모습입니다.
이것이 가능한 이유는 VPC를 생성하면 기본적으로 Routes가 생성이 되는데 default Internet Gateway, 서브넷 경로가 세팅됩니다.
이 Routes 때문에 VPC Routing이 가능한 것입니다.
같은 서브넷은 물론 다른 서브넷에 위치한 VM에 프라이빗 IP로 통신이 가능한 모습입니다.
private-a
private-a에서 private-b로 통신 성공.
하지만 NAT가 없기 때문에 외부로 통신이 불가능합니다.
해당 VPC에 NAT를 생성하겠습니다.
private-a
외부로 ping이 가능합니다.
Cloud NAT 기본 예시
GCP는 AWS와 달리 라우팅 테이블을 서브넷과 연결하지 않기 때문에 Public/Private 서브넷이라는 개념이 없습니다.
하지만, 개념적으로 Public/Private 서브넷을 이름 붙이고 퍼블릭 서브넷에는 VM을 생성할 때 외부 IP를 붙이고, 프라이빗 서브넷에는 VM을 생성할 때 외부 IP를 제거하는 방법이 있습니다.
AWS와 달리 서브넷을 zone을 지정하고 생성하지 않습니다. 추후에 VM을 생성할 때 리전, 영역(zone)을 선택한 후 서브넷을 선택합니다.
또한, 보통 GCP에서는 베스쳔 VM을 따로 두지 않습니다. console에서 프라이빗 VM에도 IAP를 통한 SSH 연결이 가능하기 때문입니다.
서브넷에서 private google access 기능을 활성화하면 Private VM이 Google API 및 Services의 외부 IP주소에 도달할 수 있습니다.
Public VM은 이 기능이 있든 없든 영향받지 않습니다.