IaaS/퍼블릭클라우드

GCP VPC 구축하기 (Public/Private Subnet 구축하기)

armyost 2023. 11. 24. 16:25
728x90

필자가 만들고자 하는 VPC는 다음과 같다.

AWS에서는 Subnet이 Internet-gateway가 연결되어 있으면 Internet-facing되었다고 생각하고 public subnet이라고 단정짓는다. 하지만 GCP는 private-subnet에 대한 개념이 상대적으로 약하다. AWS처럼 아에 private-subnet에 대한 default한 설정이 들어가는게 사용자 실수 줄이기도 좋고.. 편하다. GCP가 이게 상대적으로 약하다. 하지만 전반적인 네트워크 잡는건 똑같다.  

 

위 그림에서 public-subnet은 In/Out Bound Traffic이 Internet 영역과 모두 허용되고, private-subnet은 In-Bound Traffic 은 미허용, Out-Bound Traffic은 허용한다.  

 

이걸 구현코자 한다.


1. VPC 만들기

g

 

 

※ 특이점 : AWS와 다르게 Available Zone 설정이 없다. (알아서 해줌)

Private Subnet은 비공개 Google Access를 On으로 세팅한다.

방화벽 규칙을 잘 추가해놓는다. 나중에 추가하려면 귀찮다.

 


2. Route Gateway 확인

자동으로 Internet Gateway 가 생성되었다. 

※ 특이점 : AWS와 다르게 Private Subnet에 대한 개념이 약하다. 그리고 Network 리소스 컨트롤이 Systematic해서 직접 못하는게 많다. private-subnet 에서 Internet Gateway를 야에 명시적으로 빼고싶다..

 

 

 

추가로 NAT Gateway를 만들어 private-subnet에 할당할 것이다. 

$ gcloud compute routers create nat-router \
  --network=armyost-vpc \
  --region=asia-northeast3 \

$ gcloud compute addresses create nat-gateway-ip --region=asia-northeast3

$ gcloud compute routers nats create nat-gateway \
  --router=nat-router \
  --region=asia-northeast3 \
  --nat-custom-subnet-ip-ranges=private-subnet \
  --nat-external-ip-pool=nat-gateway-ip

완료


이제 인스턴스를 생성할때는 private-subnet에 배포할 녀석은 반드시!!!!

External IP 세팅을 None으로 한다. ← 이게 귀찮.. 그리고 실수 포인트 발생할 수 있음.

 

※ 개선방안 : VPC 방화벽 정책에서 막아버리는 방법, 인스턴스 Tag를 이용하여 보안 정책을 적용하는 방법

 

https://www.youtube.com/watch?v=f0T4KIasjqA