ML/AI/SW Developer

Cloud

0. 강의 소개

현대 IT 산업은 클라우드 컴퓨팅 없이는 존재를 할 수 없다고 해도 과언이 아닙니다. 이번 강의에서는 저희가 앞으로 계속 접하게 될 클라우드 컴퓨팅에 대한 내용을 Google Cloud Platform을 통해서 학습해보는 시간을 갖도록 하겠습니다. 다양한 클라우드 플랫폼들이 존재하지만, 결국에 구성하는 서비스들의 이름만 다르고 목적성은 같으니 각각의 서비스들의 목적성에 집중해서 수강을 해주세요!

1. Cloud

1.1 Cloud 서비스를 사용하는 이유

  • 웹, 앱 서비스를 만드는 경우
    • 자신의 컴퓨터로 만들 수도 있음
    • 하지만… 컴퓨터를 끄면 서비스가 종료된다!
  • 전통적 접근법
    • 24시간 돌아가는 서버실을 운영
    • 전기, 에어컨 등 신경쓸 것들이 굉장히 많음 + 비용
  • Cloud 서비스
    • 보다 자유롭게 활용이 가능!!
    • 확장이 쉽고, 개발자들이 직접 설정해야했던 것을 기능으로 제공
    • 다양한 환경을 미리 설치해두고 사용도 가능

1.2 Cloud 서비스의 다양한 제품

  • Computing Service(Server)
    • 연산을 수행하는(Computing) 서비스
    • 가상 컴퓨터, 서버
    • CPU, Memory, GPU 등을 선택할 수 있음
    • 가장 많이 사용할 제품
    • 인스턴스 생성 후, 인스턴스에 들어가서 사용 가능
    • 회사별로 월에 무료 사용량이 존재(성능은 약 cpu 1 core, memory 2G)
  • Serverless Computing
    • 앞에 나온 Computing Service와 유사하지만, 서버 관리를 클라우드쪽에서 진행
    • 코드를 클라우드에 제출하면, 그 코드를 가지고 서버를 실행해주는 형태
    • 요청 부하에 따라 자동으로 확장(Auto Scaling)
    • Micro Service로 많이 활용
  • Stateless Container
    • Docker를 사용한 Container 기반으로 서버를 실행하는 구조
    • Docker Image를 업로드하면 해당 이미지 기반으로 서버를 실행해주는 형태
    • 요청 부하에 따라 자동으로 확장(Auto Scaling)
  • Object Storage
    • 다양한 Object를 저장할 수 있는 저장소
    • 다양한 형태의 데이터를 저장할 수 있으며, API를 사용해 데이터에 접근할 수 있음
    • 점점 데이터 저장 비용이 저렴해지고 있음
    • 머신러닝 모델 pkl 파일, csv 파일, 실험 log 등을 Object Storage에 저장할 수 있음
  • Database(RDB)
    • Database가 필요한 경우 클라우드에서 제공하는 Database를 활용할 수 있음
    • 웹, 앱서비스와 데이터베이스가 연결되어 있는 경우가 많으며, 대표적으로 MySQL, PosgreSQL 등을 사용할 수 있음
    • 사용자 로그 데이터를 Database에 저장할 수도 있고, Object Storage에 저장할 수도 있음
    • 저장된 데이터를 어떻게 사용하냐에 따라 어디에 저장할지를 결정
  • Data Warehouse
    • Database에 저장된 데이터는 데이터 분석을 메인으로 하는 저장소가 아닌 서비스에서 활용할 Database
    • Database에 있는 데이터, Object Storage 에 있는 데이터 등을 모두 모아서 Data Warehouse에 저장
    • 데이터 분석에 특화된 Database
  • AI Platform
    • AI Research, AI Develop 과정을 더 편리하게 해주는 제품
    • MLOps 관련 서비스 제공
    • Google Cloud Platform : TPU

2. Google Cloud Platform

2.1 Google Cloud Platform 프로젝트 생성하기

  1. 웹사이트 접속하기
    • https://cloud.google.com/gcp
  2. 회원가입 후 프로젝트 생성하기
  3. 구글 클라우드 플랫폼 메인 대시보드
    • https://console.cloud.google.com/home/dashboard
    • 프로젝트 정보 => project_name, project_id를 자주 사용

2.2 Google Cloud Platform Compute Engine

  1. Compute Engine 클릭
    • 초기화 완료 후
  2. VM 인스턴스 클릭
    • 이 부분이 서버를 만드는 곳
    • 이름, 컴퓨터 성능 선택
    • 예상가격도 확인 가능
    • Region / Zone 별로 사용할 수 있는 성능이 다른 경우도 존재
    • e2-micro : 무료로 사용 가능한 성능 (https://cloud.google.com/free)
  3. 우측의 SSH 클릭 - 브라우저 창에서 열기
    • 연결을 클릭한 후 기다리면 CLI 화면이 보임
    • 사용하지 않는 경우엔 중지 또는 삭제!
    • 중지되는 경우에도 비용이 부과되는 경우가 존재할 수 있음

2.3 Google Cloud Platform Cloud Storage

  1. Object Storage인 Cloud Storage, 버킷 만들기 클릭
  2. 고유한 버킷 이름 지정
  3. 버킷을 클릭하면 이제 파일 업로드, 폴더 업로드 가능

3. Special Mission

  1. Compute Engine 인스턴스 띄우고 삭제해보기
  2. Compute Engine 인스턴스에서 Shell Command 연습하기
  3. Cloud Storage의 Bucket 생성하고 파일 업로드, 삭제해보기
  4. Python Cloud Storage API를 사용해 Cloud Storage에 업로드한 파일을 파이썬에서 사용하는 코드 작성(참고 문서 : https://googleapis.dev/python/storage/latest/index.html)

Reference

  • AI boot camp 2기 서빙 강의