자격증/Google Certified Cloud Engineer Associat

GCP 기초 정리 (Instance, 웹서버생성, Snabshot, Templates, Image)

Weeding 2022. 7. 13. 03:13
반응형
SMALL

클라우드 배포 유형

 

1. Public Cloud

  • 공용 인터넷을 통해 서비스 제공
  • 누구에게나 서비스 제공
  • 수많은 사용자가 공유를 해서 같이 사용하기에 관리 비용이 낮음
  • GCP, Azure, AWS

 

 

2. Private Cloud

  • 개별 기업이 독점적으로 사용
  • 클라우드 인프라가 온프레미스(온사이트)데이터 센터에 있음.
  • 기업의 데이터 센터에 가상머신을 사용하여 시스템 운영
  • 기업에서 모든것을 운영해야하기 때문에 관리비용이 비쌈

 

 

3. 하이브리드클라우드

  • 퍼블릭 + 프라이빗

 

 


 

IaaS

  • Infastructure as a service
  • 물리적인 부분은 공급자가 관리
  • 사용자는 운영체제, 스토리지, 애플리케이션 관리

  • 공급자가 클라우드 제공 업체에서 네트워크 서버 가상화를 관리를 하고
  • 사용자가 그 위에 있는 OS부터 애플리케이션까지 관리하는 것
  • Google Compute Engine이 대표적인 서비스!

 

PaaS

  • Platform as a service
  • 공급자가 물리적인 부분, OS등 모든 플랫폼 관리
  • 사용자는 데이터와 애플리케이션만 관리

  • 애플리케이션하고 데이터스토리지만 사용자가 관리하고 나머지는 모두 공급자가 관리하는 것!
  • 그러므로, 사용자는 애플리케이션 개발에만 집중 가능!
  • Google App Engine, 데이터베이스 서비스 등 많은 Google Cloud 서비스가 속함.

 

 

SaaS

  • Software as a service
  • 모두 다 공급 업체에서 관리하고 사용자는 사용만 하는 것
  • Google Gmail 등이 대표적인 서비스!

 

 


 

리전(Region)

  • 리소스를 호스팅 하는 특정한 지리적 위치(영역의 집합)
  • 3개 이상의 영역(Zone)으로 구성 됨
  • 여러 리전에 리소스를 구성하면 재해 복구 설계 가능(Disaster Recovery)
  • ex) us-east1 , asia-east1

 

영역(Zone)

  • 하나이상의 데이터 센터 구성
  • 각 영역은 물리적으로 서로 떨어진 곳에 구성 됨
  • 여러 영역에 리소스를 구성하면 높은 수준의 장애 독립성을 얻을 수 있음 (High Availability)
  • ex) us-east1-a , us-east1-b , us-east1-c

 

GCP에서는 대부분의 경우 서비스 리소스를 생성할 때 "리전 또는 영역"을 선택 해야함

 

 


 

GCP 리소스 구조

  • GCP는 항목을 계층적으로 구성하고 관리하는 방식으로 운영됨.
  • 액세스 제어 정책 및 구성 설정을 관리 가능.
  • 각 리소스는 하나의 상위 리소스에만 속할 수 있음.
  • 하나의 폴더에 특정한 권한 및 정책을 부여하게되면 IAM 정책, 권한은 계층구조를 통해 상속 됨!
  • ex) 폴더 수준에 권한을 부여하면 폴더에 속한 프로젝트 및 프로젝트에 속한 리소스에 권한 상속!
  • 무료계정의 경우에는 Projects 단위부터 생성 가능!

GCP 리소스 구조

 

 

Azure 리소스 구조 (프로젝트)

  • 모든 리소스는 하나의 프로젝트에 속해야 함
  • 하나의 리소스는 하나의 프로젝트에만 속할 수 있음.
  • 하나의 프로젝트는 다른 프로젝트의 리소스에 액세스 할 수 없음
    (Shared VPC, VPC Peering을 설정해줘야 액세스가 가능함!)
  • ex) Development, Production 등의 환경을 분리할 때 별도의 프로젝트 생성!

 

 


 

