서론
Network Connectivity Center 란?
Network Connectivity Center 제약 사항
NCC Hub 만들기
Spoke 간 통신 테스트
마무리
GCP에서 VPC를 연결하는 방법에는 두 가지 접근 방식이 있습니다. Shared VPC를 사용하여 중앙 집중식 접근 방식 또는 VPC Peering이나 VPN을 사용하는 분산형 모델입니다.
대규모 조직의 제약 조건이 있는 대규모 구축에서는 구현의 복잡성과 VPC Peering의 한계로 인해 중앙 집중식 모델이 제한되고 있습니다.
Shared VPC를 구현하는 분산형 모델은 전체 조직의 IP 주소 지정 계획, 방화벽 필터링 규칙 및 라우팅 규칙을 관리하는 중앙 집중형 팀으로 제한됩니다.
종종 조직은 사용자 정의 방화벽 규칙을 만드는 것과 같은 프로젝트 팀에 네트워크 작업을 분산할 수 있는 보다 유연한 모델을 원하지만 Shared VPC에서는 불가능합니다.
Shared VPC VS VPC Peering
이러한 이유로 GCP 커뮤니티는 AWS Transit Gateway와 유사한 서브넷 간에 라우팅 규칙이나 필터링 규칙을 사용하여 많은 VPC를 간단한 방법으로 상호 연결할 수 있는 Hub 서비스의 출시를 간절히 기다리고 있었습니다.
네트워크 연결 센터는 Spoke 리소스(VPC, Cloud VPN 또는 Vlan Attachment) 간의 네트워크 연결을 제공하는 GCP 서비스입니다.
NCC Hub 개념
Network Connectivity Center는 Hub&Spoke 리소스라는 중앙 관리 기능으로 구성되어 있으며, 이것들은 Hub에 연결되어 있습니다. Spoke 리소스는 Hub 프로젝트 또는 다른 GCP 프로젝트의 Hub에 연결될 수 있습니다. VPC Spoke 필터는 Ip 범위를 제외하도록 구성할 수 있습니다.
- Hub는 VPC Spoke 또는 하이브리드 Spoke만 가질 수 있습니다. VPN/Vlan Spoke를 VPC Spoke와 연결할 수 없습니다. 필요하다면 두 개의 Hub를 만들어야 합니다.
- 중복되는 문제가 있는 VPC Spoke에는 연결할 수 없습니다. 필터별로 IP 범위를 제외해야 합니다. 프라이빗 NAT 구성이 불가능합니다.
- 두 Hub를 기본적으로 연결할 수 없습니다.
- Hub는 transitive connectivity를 제공하지 않습니다.
- Hub에 동적 또는 정적 라우팅 구성이 없습니다. Hub의 서브넷 간 Custom 라우팅을 구성하고 VPC 간 분리를 사용하도록 설정할 수 없습니다.
VM A와 B 사이에 라우팅이 불가능 - 즉, transitive routing을 할 수 없습니다.
1) Hub 생성하기
2) Spoke 추가하기
VPC Spoke를 선택하고 필요한 경우 IP 범위 필터링
VM spoke1은 myspoke1, VM spoke2는 myspoke2에 속해있습니다.
테스트는 간단하게 VM 간 Private IP로 Ping 테스트를 진행하겠습니다.
우선 spoke가 아닌 VM과 spoke VM 간의 테스트입니다. 두 VM 모두 통신이 되지 않는 것을 확인할 수 있습니다.
다음으로 spoke VM 간의 테스트입니다. 타 vpc임에도 Ping이 잘 나가고 통신이 되는 것을 확인할 수 있습니다.
Network Connectivity Center 허브는 VPC Spoke 또는 Hybrid Spoke 중 하나만 지원합니다.
Hybrid Spoke의 종류는 다음과 같습니다.
또한 Network Connectivity Center를 사용하면 스포크로 표시한 VPC 네트워크를 다른 조직의 프로젝트를 포함한 다른 프로젝트의 단일 허브에 연결할 수 있습니다. 이를 통해 여러 프로젝트와 조직의 VPC 네트워크를 대규모로 연결할 수 있습니다.
다음은 다른 프로젝트 간 Hub&Spoke 예시입니다.
타 프로젝트의 Hub에 Spoke 요청을 보내면 다음처럼 수락을 기다립니다.
Hub가 있는 프로젝트에서 요청 수락을 하면
다음처럼 활성화가 되고, 통신이 가능합니다.
아직까지는 AWS의 Transit Gateway처럼 VPC - Onpremise 등 하이브리드의 다양한 연결을 지원하고 있지는 않지만 과거에는 불가능했던 방식을 지원하기에 점점 확대되는 것은 긍정적인 것 같습니다.
다음 release를 기다려봐야겠습니다.