프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

Cloud/GCP

GCP VPC와 AWS의 VPC의 차이점

EVEerNew 2024. 4. 5. 18:04
반응형

 

 

 

GCP VPC와 AWS의 VPC 단위

 

GCP의 VPC와 AWS의 VPC의 가장 큰 차이는 점은 적용 단위이다.

 

AWS에서 VPC는 리전에 종속되는 리소스이다.

따라서 다른 리전의 자원에 접근하려면 VPC Peering과 같은 기능이 필요했다.

https://everenew.tistory.com/399

 

AWS 다른 리전 간의 VPC Peering 설정하기

VPC Peering 격리된 VPC는 별도의 세팅이 없다면, 다른 VPC와 연결을 할 수 없다. 그렇다고 인터넷을 통해 다른 VPC로 접근을 한다면, 추가적인 암호화가 필요할 것이다. 따라서 AWS는 VPC간을 AWS 내부 네

everenew.tistory.com

이러한 VPC 내부의 서브넷은 각 zone에 종속되었다.

 

 

 

하지만 GCP에서는 VPC가 모든 리전에 걸쳐서 설정될 수 있다.

이를 가능하게 하는 것은 Google이 독자적으로 설치해 둔 해저 광케이블과 같은 초고속 네트워크 인프라를 이미 구성해 두었기 때문이다.

또한 subnet은 리전 단위가 되어 여러 zone에 걸쳐서 설정될 수 있다.

이를 GCP의 VPC 를 생성하여 직접 테스트해보자.

 

 

 

 

Default VPC

 

일단 모든 프로젝트에 기본 VPC가 존재한다.

이 default VPC는 모든 region에 걸쳐 생성되기 때문에, 각 리전에 서브넷이 하나씩 생겨서 29개의 subnet을 가지고 있는 것을 확인된다.

 

 

 

이런 기본 VPC도 삭제 가능하다.

 

 

 

자동 모드로 VPC 생성

 

자동으로 VPC 생성을 해보자.

생성 누르기

 

생성 시 subnet을 automatic으로 설정하면, 모든 리전에 하나씩 Subnet이 생성된다.

자동으로 설정된 IP subnet

 

방화벽은 기본 방화벽들을 적용해 준다.

 

 

이렇게 생성하면 VPC가 모든 리전에 걸쳐서 생성되었다.

 

 

VM 생성하기

 

다음 us-east4에 생성된 Subnet안에 VM을 만들자.

 

 

다른 하나는 europe-west4의 subnet에 만들자.

 

 

이제 두 인스턴스는 다른 리전의 다른 서브넷이지만 같은 VPC 내부에 존재한다.

따라서 두 인스턴스가 서로 통신이 되는지 확인하기 위해 ssh로 접근하자.

 

 

 

두 인스턴스 간에 통신이 된다.

 

외부 IP로도 확인이 된다.

 

 

자동으로 생성한 VPC는 custom으로 변경도 가능하다.

 

 

 

 

custom 모드 vpc 생성

 

custom은 리전을 선택할 수 있으므로, 하나의 리전에만 서브넷을 생성시킨다.

 

us-east4에 10.240.0.0/24 서브넷만 생성해 주었다.

 

 

CLI로 VPC 생성하기

GCP는 AWS와 같이 GUI 콘솔이 잘 만들어져 있지는 않다.

그 이유는 GCP가 CLI base로 작업하길 권장하기 때문이다.

 

이번엔 CLI로 VPC를 생성해 보자.

 

 

custom mode VPC 생성

gcloud compute networks create <VPC 이름> --subnet-mode=custom

 

 

 

 

서브넷을 리전과 IP 대역대로 명시해서 만들기

gcloud compute networks subnets create <서브넷 이름> --network=<VPC 이름> --region=<리전ID> --range=<IP range>

 

 

 

VPC 목록을 출력

gcloud compute networks list

 

 

 

방화벽 설정 

방화벽도 추가해 주자.

이는 AWS의 보안 그룹과 동일하다.

 

 

 

TCP 22번과 3389(rdp)를 허용시켜 주자.

 

이러한 세팅을  CLI로 변환해서 제공해 준다.

 

 

gcloud compute firewall-rules create privatenet-allow-icmp-ssh-rdp --direction=INGRESS --priority=1000 --network=privatenet --action=ALLOW --rules=icmp,tcp:22,tcp:3389 --source-ranges=0.0.0.0/0

 

 

 

방화벽 목록 출력 

gcloud compute firewall-rules list --sort-by=NETWORK

 

 

 

 

새로운 VPC에 VM 생성

 

vm 생성 시 network interface에서 다른 VPC의 서브넷을 세팅해 주자.

 

 

이러한 세팅도 명령어로도 가능하다.

 

 

 

인스턴스 생성 명령어

 

gcloud compute instances create privatenet-us-vm --zone=us-east4-a --machine-type=e2-micro --subnet=privatesubnet-us --image-family=debian-11 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard --boot-disk-device-name=privatenet-us-vm

 

 

 

인스턴스 리스트 출력

gcloud compute instances list --sort-by=ZONE

 

 

 

이제 인스턴스들을 확인해 보면, 같은 리전이지만 다른 VPC의 인스턴스들이 확인된다. 

 

 

 

따라서 서로 다른 VPC 인스턴스는 내부 IP로는 접근이 되지 않고 외부 IP로만 접근이 된다.

 

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함