GCP 서비스 연결 도구

  1. Goolge Cloud Console
    - 웹 브라우저를 통한 접속
    - 웹 브라우저만 있으면 디바이스 관계없이 접속 가능!

  2. Command Line Interface
    - 윈도우, Linux에서 Cloud SDK설치하면 모두 사용 가능!
    - Consol에서 Cloud Shell을 실행하여 사용 가능.

  3. Client Libraries 
    - 프로그래밍 코드를 통한 API 접속
    - 애플리케이션 개발시에 사용
    - 다양한 언어 지원

 

 


 

Google Compute Engine

  • 클라우드 가상 서버
  • 개별 가상머신(Virutal Machine)을 인스턴스(Instance)라고 함
  • 구글 데이터센터의 물리적인 서버를 사용자가 공유하여 사용
  • CPU, 메모리, 디스크, 네트워크 등을 할당 하고 OS와 애플리케이션을 설치 하여 운영

 

 

Machin Type

  • 가상 CPU(vCPU)개수, 메모리크기, 네트워크 대역폭 등을 제공하는 가상의 하드웨어 리소스 집합
  • 다양한 머신 유형 중에 목적에 맞는 유형을 선택하여 사용
  • GCP에서 정의된 머신 유형이 요구사항과 맞지 않으면 vCPU 개수와 Memory 용량을 지정할 수 있는 커스텀 머신 유형을 만들어 사용 가능!

 

E2, N1, N2, N2D, M1, M2, C2, A2

 

 

 

Images

  • 일반적인 경우에는
    1. OS 설치
    2. 하드웨어 드라이버 설치
    3. 기본 애플리케이션 설치
    4. Compute Engine 서버 생성
    5. 추가 애플리케이션 설치 및 구성

  • Image를 사용할 경우에는
    위의 1,2,3 을 하나의 파일로 만듬 = Image
    이러한 Image를 가지고 Compute Engine 서버를 바로 생성하고 애플리케이션 설치 구성을 함.

--> 따라서, Image를 사용하면 서버를 빠르게 시작 및 구성할 수 있음.

 

 

Image 유형

  • Public Image
    - GCP에서 기본적으로 생성해 놓은 이미지
  • Custom Image
    - 사용자가 직접 생성한 이미지
  • Marketplace 
    - GCP IT Vendor들이 생성하여 판매하는 이미지 (상용 소프트웨어나 플랫폼을 빠르게 구성)

 

 

Disks

Persistent Disk(영구 디스크)

  • Compute Engine에 연결 되는 가상 디스크

 

persistent Disk 유형

  1. Balanced persistent disk
    - HDD 사용, 비용 저렴
  2. SSD persistent disk
    - SSD 사용
  3. Standard persistent disk
    - SSD 사용, 성능과 비용을 자동 조절

 

 

Local SSD

  1. 서버에 물리적으로 연결되는 물리적인 SSD 디스크
  2. Persistent Disk 보다 처리량이 높고 짧은 지연시간을 가짐
  3. 인스턴스가 중지 또는 삭제되면 디스크 데이터가 삭제됨
  4. 빠른 디스크 성능을 요구하는 임시 저장소 용도에 적합!

 

 

 

 

Networking

  1. VPC(Virtual Private Cloud) : GCP 가상 네트워크 환경

  2. Network : GCP 서비스가 통신을 할 수 있는 IP 주소 대역

  3. Subnet : Netowork IP 주소 대역대를 분할한 것

  4. Firewall : 네트워크 트래픽을 제어하는 가상 방화벽
    - egess : 바깥으로 트래픽이 나가는것을 제어
    - ingress :  안으로 트래픽이 들어오는것을 제어 (HTTP, SSH, RDP만 기본적으로 허용)

  5. Network Interface Card : Compute Engine Instance에 연결된 네트워크 카드
    - Private IP : VPC 내부 통신을 위한 IP
    - Public IP : 인터넷 통신을 위한 IP
    --> Ephemeral(임시) : 임시로 부여되는 Public IP로 GCE 인스턴스를 중지하거나 재시작하면 주소가 변경됨!
    --> Static(고정) : 고정된 Public IP로 GCE 인스턴스 중지 및 재시작시에도 동일한 주소 사용 가능!

 

 

 

 

Availability Policy (가용성 정책)

