본문으로 바로가기

Google Compute Engine (1) : GCE 생성 및 접근

category GCP/☁️ GCP 2021. 9. 12. 10:56

Google Compute Engine을 줄여서 GCE이라고 줄여부르는 듯 하다. 가상 머신이라 VM이라 부르기도 한다. 

개념 자체는 AWS의 EC2와 동일하다. 생성한 GCE를 instance라고 부르는 것마저 같다.

그렇다면 EC2...가 아니라 GCE를 생성하고 다뤄보자.

 

필자는 기본으로 AWS를 사용하고 있기 때문에 AWS의 서비스에 기대어서 GCP의 서비스를 이해하게 된다.

https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison

 

AWS와 Azure 서비스를 Google Cloud와 비교  |  Google Cloud 무료 프로그램

의견 보내기 AWS와 Azure 서비스를 Google Cloud와 비교 최종 업데이트: 2021년 6월 2일 이 표에는 일반 안정화 버전의 Google Cloud 서비스가 나와 있으며 Amazon Web Services(AWS) 및 Microsoft Azure의 유사한 제품과

cloud.google.com

 

1. Project 생성

하나의 리소스는 Project에 속해야만 한다. 생성 자체가 너무 간단하니 설명은 생략.

 

2. Compute Engine API 사용 및 인스턴스 설정

 

처음 접속하면 Compute Engine API를 사용하라고 한다. 사용을 체크해주면, 다음부터는 뜨지 않는다.

허용한 API는 API 및 서비스에 접속하여 Compute Engine API가 활성화 된 것을 확인할 수 있다.

 

이제 접속하여서 CE를 만들어보자. AWS를 처음 켰을 때의 그 막막함이 느껴진다....

우선 [인스턴스 만들기]로 시작하자.

 

AWS에서 EC2를 만들 때도 템플릿을 가지고 만들었듯, CE에서도 템플릿을 기반으로 시작하는게 편하다.

원하는 제품이 있다면 Marketplace에서 골라서 시작해도 좋을 것이다.

여기서는 우선 [새 VM 인스턴스]를 누르자.

 

이제 실제로 CE을 구성해봅시다. AWS EC2와 상당히 흡사하다는 느낌을 받을 수 있습니다.

 

1) 이름, 라벨, 리전, 영역(Zone)

 

2) 머신 구성

적절한 vCPU와 메모리를 결정할 수 있으며 심지어 CPU 플랫폼도 설정할 수 있습니다. 예를 들어 Intel skylake 이상! 뭐 이런 식으로요. 

GPU도 설정할 수 있습니다. 다른 머신이나 추가적인 절차를 밟아야하지만요.

최하단의 '디스플레이 기기'는 특정 어플리케이션은 GPU를 요구하는 경우가 있어 가상으로 GPU를 달아주는 역할을 한다.

추가적으로, 보안이 강화된 '기밀 VM 서비스'가 있다. 정확히는 '서비스가 Google에 액세스 권한이 없는 키로 암호화된 이 VM의 메모리를 유지하여 사용 중 데이터에 추가적인 보호를 제공합니다.' 라는데, 사용해 본 경험이 없다.

 

'컨테이너'는 Docker 등 컨테이너 기반으로 배포하기 위한 체크사항이다.

 

3) 부팅 디스크

 

OS가 설치될 디스크와 OS를 선택할 수 있다.

다양한 OS와, 맞춤 이미지, 스냅샷 등 다양한 옵션들이 존재한다. 

OS는 당연히 내가 자주 사용하는 ubuntu 딱 맞춰주면 되는데 부팅 디스크 유형이 새로 보는 부분이다.

'익스트림 영구 디스크' => 가장 빠름, 가장 비쌈, '표준 영구 디스크' => 가장 느림, 가장 쌈

잘 모르겠다면 평타치는 균형 있는 영구 디스크로 설정하자.

 

4) ID 및 API 액세스

https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances 

 

VM에 부여할 API 액세스의 유형과 수준을 선택할 수 있다.

이게 무슨 말이냐? VM에 우리가 올린 코드는 여기서 부여한 서비스 계정을 이용하여 Google Cloud API를 호출하여 이용한다는 것이다.

더 쉽게 말하면, VM이 GCP의 어느 리소스에 액세스할 수 있는지에 대한 권한을 컨트롤한다고 보면 된다.

 

기본 액세스를 허용하면

저장소 및 서비스 관리에 대한 읽기 전용 액세스 권한

Stackdriver(GCP의 모니터링 서비스) 로그 기록 및 모니터링에 대한 쓰기 액세스 권한

서비스 제어에 대한 읽기 및 쓰기 액세스 권한

을 주는데, 처음 보면 이게 각각 무슨 서비스를 말하는 건지 모를 때가 있다.

 

이럴 때는 커스텀을 클릭해보면 감이 온다. 각 권한에 대해 어느 정도로 액세스할 수 있느냐. 딱 그 문제다.

일단 기본으로 설정해놓고, 다음에 필요할 때 수정해보는 게 좋을 것 같다.

 

매우 길다. 아래로도 잔뜩 있따....

 

5) 방화벽 규칙

https://cloud.google.com/vpc/docs/vpc#firewall_rules

 

기본적으로 모든 트래픽은 막혀있따. 80, 443 포트 열어주는 옵션이 있으니 편의대로 설정하자.

 

 

