[Product Serving] Cloud

hyunsooo·2023년 1월 10일
0

Cloud

Cloud 서비스를 사용하는 이유

웹, 앱 서비스를 만드는 경우 자신의 컴퓨터(localhost)로 서비스를 만들 수 있다. 그러나 이런 경우 자신의 컴퓨터가 종료되면 서비스가 종료된다.

이런 문제를 해결하기 위한 전통적인 방법은 아래와 같다.

  • 물리적 공간, 확장성을 고려한 서버실을 만들고 운영. (IDC, Internet Data Center)
  • 서버 컴퓨터를 넣을 공간, 추후 서버를 추가할 때 즉각적 확장이 가능한지 고려해야 한다.
  • 전기, 에어컨 등 서버가 종료되지 않도록 환경을 갖춰주어야 한다.
  • 트래픽이 많거나 적을 경우 컴퓨터를 추가, 제거 등 즉각적인 행동을 취하기 어렵다.

위와 같은 문제들로 인해 클라우드 서비스가 점점 발전해 왔다. 개발자가 직접 설정해야 하는 IP, 방화벽 등 다양한 설정들을 편리하게 이용할 수 있으며 Apache Spark를 쉽게 운영할 수 있도록 AWS EMR, GCP Dataproc 등을 활용할 수 있다.

Cloud 서비스의 다양한 제품

Computing Service(Server)

연산을 수행하는 서비스를 제공하며 가상 컴퓨터, VM, 서버 등 다양한 이름으로 불린다. 이 제품은 CPU, Memory, GPU 등을 선택할 수 있으며 서버 인스턴스를 생성 후 인스턴스에 접근하여 사용할 수 있다.

Serverless Computing

Computing Service와 유사하지만 서버 관리를 클라우드쪽에서 진행한다.
코드를 클라우드에 제출하며 그 코드를 가지고 서버를 실행시켜주는 형태로 요청 부하에 따라 자동으로 확장(Auto Scaling)이 가능하다.

Stateless Container

Docker를 사용한 Container 기반으로 서버를 실행하는 구조이다.
Docker Image를 업로드하면 해당 이미지 기반으로 서버를 실행시켜 주며 마찬가지로 Auto Scaling기능이 존재한다.

Object Storage

다양한 Object를 저장할 수 있으며 다양한 형태의 데이터를 저장할 수 있으며 API를 사용해 데이터에 접근할 수 있다. pkl, csv, log 등 다양한 파일들을 저장할 수 있으며 데이터 저장 비용이 점점 저렴해지고 있다.

Database(RDB)

DB가 필요한 경우 클라우드에서 제공하는 Database를 활용할 수 있다.
웹, 앱 서비스와 Database가 연결되어 있는 경우가 많으며 대표적으로 MySQL, PosgreSQL 등을 사용할 수 있다.
사용자 로그 데이터를 Database에 저장할 수도 있으며 Object Storage에 저장할 수도 있다. 데이터의 사용 용도에 따라 위치를 선택하면 된다.

Data Warehouse

DB에 저장된 데이터는 데이터 분석을 메인으로 하는 저장소가 아닌 서비스에 활용할 데이터를 저장하는 공간이다.
DB에 있는 데이터, Object Storage에 있는 데이터 등을 모두 모아서 Data Warehouse에 저장하여 데이터 분석에 활용할 수 있다. 추가적으로 이 공간에서 데이터를 조회하는것이 훨씬 빠르다.

AI Platform

AI Research, AI Develop 과정을 편리하게 해주는 제품으로 MLOps 관련 서비스를 제공하게 된다.

etc.

클라우드 회사마다 제품의 이름은 다르지만 하나의 제품의 이름을 알면 모두 검색해서 사용할 수 있다.


Google Cloud Platform

GCP는 첫 가입시 $300 크레딧을 제공한다. 학습할 때 클라우드 비용을 내면서 쓰는 부담을 줄일 수 있으며 하나의 클라우드에 익숙해지면 다른 클라우드도 수월하게 사용할 수 있다.

Google Cloud Platform 프로젝트 생성하기

  • Gmail 로그인 후, Google Cloud에 접속하여 무료로 시작하기를 클릭

  • 회원가입을 완료하면 프로젝트 생성이 완료!

  1. 프로젝트 정보 공간으로 project_name과 project_id를 자주 사용한다.

  2. Product를 사용하고 있다면 모니터링 해야하는 공간

  3. GCP의 다양한 Product(Compute Engine, k8s, VM 등)를 볼 수 있는 공간

Google Cloud Platform Compute Engine

  • GCP의 다양한 Product공간에 Compute Engine(= 서버, 인스턴스, VM, GCP Compute Engine, AWS ECS)을 클릭 후 사용

  • VM 인스턴스에서 인스턴스 생성하기.

  • 서버의 이름, 라벨, 성능을 지정할 수 있다.
  • Region과 Zone을 지정할 수 있는데 물리 컴퓨터가 어디에 존재하는지에 따라 다르며 Region, Zone별로 사용할 수 있는 성능이 다른 경우도 존재한다.
    또한 실제 서비스시 Request하는 위치와 서버의 거리가 가까울수록 네트워크가 빠르게 결과를 return하기 때문에 이 부분도 고려해서 생성해야 한다. 클라우드 학습시 저렴한 us를 사용해도 무방하다.

  • 인스턴스 생성 후 SSH를 클릭하면 브라우져 환경에서 SSH를 이용해 CLI환경에 접속할 수 있다.

  • 사용하지 않는 경우 중지나 혹은 삭제를 하는것을 추천한다. 중지한다고 해도 저장소 비용이 계속 소모될 수 도 있다.

Google Cloud Platform Cloud Storage

  • GCP의 다양한 Product공간에 Cloutd Storage을 클릭 후 사용

  • 버킷 만들기를 클릭하여 여러가지 설정을 조정한 후 생성할 수 있다.

  • 버킷을 생성하면 파일, 폴더 등 업로드가 가능하며 폴더 만들기도 가능하다.

    도전해볼 것

  • Compute Engine 인스턴스 띄우고 삭제해보기

  • Compute Engine 인스턴스에서 Shell Command 연습

  • Cloud Storage의 Bucket 생성 후 파일 업로드 및 삭제해보기

  • Python Cloud Storage API를 사용해 업로드한 파일을 파이썬에서 사용하는 코드 작성해보기 (참고문서)

profile
지식 공유

0개의 댓글