
Compute Engine은 시스템 이벤트가 발생하면 언제든 선점형 인스턴스를 종료할 수 있다.
Compute Engine은 언제나 선점형 인스턴스를 24시간 동안 실행한 후 종료된다.
선점형 인스턴스는 한정된 Compute Engine은 리소스이므로 사용하지 못할 수도 있다.
선점형 인스턴스는 유지관리 이벤트 발생 시 Live Migration을 지원하지 않는다.
위와 같은 제약사항으로 Google Compute Engine SLA에서 제외
VM 인스턴스 및 인스턴스 그룹을 만드는데 사용할 수 있는 리소스
머신 유형, 부팅 디스크 이미지 또는 컨테이너 이미지, 영역, 라벨, 그 외의 속성 등을 이용하여 템플릿을 만들고, 이를 통해서 관리형 인스턴스 그룹이나 개별 VM 인스턴스를 만들 수 있다.
인스턴스 템플릿의 가장 큰 목적은 동일한 구성의 인스턴스를 여러 개 만들기 위해서이다.
템플릿은 복사할 기본 틀로, 동일한 구조를 여러 번 재사용하는 방식이다.
이를 붕어빵 틀에 비유할 수 있다. 템플릿에는 VM 인스턴스를 만들 때 필요한 하드웨어, 네트워크, 서비스 계정 설정 등이 저장된다.
이렇게 저장된 템플릿을 사용하면 VM 인스턴스를 쉽게 생성할 수 있으며, 특히 오토 스케일링 시 유용하다.
스냅샷은 영구 디스크의 백업입니다. 일반적으로 데이터를 복구 또는 전송하거나 프로젝트의 다른 리소스에서 데이터에 액세스할 수 있게 하는 데 사용됩니다.
스냅샷은 VM 인스턴스의 특정 상태를 백업하는 과정으로, 마치 순간을 촬영하는 것과 같다.
스냅샷을 통해 VM 인스턴스의 현재 상태를 저장하고, 문제 발생 시 특정 시점으로 복구할 수 있다.
이는 현재 동작 중인 VM 인스턴스의 상태를 그대로 백업하는 방식이다.
중지된 VM에서만 이미지를 생성할 수 있으며, 이는 VM 실행에 필요한 애플리케이션과 운영체제가 포함된 디스크 복제본이다.
동작 중인 서버가 아닌 중지된 서버에서만 만들 수 있으며, 스냅샷으로도 이를 생성할 수 있다.