6) 기타 설정

기타라고 했지만 중요한 설정들이 매우 많다. 

 

6-1. 관리

 

6-1-1. 기본적 설정

삭제 보호(여러분이 생각한 AWS EC2의 바로 그것이다), 예약, 자동화 스크립트 (VM 생성할 때 트리거 됨), 메타 데이터

 

6-1-2. 가용성 정책 => 특수한 경우가 아니면 기본값이 권장사항임.

선점 가능성 : AWS에서 비슷한게 있었는데 (이름 까먹음) 임시로 빌리는 거라고 보면 편하다. 24시간 이내 단기 대여. 언제든지 종료될 수 있음. 30초 전에 알람을 보내주기 때문에 작업의 중간을 저장해두거나 할 필요가 있음. 운영 중에 종료되어도 상관없거나 배치 프로세스 등 단기 작업에 적합함.

 

호스트 유지관리 시 : GCP에서 유지보수시에 잠깐 다운타임이 오는 데 다운타임에도 서비스를 정상적으로 하고 싶다면 다른 VM으로 자동으로 옮겨주는 서비스이다. 안정적인 VM을 사용하려면 체크해야 한다. 애초에 default가 사용하는 거니 그대로 두면 된다.

 

자동으로 다시 시작 : 에러시 재시작. 이것도 다운타운없는 서비스를 위해선 당연히 사용해야 함.

 

 

 

6-2. 보안

 

보안은 우선은 기본값으로 두자.

 

AWS EC2에 접속할 때 SSH를 통해 접속한 것이 기억날 것이다. .pem이라는 확장자를 가진 암호키도 가지고 있었고. GCP도 마찬가지다.

 

일반적으로 GCP에서는 프로젝트 단위로 SSH 키를 생성해놨다. (프로젝트별 SSH 키) 별도로 SSH키를 만들었다면 추가로 입력할 수 있다.

좀더 적극적으로는 프로젝트별 SSH 키 차단을 눌러서 프로젝트 SSH키로 접속하는 것을 차단하고, 별도로 만든 SSH로만 접속할 수 있게 만들 수도 있다.

 

6-3 디스크

 

인스턴스 삭제되면 부팅 디스크도 삭제해두자 (AWS에서 EC2 삭제하면 부착한 EBS도 삭제해야 하는 원리다)

부팅 디스크 외에 다른 디스크를 생성할 수도 있다.

 

 

6-4 네트워크

 

네트워크 태그 : https://cloud.google.com/vpc/docs/add-remove-network-tags

호스트 이름은 EC2 주소랑 같은거니 패스.

 

네트워크 인터페이스는 좀 더 자세히 알아봐야 한다. 연필 버튼을 눌러 자세히 알아보자.

외부로 노출되는 외부 IP든, 내부 IP든 일단은 자동으로 부여받는다고 설정해뒀는데, 서버가 재부팅되면 IP가 재할당된다.

AWS라면 Elasitc IP를 붙여서 고정 IP를 할당했을 것이다. GCP에서는 

 

네트워크 서비스 계층은 프리미엄이 더 많은 기능을 제공하므로 일반적으로 프리미엄을 선택한다고 한다.

 

IP 전달은 내부 ip 주소와 일치하는 패킷만 전송하는 기능을 활성화하는 녀석이다. 바깥에서 들어오는 녀석들 내부 IP와 트래픽이 일치하지 않으면 걸러내는 중간 레벨 느낌으로 작동한다.

 

공개 DNS PTR 레코드는 메일 서버에서 사용되는 것으로, 여기서는 넘어가자.

 

 

6-5. 단독임대

 

온프레미스 물리적 서버와 관계되어 있는 옵션이라던데 사용할 일이 없을 것 같다...

 

3. 인스턴스 생성

 

하단의 [만들기]를 누르면 만들어진다. 허무....

 

 

4. 인스턴스 접근

https://cloud.google.com/compute/docs/instances/connecting-to-instance?authuser=2#console 

 

Linux VM에 연결  |  Compute Engine 문서  |  Google Cloud

의견 보내기 Linux VM에 연결 Linux 이 문서에서는 Google Cloud Console과 gcloud 명령줄 도구를 사용하여 Linux 가상 머신(VM) 인스턴스에 연결하는 방법을 설명합니다. SSH 키 구성 및 스토리지를 포함하여 Co

cloud.google.com

 

연결 부분을 살펴보면 여러 방법으로 생성한 VM에 접근할 수 있다.

 

[브라우저 창에서 열기]를 통해 즉시 VM에 접속할 수 있다.

[커스텀 포트의 브라우저 창에서 열기] 는 ssh 접속시 22번 포트가 아닌 다른 포트를 지정해주었을 경우 그 포트를 통해 VM에 접근한다.

[제공된 ... ]의 경우에는 사용자가 만든 커스텀 ssh 키 파일을 가지고 있을 때 사용한다.

[gcloud ... ] 는 말 그대로, 명령어로 gcp를 제어할 수 있는 gcloud shell 상에서 VM을 조회, 접근하기 위해 사용된다. 

gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

[다른 SSH ... ] 는 AWS에서 흔히 사용했던 방식으로, 로컬 터미널 내에서 VM에 접근하는 방식이다.

 

 

 

삭제 방지 CE를 삭제하기

설정에 들어가서 삭제 보호를 해제한 후 삭제해야 한다. 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체