1. Virtual Private Cloud(VPC) 네트워킹
Google Cloud를 시작할 때 대부분의 사용자가 첫 프로젝트 내에 자체적으로 VPC를 정의하거나 기본 VPC로 시작하는데, VPC이 뭘까?
- 가상 프라이빗 클라우드(VPC)는 퍼블릭 클라우드 내에서 호스팅되며 안전한 개별 프라이빗 클라우드 컴퓨팅 모델이다.
- 퍼블릭 클라우드 컴퓨팅의
확장성
과 편의성
그리고 프라이빗 클라우드 컴퓨팅의 데이터 격리
, 두 마리 토끼를 모두 잡은 환경이라는 뜻이다.
예시를 통해 알아보는 VPC
예를 들어, 회사 A가 Google Cloud를 사용하여 자사의 서버, 데이터베이스, 웹 애플리케이션 등을 호스팅하기로 결정했다고 가정해보자.
회사 A는 다음과 같은 순서로 클라우드 환경을 구성할 수 있다.
- VPC 네트워크 구성: 회사 A는 Google Cloud Console을 사용하여 VPC를 만들고 필요한 서브넷을 정의한다.
- 서브넷 설정: VPC 내에서 서브넷을 설정하여 서로 다른 영역에 위치한 리소스들을 논리적으로 구분한다.
- 예를 들어, 서버와 데이터베이스를 분리하기 위해 각각의 서브넷을 만들 수 있다.
- 액세스 제어: VPC를 사용하면 방화벽 규칙을 설정하여 특정 IP 주소 범위나 포트로부터의 액세스를 허용하거나 차단할 수 있다. 이를 통해 보안을 강화할 수 있다.
- 인터넷 연결: 인터넷을 통한 외부 액세스를 활성화할 수 있고, 이를 통해 사용자나 외부 시스템이 애플리케이션에 접근 가능해지는 것.
구글 VPC의 특징
-
정적 경로를 만들어 트래픽을 전달한다.
- 정적 경로는 목적지 IP 주소와 다음 홉(next hop)의 IP 주소를 매핑하여 특정 대상으로의 패킷 전달 경로를 지정
- 이를 통해 네트워크 트래픽이 효율적으로 관리되고 목적지로의 안정적인 연결 가능
-
전역 네트워크: 전 세계 Google Cloud 리전 어디에나 서브넷을 둘 수 있다. 즉, 서브넷 범위는 리전.
-
서브넷의 여러 Zone에 리소스가 위치할 수 있다.
- 예를 들어, 하나의 VPC 네트워크에 두 개의 서브넷이 있고, 각각 다른 리전에 정의된다면, 이 서브넷에 있는 리소스는 Zone이 다르더라도 동일한 네트워크에 속한다.
-
높은 VPC 호환성 제공
- VPC 피어링: 두 VPC 간의 관계를 설정하여 트래픽을 교환할 수 있다.
- 공유 VPC: 하나의 프로젝트에서 다른 프로젝트의 VPC와 상호작용할 수 있는 주체와 대상을 제어하기 위해 공유 VPC를 구성할 수 있다.
2. Compute Engine의 특징
Google Cloud의 IaaS 솔루션 중 하나인 Compute Engine
은 사용자가 Google의 인프라에서 가상 머신을 생성하고 실행할 수 있는 서비스이다. (공식 문서 링크)
-
다양한 Linux 및 Windows Server 이미지를 빌드해서 실행할 수 있다.
-
Cloud Marketplace를 통해 서드파치 솔루션도 사용할 수 있다.
-
초당 청구되는 요금 체계를 사용한다.
-
선점형 VM
및 스팟 VM
과 같은 옵션을 제공하기 때문에 비용에 따라 선택 가능.
두 유형의 VM 모두 장기간 실행되지 않거나 유연한 워크로드(작업을 완료하거나 성과를 창출하는 데 소요되는 컴퓨팅 리소스와 시간의 양)에 적합하다.
- 선점형 VM (Preemptible VM):
- 선점형 VM은 일반 VM과는 달리, 가격이 저렴하고 일정 시간 동안만 사용할 수 있는 가상 머신
- 스팟 VM (Spot VM):
- 스팟 VM은 클라우드 리소스의 수요와 공급을 기반으로 한 경매 형태의 가상 머신이다.
- 따라서, 스팟 VM은 시장 가격 이하로 가용가능한 남는 VM을 실행할 수 있지만, 다른 사용자가 해당 자원을 요청할 경우 스팟 VM이 중지될 수 있다.
3. Cloud Load Balancing
-
부하 분산기는 애플리케이션의 여러 인스턴스(주로 서버)에 사용자 트래픽을 균형있게 분산하고, 애플리케이션에 성능 문제가 발생할 위험을 줄여준다.
-
즉, 여러 Compute Engine 리전에 걸쳐 HTTP 기반 트래픽을 분산할 수 있다.
- Cloud Load Balancing은 모든 트래픽 앞에 배치할 수 있으며 HTTP(S), 기타 TCP 및 SSL 트래픽과 UDP 트래픽 등도 포함된다.
- 웹 애플리케이션의 여러 리전 간 부하 분산부터 프로젝트 내의 애플리케이션 레이어 간 트래픽의 부하 분산까지 제공한다.
4. Cloud DNS 및 Cloud CDN
8.8.8.8
DNS는 호스트 이름을 주소로 변환하는 역할을 한다.
일반적으로 가정집에서 쓰는 인터넷은 통신사(ISP)에서 제공하는 DNS 서버를 이용하지만, 해외에 서버를 둔 웹페이지, Netflix, iCloud 등 다양한 서비스 대형 DNS 업체의 DNS를 사용한다.
8.8.8.8
은 Google이 제공하는 무료 공개 DNS 서비스 이다.
CDN (콘텐츠 전송 네트워크)
CDN(Content Distribution Network) 은 지리적 제약없이 전 세계 사용자에게 빠르게 콘텐츠를 전공하는 기술이며, 원리는 웹 캐시의 클라우드화다.
- Google은 에지 캐싱 글로벌 시스템을 보유하고 있으며, 이를 통해 최종 사용자에게 더 가까운 캐싱 서버에 콘텐츠를 저장한다.
- HTTP(S) 부하 분산을 설정하면 간편하게 Cloud CDN을 사용 설정할 수 있다.