생성된 GCE을 감싸고 있는 대략적인 환경
좌측은 GCP GCE를 감싸고 있는 환경이고 우측은 AWS EC2를 감싸고 있는 환경이다. 어느 정도로 자세하게 묘사했느냐의 차이만 있지 사실상 VPC 안에 Subnet있고, 인스턴스 앞단에 방화벽이 있으며 게이트웨이를 통해 연결된다는 사실은 같다.
VPC(virtual private cloud) : GCP 입장에서 동일한 컴퓨팅 자원을 여러 사용자에게 할당하면서 분리하기 위한 가상 공간이다. AWS와 같.
Subnet : Network IP 주소 대역대를 분할한 것
* NIC(Network Interface Card)
2계층(데이터 링크 계층)의 장치입니다. 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치. 별명이 많습니다. 랜 카드, 네트워크 인터페이스 컨트롤, 네트워크 카드 등등. 여러 일을 담당하고 있지만 최대한 단순하게 요약하자면 'NIC는 물리적 주소인 MAC 주소를 가지고 있고, 목적지 MAC 주소가 다른 패킷은 그냥 버린다'고 정리할 수 있다.
- https://darrengwon.tistory.com/1306?category=907881
- https://darrengwon.tistory.com/1308?category=907881
VPC 네트워크와 서브넷
https://cloud.google.com/vpc/docs/vpc
VPC 네트워크를 확인하러가보자. 여담인데, AWS보다 UI가 훨씬 직관적이고, 체계적으로 정리되어있다는 느낌을 받는다...
Project를 생성하면 기본적으로 생성되는 default VPC를 확인할 수 있고, default VPC 내부에 default Subnet이 존재함을 확인할 수 있다.
Subnet마다 할당된 IP 주소 범위가 다르고, 당연히 이 IP 범위 내부에 존재하는 게이트웨이의 주소도 다른 것을 확인할 수 있다.
일반적으로 게이트웨이 주소는 IP 주소 중 끝자리가 1인 녀석을 지정하는데, 이 관습을 GCP에서 지켜준 것이다.
일반적으로 게이트웨이의 IP 주소는 해당 네트워크 내 컴퓨터에 할당된 IP 주소 중 끝자리(4번째 옥텟)만 다른 형태다. 대게 1을 지정한다. 이를 테면 컴퓨터 IP 주소가 123.123.123.123이라면, 게이트웨이 주소는 123.123.123.1이 된다.
- https://it.donga.com/6744/
게이트웨이와 별도로 예약된 주소들은 다음과 같드아... 문서를 읽자.
나의 project에 할당된 asia-northeast3 서브넷의 IP 주소 범위는 10.178.0.0/20이고, gateway주소는 10.178.0.1이다.
asia-eastnorth-3(서울)에 생성한 GCE 인스턴스의 세부 정보를 확인해면, 내부 IP가 10.178.0.2로, 10.178.0.0/20 범위 내부인 것을 확인할 수 있다.
Subnet간의 통신을 하고 싶어
보통 Subnet 간의 통신은 막혀 있어 서로간 통신을 해주려면 라우팅 설정을 해주어야 한다.
GCP에서는 기본적으로 서로 통신이 되게 설정이 되어 있는 것을 확인할 수 있다.
이 중에서도 외부와 연결된 부분도 확인할 수 있다.
static한 public IP를 가지고 싶어!
https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address
AWS는 고정적인 public ip를 할당하기 위해서 elastic IP가 필요하다.
GCP에서도 마찬가지로 public ip는 임시적이다. static ip를 주어야 한다.
다시 한 번 GCE 인스턴스를 살펴보면, 외부 IP는 임시적이라는 것을 확인할 수 있다.
VPC 네트워크 탭에서 외부 IP 주소를 확인해보면, 어느 리소스에서 해당 주소를 사용 중이며, 임시인지, static인지 확인할 수도 있다.
우측의 [예약]을 눌러서 고정 IP를 할당받을 수 있다.
다음과 같이 적어주면 고정 ip가 발급된다.
egress / ingress와 Firewall
outbound = egress (내가 외부에 접속하는 것)
inbound = ingress (외부 트래픽이 내 리소스에 접속하는 것)
실제로 VPC 네트워크 탭에서 방화벽을 살펴보자.
default-allow-http라는 이름의 방화벽 규칙은 수신(ingress) 유형, 즉, 외부 트래픽을 받는 입장이다.
http-server라는 network tag가 붙으면 적용되며, 모든 IP(0.0.0.0/0)의 tcp:80 접근을 허용한다.
이 방화벽 규칙이 적용된 GCE의 세부 사항을 살펴보자. ingress로 http를 허용하게 되면 network tag로 http-server가 들어오게 된다. 저 위의 방화벽 규칙이 적용된 셈이다!
'GCP > ☁️ GCP' 카테고리의 다른 글
Google Compute Engine (5): Instance group (0) | 2021.09.15 |
---|---|
Google Compute Engine (3): GCE 기본적 운영 (일정, OS patch/policy, NEG ...) (0) | 2021.09.14 |
Google Compute Engine (1) : GCE 생성 및 접근 (0) | 2021.09.12 |
GCP의 Region/Zone, 리소스 계층 구조 (0) | 2021.09.10 |
Dialogflow API (0) | 2020.09.22 |