1. Preemptible Instance (선점형 인스턴스)

  • 일반적인 인스턴스 유형보다 비용이 80% 저렴 (저비용 단기 컴퓨팅 인스턴스)
  • 시스템 종료 30초 전에 알림을 받기에 종료전에 작업을 저장하여 나중에 다시 수행 가능하지만...
  • 24시간 동안만 시스템이 지속가능 하며 경우에 따라 더 빨리 종료 될 수 있음.
  • 시스템이 운영 중에 종료되어도 되거나 배치 프로세스 작업등의 단기 작업 용도에 적합

 

2. On host maintenance

  • GCP에서 Compute Engine 정기 유지관리를 수행할 때 다운타임 없이 다른 하드웨어로 자동으로 이전하는 기능

 

3. Automatic restart

  • VM 인스턴스가 유지관리이벤트, 오류로 자동 종료되면 자동으로 다시 시작하는 기능!

 

 

 

 

Instance Pricing

  • Compute Engine 인스턴스는 최초 1분 청구 후 1초단위로 요금이 청구 됨

1. 지속 사용 할인 (Sustained use discounts)

  • N1, N2유형의 인스턴스의 경우 20%~50%의 지속사용 할인을 받을 수 있음
  • ex) 월 50%에 해당하는 가상머신을 사용하는 경우 10%의 할인 효과를 받음!

 

2. 약정 사용 할인 (Committed use discounts)

  • 1년 또는 3년 약정을 하는 경우 최대 70%까지 할인을 받을 수 잇음

 

3. 선점형 VM 인스턴스 할인 (Preemptible VM Instance)

  • 선점형 인스턴스를 사용하는 경우 최대 80%까지 할인을 받을 수 있음.
  • 최대 24시간동안 운영이 가능하고 언제든지 종료 될 수 있기에 종료에 영향 받지 않는 단기 작업에 적합!

 

 

 

 

 

 

 

 


 

 

우선 구글 클라우드에 접속해 회원가입 및 무료체험판 등록을 해준다. (90일 무료)

GCP 시험은 영어로 나오다보니 강의들도 영어를 베이스로 해주는게 많다.

 

처음에 나는 많은 후기에 있는 코세라에서 시작을 했는데,

영알못이기도 하고 한글자막 나오는것을 찾기는 했지만

인터페이스나 실습에 있어서 불편함을 느껴서 다른 강의들을 찾기 시작했다.

 

그 중에 이노스터디라는곳을 찾아서

무료인 기본 강의부터 수강을 시작했다.

https://www.inostudy.net/

 

이노스터디

구글 가상머신 실습에 도움 많이 되었습니다!!!

www.inostudy.net

 

 

 

 

우선 실습의 첫번째는 당연히 GCP 사이트에 들어가서 회원가입 & 90일 무료 체험 등록!

http://console.cloud.google.com

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

aws랑 비슷한 느낌....

 

 

 

오른쪽 상단에 Select a projcect 부분 클릭 후

New project 로 새로운 프로젝트를 생성했다.

 

 

 

 

만들어준 Compute Engine으로 바꿔주고

 

 

 

 

Compute Engine 인스턴스 생성 순서

Enable을 눌러준다

 

Create Instance 클릭

 

 

name, region, Machine family 등을 설정해주고

 

 

Marketplace에서 필요로하는 이미지들을 구입할수도 있고, Boot disk에 들어가면

 

 

이런식으로 설정하는것들이있음. 내가 쓰는 CentOs로 변경함.

 

 

Identity and API access에서 default access로 설정하고 Firewall은 인터넷 접속을 위한 HTTP만 클릭을 해줌 (수업 내용)

 

 

Availability policies에서 기본적으로 설정되있는 내용들 그대로.

 

 

Networking, Disks, Security 부분들도 한번 쓱 봐주고 맨 아래에 create로 생성~!

 

 

이렇게 Instance가 생성이 완료되었다. Name을 클릭하면 상세 정보들이 나온다.

 

 

Edit를 누르면 안에 내용들 변경도 가능하다. 클릭해주고 나서

 

 

삭제방지 기능인 Enable deletion protection을 클릭해준다. 그리고 아래 save를 누른다.

 

 

