티스토리 뷰
이번에는 GCP( Google Cloud Platporm )의 IaaS를 담당하는 Compute Engine의 인스턴스, 인스턴스 그룹, 인스턴스 템플릿, 이미지의 상관관계에 대해 알아보도록 하겠습니다. 이 과정이 끝나고 나면 GCLB( Google Cloud Load Balancer )까지 자연스럽게 연결이 될 겁니다. 하지만 LB에 대한 건 다음 글에서 살펴보도록 하고 이번 글은 인스턴스에 초점을 맞춰보겠습니다.
# 미리 보기
아래 이미지를 떠올리면서 글을 읽으시면 도움이 됩니다. 결국 이미지로 인스턴스 템플릿을 만들고, 템플릿으로 그룹을 생성해서 Auto Scaling시에 사용한다는 건데 여기 인스턴스를 Source로 다시 이미지를 생성할 수 있다는 것이 골자입니다.
그럼 시작합니다.
# 인스턴스
클라우드 인프라의 기본이 되는 가상머신입니다. CPU와 메모리, 디스크 등 필요한 리소스를 설정해서 사용할 수 있습니다. 사용한 만큼 과금되는 방식으로 구글 클라우드는 이전부터 초당 과금을 유지하고 있습니다. 당연한 이야기지만 선택한 자원의 스펙이 높을수록 과금되는 비용도 늘어납니다. K8S와 같은 컨테이너 오케스트레이션 시스템 덕분에 컨테이너의 붐이 더욱 거세게 불어서 클라우드상에 가상머신 사용 비중은 많이 줄었지만 여전히 전통적인 방식으로 편한 게 장점이라면 장점입니다. 특히 요즘은 AI 열풍으로 인스턴스에 GPU를 설정해서 머신러닝 모델 훈련용으로도 많이 사용합니다.
아래와 같이 인스턴스 생성시에 선택한 스펙에 대한 대략적인 월 요금을 살펴볼 수 있습니다. 우측 상단에서 월 예상 비용을 확인해보세요.
화면에 보이는 것처럼 가상머신의 다양한 스펙을 설정할 수 있는 것이 인스턴스의 가장 큰 특징이라고 할 수 있습니다.
# 이미지
인스턴스를 생성하기 위한 이미지로 이해하면 되는데 윈도우와 우분투 등 OS 자체라고 생각해도 됩니다. 더해서 사용자의 편의에 맞게 다양한 툴킷이나 패키지를 사전에 설치해둘 수 있는데 예를 들어 머신러닝의 다양한 환경, TensorFlow, PyTorch, CUDA 등 번거로운 설정을 미리 세팅해서 환경을 만들어두고 배포하는 경우를 들 수 있습니다. 즉, 동일한 인스턴스를 만들 수 있는 시작점이 됩니다. 이미지는 아래 화면에 보이는 것처럼 Disk, Snapshot, Image, Cloud Storage file, Virtual disk 이렇게 다섯 가지 방식으로 생성할 수 있습니다.
여기서 두 가지만 이야기하자면, Disk는 현재 운영하는 인스턴스로부터 이미지를 생성하는 것이고 Virtual disk는 VMWare 환경에서 돌리던 이미지를 클라우드로 가져오는 개념이 되겠습니다. GCP로 마이그레이션 할 수 있는 전략으로 이야기 할 수 있겠습니다. 이제 이렇게 생성한 이미지로 인스턴스 템플릿을 찍어 낼 수 있게됩니다.
# 인스턴스 템플릿
이미지가 OS 자체라고 했다면 인스턴스 템플릿은 이제 클라우드에 한발 더 가까워집니다. 인스턴스 템플릿은 인스턴스 그룹을 생성하는 데 사용되는데 위에서 살펴본 인스턴스 생성에 들어가는 대부분의 설정들이 동일하게 제공됩니다. 아래 보이는 Boot disk의 변경 버튼을 선택하고 커스텀 이미지 항목을 선택하면 우리가 만든 이미지로 인스턴스 템플릿을 생성할 수 있게 됩니다.
이렇게 Boot disk에서 커스텀 이미지를 선택하는 건 인스턴스 생성 시에도 동일하게 가능한 부분입니다. 여기서는 큰 범주의 개념만 잡으면 됩니다. 커스텀 이미지를 생성했고, 그 이미지에 CPU, 메모리, 디스크 용량, 접근 범위 등을 선택하고 만들어내는 게 인스턴스 템플릿입니다. 이제 이 템플릿을 통해 인스턴스 그룹을 생성할 수 있습니다.
# 인스턴스 그룹
인스턴스 그룹은 GCLB( Google Cloud Load Balancer )와 별개로 생각하기 어렵습니다. 이름에서 알 수 있듯이 인스턴스를 그룹화하는 개념이고, 설정에 직관적으로 보이듯이 Scaling 개념이 들어갑니다. 즉, 특정 조건에 따라 자동으로 인스턴스의 개수가 확장/감축됩니다. 아래는 인스턴스 그룹을 생성하는 화면이고 Instance template을 선택해야 하는 것을 확인할 수 있습니다.
좌측에 보이는 managed와 unmanaged는 인스턴스 그룹을 어떤 식으로 운영할지에 대한 선택인데 자세한 내용은 아래 링크를 통해 살펴보도록 합시다.
https://jybaek.tistory.com/837
# 마무리
여기서 살펴본 것은 일부에 지나지 않기 때문에 상세한 내용은 공식문서를 살펴볼 것을 권하고, GCLB를 설명하지 않고 여기 있는 인스턴스 이야기만 듣고 있으면 왜 굳이 이렇게 세분화시켜서 나눠 놓았는지 의문이 들 수 있습니다. 하지만 조금 더 깊숙하게 들어가다 보면 결국 사용자에게 더 높은 자유도를 주려는 의도, 그리고 기능들이 GCP로의 마이그레이션까지 염두에 두고 있는 것은 아닌지 생각하게 됩니다.
'개발 > Cloud (GCP)' 카테고리의 다른 글
gcloud sdk에 새로운 프로젝트 연결하기 (0) | 2019.10.24 |
---|---|
Google Cloud Load Balancer 핵심만 빠르게 훑어보기 (0) | 2019.10.17 |
GCP 인스턴스 그룹 (0) | 2019.09.27 |
GCP에 파티원 초대하고 프로젝트 같이 진행하기 (2) | 2019.08.29 |
Cloud SDK 설치후 인스턴스에 접속하기까지 과정 (0) | 2019.08.28 |
- Total
- Today
- Yesterday