스냅샷과 이미지의 차이는 다음과 같다.
스냅샷은 동적으로 변하는 상태를 순간순간 백업하는 것이고,
이미지는 디스크 설정 등을 저장해 두고 새로운 인스턴스를 만들 때 사용하는 것이다.
Auto Scaling 적용시 사용
먼저 원하는 이미지 생성
실행 중인 VM 인스턴스를 사용할 때는 먼저 실행 중지 후 사용
프로젝트의 각 인스턴스를 개별적으로 제어할 필요가 없도록 VM 인스턴스 그룹을 만들고 관리할 수 있다.
관리형 인스턴스 그룹과 비관리형 인스턴스 그룹 유형을 사용할 수 있다.
인스턴스 템플릿을 사용하여 동일한 인스턴스 그룹을 만들 수 있다.
단일 항목으로 인스턴스 그룹을 제어해야 관리형 인스턴스 그룹에 속한 인스턴스를 변경할 경우 전체 인스턴스 그룹을 변경해야 한다.
관리형 인스턴스 그룹은 별다른 설정 없이도 자동으로 Auto Scaling 지원
애플리케이션 기반의 상태 확인을 이용하여 자동 복구 정책을 설정할 수 있어서 애플리케이션이 관리형 인스턴스 그룹에 제대로 응답을 하는지 주기적으로 확인하고, 만약 특정 인스턴스에서 문제가 발생하여 정상적으로 응답하지 않으면 인스턴스가 자동으로 다시 생성된다.
관리형 인스턴스 그룹을 사용하면 부하 분산 서비스인 Load Balancer를 붙여서 그룹의 모든 인스턴스에 트래픽을 분산할 수 있다.
새로운 버전의 S/W를 관리형 인스턴스 그룹의 인스턴스에 쉽게 배포할 수 있다.
관리형 인스턴스 그룹의 인스턴스들은 디폴트 네트워크에 배치가 되며 리전 범위에서 임의의 IP 주소가 할당된다.
더 작은 IP 범위를 사용하고자 한다면, 커스텀 모드 VPC 네트워크와 서브넷을 만든 다음 인스턴스 템플릿에 지정하여 그룹의 IP 범위를 제한 할 수 있다.
임의로 다른 구성을 가진 인스턴스를 추가하거나 제거할 수 있다.
Auto Scaling, 자동 복구, Rolling Update 지원, 인스턴스 템플릿 사용은 제공하지 않는다.
비관리형 인스턴스 그룹은 가용성이 높고 확장 가능한 작업 부하를 배포하는 데는 적합하지 않다.
GCP 리소스는 전 세계 여러 위치에서 호스팅 된다.
위치는 전역(Global)과 지역(Region), 그 지역에 있는 여러 영역(Zone)으로 구성
모든 Compute Engine 리소스는 전역, 지역, 영역 리소스
이미지는 전역 리소스
영구 디스크는 지역 또는 영역 리소스
리소스 범위에 따라 다른 리소스에서 해당 리소스에 액세스할 수 있는 범위가 결정된다.
전역 리소스는 모든 지역 또는 영역의 리소스에서 액세스할 수 있어서 서로 다른 영역의 VM 인스턴스가 동일한 전역 이미지를 사용할 수 있다.
지역 리소스는 동일한 지역 내의 리소스에서만 액세스할 수 있다.
· 지역 고정 외부 IP 주소는 동일한 지역 내의 리소스에서만 액세스 할 수 있는 식이다.
· 시스템 설계시 사용하고자 하는 리소스가 어떤 범위의 리소스인지 고려한다면, 좀 더 나은 시스템 설계를 하는 데 도움이 된다.
동일한 프로젝트 내의 모든 영역에 있는 모든 리소스가 액세스할 수 있다.
전역 리소스를 만들 때는 범위 사용을 지정하지 않아도 된다.
전역 정적 외부 IP 주소는 전역 리소스이며 HTTP(S), SSL Proxy, TCP Proxy와 같은 전역 부하 분산 장치에 사용할 수 있다.
모든 인스턴스 또는 디스크 리소스에서 사용할 수 있다.
영구 디스크 스냅샷은 스냅샷과 동일한 프로젝트 내의 모든 디스크에서 사용할 수 있다.
전역 리소스이지만, 인스턴스 템플릿에서 영역 리소스를 지정할 수 있으며, 이 경우 영역 리소스가 있는 영역으로 템플릿 사용이 제한됩니다.
VPC 네트워크는 전역 리소스이지만, 개별 서브넷은 지역 리소스이다.
단일 VPC 네트워크에 적용되지만, 패킷이 다른 네트워크에서 방화벽에 도달할 수 있기 때문에 전역 리소스로 간주
경로는 이용하면 라우터가 로컬 영역 네트워크 내에서 트래픽을 전달하는 방식과 유사하게 특정 IP 범위로 향하는 트래픽 경로를 지정할 수 있다.
경로는 GCP 프로젝트 내의 VPC 네트워크에 적용되며 전역 리소스로 간주
전역 리소스에서 작업을 이행하는 경우 전역 작업으로 간주
동일한 지역 내의 모든 리소스가 액세스할 수 있다.
지역 고정 외부 IP 주소는 지역 리소스이며 주소와 동일한 지역에 있는 인스턴스에서만 사용할 수 있다.
지역적으로 네트워크를 서브넷으로 구분하고 인스턴스의 내부 IP 주소가 할당되는 서브넷으로 제어
여러 영역에 걸쳐 있는 동종 인스턴스 모음
동일한 지역 내의 두 영역 간에 데이터를 영구 저장하고 복제할 수 있다.
지역 내에 있는 리소스에서 작업을 이행하는 경우 해당 작업이 지역별 작업으로 간주
영역에서 호스팅 되는 리소스
해당 영역에서 고유하며 동일한 영역의 다른 리소스에서만 사용할 수 있다.
가상 머신 인스턴스는 영역 내에 상주해야 하며, 같은 영역 내의 리소스 또는 전역 리소스에 액세스할 수 있다.
같은 영역 내의 다른 인스턴스에서 액세스한다.
디스크와 동일한 영역에 있는 인스턴스에만 디스크를 연결할 수 있다.
Visual Studio Code의 Remote-SSH 확장 기능을 설치하면 확장 터미널이 생성된다.
원격 탐색기의 설정에서 서버 주소와 SSH 포트 번호(기본 22번)를 입력해야 한다
SSH는 "Secure Shell"의 약자다. VM 인스턴스를 생성하면 기본적으로 모든 인바운드 트래픽이 차단되지만,
HTTP(80번), HTTPS(443번)와 함께 방화벽 규칙에서 22번 포트를 열어 SSH 접속을 허용한다.