그러면 DELETE가 비활성화 된것을 확인할 수 있다! -> 실수로 삭제하는걸 방지하는 기능!

 

 

Instance를 stop하고 다시 들어가서 Edit를 누르면 Machine configuration이 활성화됨~! save하고 다시 start

 

 

 

Disk에서 persistent disk 생성되있는것 확인

 

 

 


 

웹서버 설정

 

SSH를 클릭하게되면 뜨는 화면

 

 

강의에서는 ubuntu라서 apt로 패키지 관리 툴을 업데이트.. 나는 centOS로 설치했기 떄문에 yum으로 해야함.

 

# yum install httpd* = 모든 패키지 설치

 

 

# systemctl start httpd = Apache 구동 // # systemctl status httpd = Apache 구동 상태 확인

 

 

external IP의 주소를 복사한 후에 웹에 입력

 

 

이런식으로 Apache서버에 접속 완료~!

 

 

# cd /var/www/html = 폴더이동 // # echo "Hello weeding $(hostname) $(hostname -i)" > index.html = html 파일 생성

 

 

이렇게 SSH로 원격으로 접속해서 웹서버를 설치해서 웹서버를 띄워주는 것까지 실습 완료!

 

 

 

 

웹서비스 올리기 정리

sudo su -> (root 모드)

yum install httpd* -> (모든 패키지 파일 업데이트)

yum - y install httpd -> (Apache 설치)

systemctl enable httpd -> (부팅 시 자동 실행 설정)

systemctl is-enabled httpd -> (설정 내용 확인)

rpm -qa | grep httpd -> (rpm 명령어로 Apache 패키지 설치 여부 확인)

systemctl start httpd -> (Apache 구동)

systemctl status httpd -> (Apache 구동 상태 확인)

cd /var/www/html -> (폴더이동)

echo "Hello weeding $(hostname) $(hostname -i)" > index.html -> (html 파일 생성)

 

--> echo '<html><h1>hello weeding</h1></html>'> /var/www/html/index.html -> (폴더이동~html파일생성 한번에)

 

 

 

 

 

 

 


 

Snapshot

  • Compute Engine 인스턴스의 영구 디스크(Persistent Disk)를 백업하는 것
  • 백업된 스냅샷을 이용해 데이터 또는 VM을 복원하는데 사용
  • Snapshot Schedule 기능을 이용해 지정된 날짜와 시간마다 예약된 백업을 할 수 있음.

 

 

 

스냅샷을 생성하고 이 스냅샷으로 인스턴스를 만들어보는 과정

 

같은 Zone에 스냅샷 스케쥴을 생성해야함

 

 

Create Snapshot Schedule 클릭

 

 

이름 설정해주고, Region을 같은 Zone에 해야하는것 기억! 같은걸로 설정해주고, 아래 설정들 읽어보면됨~!

 

 

백업이 되고 30일 이후에 자동으로 스냅샷 삭제 옵션 // 영구디스크가 삭제된 이후에 스냅샷을 그대로 둘건지, 30일뒤에 삭제할건지 선택 옵션

 

 

스냅샷 완성~!

 

 

Disk로 넘어와서 상세정보에서 EDIT로 들어가준 뒤

 

 

Snapshot schedule 클릭해서 만들어준 스냅샷을 연결해주고 save

 

스냅샷 연결 완료~!

 

다시 스냅샷으로 넘어와서 Name 설정, Source disk 만들어주고 Regional을 선택한 뒤 Create

 

 

스냅샷 생성 완료! Source disk가 gec-vm01에 있는 Persistent Disk를 백업해준 것!

 

 

스냅샷으로 들어와서 Create instance 새로 생성 할 수 있음.

 

 

Boot disk에 방금 만든 Snapshot이 지정되있는것을 확인! 이 스냅샷을 가지고 인스턴스를 만들어서 버츄얼머신이나 데이터를 복원 가능!!

 

 

 


 

