본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP] VM 인스턴스 만들기

by BTC_JGT 2022. 4. 22.

GCP 에서 사용할수있는 가상 머신 사용하는 만큼 비용을 지불하고 쓸 수 있는 컴퓨터입니다.

VM 인스턴스 만들기

설정 - 1

  1. 이름 : 인스턴스가 생성될때 사용될 이름 (영구적)
  2. 라벨 : 인스턴스 관리하기 위해 사용
  3. 리전 : 데이터센터가 존재하는 위치 (국가)
  4. 영역 : 데이터센터의 (세부) # 서울 어딘가에 존재한다고합니다.
  5. 머신구성 : 만들 인스턴스의 하드웨어(가상)의 성능을 설정합니다. 좋은 구성을 할수록 비용이 많이 나오니 저희에게 맞는 적당한 머신을 선택하시면됩니다.
  6. 부팅 디스크 : 인스턴스에 설치된 이미지(OS)를 선택합니다.
  7. 가격 : 리전과 머신유형에 따라 매 월 청구되는 가격이 상이합니다.

설정 - 2

  1. 서비스 계정 : 인스턴스에서 실행되는 프로그램은 서비스 계정을 사용하여 gcp API를 호출합니다.
  2. 액세스 범위 : 인스턴스에서 접근 가능한 범위를 설정합니다. GCP에 존재하는 API에 대한 범위입니다.
  3. 방화벽 : 이전 게시글 참고 해주시길 바랍니다.
  4. 관리 : 설명이 잘 되어있어 설명만 읽으시면 충분히 이해가 가실겁니다.

이 셸 스크립트는 vm-web-? 인스턴스에만 작성하시면됩니다.

#! /bin/bash
yum install -y httpd

systemctl start httpd
systemctl enable httpd

cat > /var/www/html/index.html << EOF
<h1>안녕하세요 인스턴스 VM-WEB-1이 생성되었습니다.</h1>
<img width="400px" src="https://www.gstatic.com/devrel-devsite/prod/v509a5f4800978e3ce5a1a5f2c1483bd166c25f20fdb759fe97f6131b7e9f1f00/cloud/images/cloud-logo.svg"/>
EOF

systemctl restart httpd

설정 - 네트워킹

  1. 네트워크 : 인스턴스가 생성될 네트워크 영역을 골릅니다. VPC를 생성하지 않았다면 default 다른 네트워크만 있을겁니다.
  2. 하위 네트워크
    서브넷입니다.
    저희는 pub-a,pri-a,pri-b,pri-c를 만들었습니다. 이 인스턴스는 로드밸런서 바로 뒤에있는 인스턴스가 될것이므로 pri-a에 속합니다.
  3. 기본내부 : 10.0.1.0부터 생성되는 인스턴스에 따라 차례차례 IP가 생성됩니다.
  4. 외부 IP
    임시일 경우에는 구글에서 내부 규칙에 따라 외부에서 접속 가능한 IP를 할당해줍니다. ( 인스턴스가 중지 되었다가 다시 시적될때 IP가 다른것으로 변경됩니다.)
    IP주소 만들기를 선택하시면 고정 IP가 할당됩니다.

생성 후


제대로 생성을 하였다면 위와같이 될것입니다.
저는 10.0.1.0~1까지의 IP를 다른 인스턴스가 사용하고있어서 10.0.1.2로 나왔습니다.

외부 IP를 브라우저의 url창에 입력하시면 제대로 생성됬음을 알수있습니다.

인스턴스 접속

생성한 인스턴스에 접속을 하기위해서는 여러가지의 방법이 있습니다.
우선 2가지의 방법을 소개하겠습니다.

  1. 브라우저를 이용하여 접속
    생성 후 첫번째 사진에 [연결] 부분 SSH를 누르시면 현재 계정으로 브라우저를 통하여 인스턴스에 접근이 가능합니다.
  2. putty 및 터미널 에뮬레이터 소프트웨어를 이용하여 접속
    에뮬레이터로 접속하기위해서는 메타데이터 항목에 SSH 키를 등록하고 등록한 키에 대응되는 키를 이용하여야 접속이 가능합니다.

SSH 키 만들기

puttygen 이라는 프로그램을 이용하여 ssh 키를 만들어 보겠습니다.
puttygen 설치 링크- 공식 사이트
위 프로그램을 설치하시면 이와 같은 창이 나올겁니다.

  1. 프로그램 실행
  2. 키 생성

generate 버튼을 클릭하시고 마우스를 움직이면 키가 생성 된것을 확인할 수 있습니다.

! Key comment에 접속할 이름을 작성합니다.

Public key for pasting into OpenSSH authorized_keys file: 에 해당하는 텍스트들을 전부 복사하시고

GCP Compute Engine - 메타데이터 - SSH 키 항목 추가 - [공개 SSH 키 입력] 란에 붙여넣습니다.

항목 추가가 완료되면 사용자 이름란에 key comment에 입력한 텍스트가 보일겁니다. 이러면 SSH 키 추가는 완료되었습니다.

  1. 키 추출 - ppk Private Key

이전 단계에 등록한 SSH 키는 생성한 비대칭 암호화 방식의 키중 PUBLIC 키에 해당합니다. 인스턴스에 키가 저장이되고 저장된 키를 이용하여 접속시 PRIVATE 키를 이용하여 접속을 시도합니다.

PUBLIC 키가 저장된 위치는 [접속아이디 HOME]/.ssh/authorized_keys에 위치하며 내용은 이러한 형식을 띄고 있습니다.

PRIVATE 키를 추출하기 위해서는 위 사진에 보이는 빨간색 상자안의 버튼을 눌러 [FILE NAME].ppk 파일을 저장하여 putty로 접속시 사용할 수있습니다.

다른 프로그램을 이용하여 접속을 하기위해서는

  1. 키 추출 - other Private Key

Export OpenSSH key 를 이용하여 저장한 [FILE NAME] 파일을 저장하여 접속을 할 수 있습니다.

인스턴스 접속

putty 다운로드 - 공식사이트

putty를 설치하고 나면 사진 처럼 화면이 보일겁니다

  1. 접속 아이디, IP 입력

Host Nmae(or IP address)에 인스턴스의 외부 IP와 접속 아이디를 입력하셔야합니다.
[Puttygen_Comment_Text@Instance_External_IP]

접속 포트는 22번로 설정이 되어있습니다. 다른 포트를 사용하여 접속하실수있긴 하지만 별도의 설정이 필요합니다.

  1. private 키

putty 프로그램의 왼쪽 트리메뉴에서 Connection - SSH - Auth 항목을 누르시면 위 사진과 같은 화면이 나옵니다.
Private key file for authentication에 아까 puttygen에서 만든 [FILE_NAME].ppk 파일을 선택합니다.

  1. open 클릭
    경고 창이 뜰 경우 예를 눌러주시면됩니다.
  2. 접속 완료

만들어보기

위 와 같은 방식으로 만들어봅시다.

  • vm-web-1
  • vm-web-2
  • vm-back-1
  • vm-back-2
  • vm-mysql-master
  • vm-mysql-slave

댓글