Sangmun

Google cloud Compute Engine에서 인스턴스 만들기 본문

개발

Google cloud Compute Engine에서 인스턴스 만들기

상상2 2023. 2. 11. 21:58

구글 클라우드는 무료체험하기 서비스가 있어서 처음 결제수단을 등록을 하면 300$의 크레딧을 공짜로 준다. GPU가 달린 서버를 생성하는것 까지는 할 수 없지만 300$내에서 다양한 인스턴스들을 만들어서 규모가 크지 않은 프로젝트는 실습을 할 수가 있다.

가장기본이 되는 compute engine을 하나 만드는 예제를 정리해보고자 한다.

 

GCP에서 Compute Engine 생성

먼저 GCP 콘솔로 이동해서 Compute Engine으로 이동하면 VM 인스턴스 메뉴 윗단에 인스턴스 만들기가 있다.

 

인스턴스 만들기를 누르면 다음과 같은 옵션들을 선택할 수가 있다. 인스턴스의 이름 리전 그리고 서버의 기본적인 스펙을 정할수가 있다. 예상되는 금액도 계산이 된다. 내가 띄울 예정인 서버는 그닥 기능이 없는 서버라 기본적인 스펙으로 정하였다. 

또한 부팅 디스크 옵션도 정할 수 있다. 나는 Ubuntu 이미지에 기본적이 30G의 용량만 주었다.

그 외 부가적인 옵션들에 대한 사항을 정하고 만들기를 누른 후 잠깐 기다리면 아래와 같이 인스턴스가 생성된 것을 확인할 수 있다.

instance-1가 방금 만든 인스턴스이다.

인스턴스의 IP를 고정IP로 변경하기

생성된 Compute engine의 IP는 인스턴스가 다시 시작되면 IP가 변경된다. 서비스를 고정적으로 운영을 하려면 해당 인스턴스에 고정 IP를 부여해주어야한다.

 

Compute Engine 탭에서 나와서 VPC 네트워크 탭의 IP 주소 탭으로 이동하면 다음과 같이 현재 내가 운영중인 인스턴스들의 IP 현황이 나온다.

 

IP주소의 상위 메뉴에서 외부 IP 주소탭의 맨오른쪽을 보면 예약이라는 글자를 클릭할 수 있는데 클릭하면 다음과 같은 메뉴가 뜨면서 IP를 고정적으로 운영할수 있다.

해당 내용을 채워서 예약을 클릭하면 된다.

다시 Compute engine의 인스턴스 메뉴로 들어가면 해당 인스턴스에 고정 IP가 할당되었다고 표시되게 된다.

로컬 컴퓨터에서 ssh로 인스턴스에 접근하기

Compute engine에서 각 인스턴스의 맨 오늘쪽에 있는 SSH 메뉴를 클릭해보면 인스턴스에 접근할 수 있는 다양한 메뉴들이 있다. 간단하게 브라우저를 이용해서 접속도 가능하다. 하지만 로컬에서 접속하는 방법을 알아볼 예정이다.

 

먼저 로컬에서 SSH 키를 생성을 해준다.

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILE_NAME] -C [USERNAME]

위의 명령어를 입력하면 .ssh 폴더 및에 KEY_FILE_NAME의 private key와 KEY_FILE_NAME.pub의 public key가 생성되게 된다.

public key를 GCP의 메타데이터에 등록을 해주면 된다.

cat 명령어로 public key의 내용을 확인하면 아래와 같이 출력이 되고 해당 내용을 복사해서 gcp의 메타데이터로 가져가면 된다. 나는 생성할때 USERNAME에 sml162655@gmail.com이란 주소를 사용해서 아래와 같이 출력이 되었다.

다음으로는 Compute Engine 탭의 설정 > 메타데이터로 이동을 한다.

 

메타데이터의 ssh 키에서 수정을 누르면 아래와 같이 public key를 입력이 가능하다. public key를 보고 자동으로 생성이 됨으로 만약 그렇지 않다면 복붙을 잘못했을 수도 있다.

이후 로컬에서 아래와 같은 명령어로 ssh 명령어를 실행해주면 잘 접속이 되는것을 확인할 수 있다.

ssh -i [file_path] [user_id]@[외부ip]

 

참고자료

https://jybaek.gitbook.io/with-gcp/appendix/gce_to_ssh

 

인스턴스에 SSH로 접속하기 - GCP 탐구생활

본문에서는 Cloud Shell 을 이용해서 인스턴스에 접속하는 방법을 살펴봤는데, 이번에는 사용자의 머신에서 직접 SSH 를 접속하는 방법에 대해서 설명한다. 환경은 리눅스(우분투)지만 다른 OS라도

jybaek.gitbook.io

 

'개발' 카테고리의 다른 글

python Producer-Consumer(생산자 소비자 문제) Threading  (0) 2023.03.07
Python Thread의 개념과 사용예시  (0) 2023.03.07
Docker compose  (0) 2023.02.04
Docker 기본 명령어 정리  (0) 2023.02.04
저작권에 대한 내용 정리  (0) 2023.01.23
Comments