Instance Templates

  • GCE Instance를 생성할 때 아래와 같은 것들을 지정함
    1. Machine type
    2. Image
    3. Firewall Rules
    4. Labels
    5. Other properties
  • -> 이러한 것들을 하나의 템플릿으로 만들어 주는 것이 Instance Templates 라고 함!

  • 이렇게 템플릿을 만들어서 실제 인스턴스를 생성할 때 템플릿을 사용하면 이 속성들을 다시 지정해줄 필요 없이 템플릿에서 자동으로 가져오게 됨! 
  • 사용자는 Region하고 Zone만 지정 해주면 GCE Instance가 생성됨!!
  • 가상 머신(VM) 인스턴스와 관리형 인스턴스 그룹(MIG = 몸이라생각하면됨)을 만드는 데 사용 가능한 템플릿!
  • 머신유형, 이미지 등의 속성이 지정된 템플릿을 사용하여 빠르게 인스턴스를 생성!

 

 

Instance templates로 들어가서 Create -> name 설정 및 Machine type 설정 (e2-micro)

 

 

Boot disk에서 CentOS로 설정 (강의는 우분투)

 

Firewall은 HTTP와 HTTPS 둘 다 Allow

 

 

Startup script은 인스턴스를 처음 부팅할 때 실행하는 스크립트를 지정해줄 수 있음!

 

 

웹서버 설치 때 배운 스크립트 작성해주고 Create ~!

 

 

VM instances 로 넘어와서 Create instance 클릭

 

 

 

template 부분 클릭하고 생성한 것을 클릭한뒤에 Continue 클릭

 

 

 

템플릿에서 모든 설정값을 다 가져옴! 네임하고 Region을 gec-vm02 // Seoul로 변경해주고 Create~!

 

 

강의에서는 새로 생성된 인스턴스 External IP로 접속하면 웹서버가 떳는데... 뭐가 문제엿는지 뜨지 않아서 SSH 들어가서 입력함.

 

 

참고로 복붙이아니라 새창으로 클릭하면 열리지 않는다! -> 새창을 여는 방식은 https이기 때문에 IP주소만 넣어서 붙여넣어야 실행됨!!

 

 

 


 

Custom Images

  • Instance를 생성하고, OS Patches를 하고, Software 설치 및 구성하는 것 전체를 이미지로 만드는 것!!
  • 사용자 지정 이미지 -> 사용자가 원하는데로 이미지를 만드는것이 Custom Images.

  • Custom Image를 가지고 인스턴스를 생성하는데, 이 때 이미지를 지정하는데 퍼블릭 이미지나 스냅샷이 아닌 Custom Image를 가져다가 인스턴스를 생성할 수 있음

  • 인스턴스, 영구디스크, 스냅샷, 다른 이미지, 클라우드 스토리지의 파일로부터 커스텀 이미지 생성!!
  • 커스텀 이미지를 사용하여 사용자가 원하는 구성으로 빠른 인스턴스 생성이 가능!
  • 회사의 보안 표준 구성에 따라 이미지를 만들고 계속 업데이트 하여 유지 관리 가능!
  • 사용하지 않는 이미지는 OBSOLETE로 설정하면 사용자가 해당 이미지를 사용할 수없음!

 

 

Create Images 클릭

 

 

Source disk를 선택할때는 선택할 인스턴스를 중지하고 하는걸 권장함. 따라서 중지를 하고 선택. Location은 Regional로 바꿔줌. Create~

 

 

이미지가 만들어졋고 옆에 Actions를 클릭해서 인스턴스를 만들어줄수도 있다. 우선 VM instances로 넘어가고

 

 

Create Instance 클릭

 

 

Boot disk에서 Custom Images를 클릭하고 만들어준 Image를 클릭 후 Select~

 

 

 

기타 설정들을 하고 Create~ 하면 되는데 강의에서는 만들지 않음.

 

 

다시 images로 넘어와서 Actions에 Deprecate 클릭

 

 

Depreacated = 이 이미지를 사용할 수는 있지만 더 이상 지원하지 않음으로 설정

 

 

Obsolete = 삭제는 되지않지만 더 이상 이미지를 사용할 수 없음! -> 오래된 이미지는 Obsolete로 지정하면 됨! 클릭

 

 

 

Images에서 사라졋는데 Show deprecated images를 클릭하면 obsolete된 이미지를 볼 수 있음!

 

 

 

 

반응형
LIST