-
데이터센터 (Data Center)
- 서버, 네트워크, 스토리지 등의 IT 인프라가 설치된 대규모 시설
-
리전 (Region) 및 영역 (Zone)
- 리전 (Region)
- 리소스를 호스팅하는 특정한 지리적 위치 (zone의 집합)
- 3개 이상의 영역(zone)으로 구성됨
- 여러 리전에 리소스를 구성하면 재해 복구 설계 (Diaster Recovery) 가능
- ex )
us-east1
- 영역 (Zone)
- 하나 이상의 데이터 센터 구성
- 각 영역은 물리적으로 서로 떨어진 곳에 구성됨
- 여러 영역에 리소스를 구성하면 높은 수준의 장애 독립성 (High Availability)을 얻을 수 있음
- ex )
us-east1-a,us-east-1-b,us-east1-c
- 대부분의 경우 서비스 리소스를 생성할 때 리전 또는 영역을 선택해야 함
- 리전 (Region)
-
GCP 리소스 구조
- 항목을 계층적으로 구성하고 관리하는 방식
- 엑세스 제어 정책 및 구성 설정을 관리 가능
- 각 리소스는 하나의 상위 리소스에만 속할 수 있음
- IAM 정책
- 권한은 계층구조를 통해 상속됨
- 예를 들어, 폴더 수준에 권한을 부여하면, 폴더에 속한 프로젝트 및 프로젝트에 속한 리소스에 권한 상속
-
GCP 리소스 구조 - 프로젝트
- 모든 리소스는 하나의 프로젝트에 속해야 함
- 하나의 리소스는 하나의 프로젝트에만 속할 수 있음
- 하나의 프로젝트는 다른 프로젝트의 리소스에 엑세스할 수 없음
- Shared VPC, VPC Peering을 설정해 주어야 함
- 예를 들어, Development, Production 등의 환경을 분리할 때 별도의 프로젝트 생성
-
GCE(Google Compute Engine)
- 클라우드 가상 서버
- 개별 가상머신(Virtual Machine)을 인스턴스(instance)라고 함
- 구글 데이터센터의 물리적인 서버를 사용자가 공유하여 사용
- CPU, 메모리, 디스크, 네트워크 등을 할당하고, OS와 애플리케이션을 설치하여 운영
-
Instance Pricing
- Compute Engine 인스턴스는 최초 1분 청구 후 1초 단위로 요금이 청구됨
- 지속 사용 할인 (Sustained use discounts)
- N1, N2 유형의 인스턴스의 경우 20% ~ 50%dml wlthr tkdydgkfdlsdmf qkedmf tn dlTdma
- 예를 들어, 월 50%에 해당하는 가상머신을 사용하는 경우 10%의 할인 효과를 받음
- 약정 사용 할인 (Committed use discounts)
- 1년 또는 3년 약정을 하는 경우 최대 70%까지 할인을 받을 수 있음
- 선점형 VM 인스턴스 할인 (Premmptible VM Instance)
- 선점형 인스턴스를 사용하는 경우 최대 80%까지 할인을 받을 수 있음
- 최대 24시간동안 운영이 가능하고 언제든지 종료될 수 있기에 종료에 영향을 받지 않는 단기 작업에 적합
-
Availability Policy (가용성 정책)
- Preemptible Instance (선점형 인스턴스)
- 일반적인 인스턴스 유형보다 비용이 80% 저렴 (저비용 단기 컴퓨팅 인스턴스)
- 24시간 동안만 시스템이 지속가능 하며, 경우에 따라 더 빨리 종료될 수 있음
- 시스템 종료 30초 전에 알림을 받기에 종료 전에 작업을 저장하여 나중에 다시 수행 가능
- 시스템 운영 중에 종료되어도 되거나 배치 프로세스 작업 등의 단기 작업 용도에 적합
- On host maintenance
- GCP에서 Compute Engine 정기 유지 관리를 수행할 때, 다운타임 없이 다른 하드웨어로 자동으로 이전하는 기능
- Automatic restart
- VM 인스턴스가 유지관리 이벤트, 오류로 자동 종료되면 자동으로 다시 시작하는 기능
- Preemptible Instance (선점형 인스턴스)
-
Networking
- VPC(Virtual Private Cloud) : GCP 가상 네트워크 환경
- Network : GCP 서비스가 통신을 할 수 있는 IP 주소 대역
- Subnet : Network IP 주소 대역대를 분할한 것
- Firewall : 네트워크 트래픽을 제어하는 가상 방화벽
- Network Interface Card : Compute Engine Instance에 연결된 네트워크 카드
- Private IP : VPC 내부 통신을 위한 IP
- Public IP : 인터넷 통신을 위한 IP
- Ephemeral(임시) : 임시로 부여되는 Public IP로 GCE 인스턴스를 중지하거나 재시작하면 주소가 변경됨
- Static(고정) : 고정된 Public IP로 GCE 인스턴스 중지 및 재시작시에도 동일한 주소 사용 가능
-
Google Compute Engine 백업 및 복원
- Snapshot
- Compute Engine 인스턴스의 영구 디스크(Persistent Disk)를 백업하는 것
- 백업된 스냅샷을 이용해 데이터 또는 VM을 복원하는 데 사용
- Snapshot Schedule 기능을 이용해 지정된 날짜와 시간마다 예약된 백업을 할 수 있음
- Snapshot
-
확장성 (Scalability)
- 수직적 확장
- 자원을 추가하는 방식
- 인스턴스가 뚱뚱해지는 것
- 머신 유형을 변경하는 것
- 수평적 확장
- 노드를 추가하는 방식
- VM 개수를 늘리는 것
- 탄력성(Elasticity)이라고도 함
- 애플리케이션의 확장 방법으로 주로 사용됨
- 수직적 확장
-
Instance Templates
- 가상머신(VM) 인스턴스와 관리형 인스턴스 그룹(MIG)을 만드는 데 사용 가능한 템플릿
- 머신 유형, 이미지 등의 속성이 지정된 템플릿을 사용하여 빠르게 인스턴스를 생성
-
Instance Group
- 가상머신 (VM) 인스턴스 모음
- 일부의 인스턴스가 문제가 생겨도 다른 인스턴스에서 서비스를 지속하거나 새로운 인스턴스를 자동으로 새로 생성해주는 이점이 있음
- Instance Group 유형
- Managed Instance Group (관리형 인스턴스 그룹)
- 동일한 여러 대의 VM에서 단일 애플리케이션 운영 가능
- 자동 확장 (Autoscaling), 자동 복구 (Autohealing), 리전 배포, 자동 업데이트 등의 자동화된 기능 지원
- Unmanaged Instance Group (비관리형 인스턴스 그룹)
- 개별 설정된 VM의 모음
- Managed Instance Group (관리형 인스턴스 그룹)
-
Managed Instance Group 구성
- Instance Template
- 인스턴스 생성을 위한 템플릿
- Autoscaling (자동 확장)
- 인스턴스를 자동으로 확장하고 축소
- Minimum number of instance
- Maximum number of instance
- Autoscaling metrics (측정 항목)
- CPU 사용률
- Http 로드 밸런서 (부하 분산) 요청 수 또는 사용률
- Stackdriver Monitoring 측정 항목
- Cooldown period (대기 기간)
- Autoscaling metric을 다시 측정하기 시작할 때까지의 시간 설정
- ex ) Metric을 CPU 50%로 지정했다면 인스턴스가 처음 부팅할 때, CPU 사용률이 많으니 일정시간 기다린 후, CPU 사용률이 안정화 되었을 때 Metric을 측정하여 불필요한 인스턴스 생성 방지
- Scale In Controls (축소 제어)
- 갑작스럽게 인스턴스 숫자가 축소되는 것을 방지
- 부하가 감소한 후 갑자기 증가하는 경우에 인스턴스 축소 속도를 조절하여 사용
- ex ) 10분동안 최대 20% 이상 또는 5대의 인스턴스 이상 축소하지 않음
- 인스턴스를 자동으로 확장하고 축소
- Autohealing (자동 복구)
- Health Checks (상태 확인)
- 인스턴스 응답 상태 확인
- 인스턴스 상태가 비정상으로 판단 될 경우 인스턴스를 새로 생성
- Initial delay (초기 지연)
- HealthCheck를 시작하기 전에 인스턴스가 부팅되고, 애플리케이션이 완전히 시작할 때까지의 시간 설정
- ex ) 300초로 설정을 했다면 300초 이후에 인스턴스에 대한 HealthCheck를 함
- 부팅 중에 인스턴스를 비정상으로 인식하여 불필요한 인스턴스가 생성되는 것을 방지
- Health Checks (상태 확인)
- Instance Template
-
Load Balancer
- 사용자의 트래픽을 분산해주는 서비스
- 부하 분산을 통해 애플리케이션의 성능 문제 발생 위험을 줄여줌
-
Load Balancer 구성
- FrontEnd
- 사용자의 요청이 들어오는 프론트엔드
- IP address
- Protocol, port
- Host and path rules
- 트래픽을 백엔드로 전달하는 규칙
- Host 기반
- naver.com, google.com
- Path 기반
- abc.net/video
- abc.net/picture
- Backend End
- 로드밸런서의 트래픽을 받는 엔드포인트
- Instance Group
- Cloud Storage Bucket
- Google Kubernetes
- App Engine
- FrontEnd