클라우드 서비스

seung·2024년 12월 31일

Product Serving

목록 보기
6/8

Cloud

웹, 앱 서비스를 만드는 경우 자신의 컴퓨터(localhost)로 서비스를 만들 수도 있다.

그러나 이런 경우 자신의 컴퓨터가 종료되면 웹, 앱 서비스도 종료된다.

이런 경우 전통적인 해결 방법은 물리적 공간, 확장성을 고려한 서버실을 만들고 운영해야 한다.

하지만, 갑자기 트래픽이 몰릴 경우, 컴퓨터 10대를 설치하기 어려움
(자재 수급 이슈 등)
반대로 트래픽이 적어서 컴퓨터 10대를 없애기가 수월하지 않음

이러한 문제를 해결하기 위해 나온 서비스가 클라우드이다!!
개발자가 직접 설정해야 했던 작업 등을 클라우드에서 쉽게 할 수 있는 방향으로 발전해왔다.
(Managed 서비스)

다양한 클라우드 서비스 vendor도 등장했다!
(플랫폼 별 유사한 제품이지만 명칭과 세부 옵션 다른 경우 존재)

cloud 제품

1. Computing Service (Server)

가장 많이 사용하는 제품으로 연산을 수행하는 서비스이다.
가상 컴퓨터, 서버로 CPU나 Memory, GPU 등을 선택할 수 있음

  • 인스턴스 생성 후, 인스턴스에 들어가서 사용 가능
  • 클라우드마다 무료 사용량이 존재(성능은 약 cpu 1 core, memory 2G)

예시)
AWS(EC2), Google Cloud(Compute Engine)

2. Serverless Computing

위에서 다룬 computing service와 유사하지만 서버 관리를 클라우드에서 진행하는 것
코드를 클라우드에 제출하면, 그 코드를 가지고 서버를 실행해주는 형태이다.

예시)
AWS(Lambda), Google Cloud(Cloud Function)

3. Stateless Container

  • Stateless : 컨테이너 외부(DB, Cloud Storage 등)에 데이터를 저장. 컨테이너는 그 데이터로 동작

컨테이너를 종료하거나 재배치해도 데이터 손실이 발생하지 않는다.
Docker를 사용한 Container 기반으로 서버를 실행하는 구조

예시)
AWS(ECS), Google Cloud(Cloud Run)

4. Object Storage

다양한 데이터를 저장할 수 있으며, API를 사용해 데이터에 접근할 수 있다.
즉 다양한 Object를 저장할 수 있는 저장소이다.
(머신러닝 모델 pkl 파일, csv 파일, 실험 log 등을 Object Storage에 저장할 수 있다.)

예시)
AWS(S3), Google Cloud(Cloud Storage)

5. Database (DB)

Database가 필요한 경우 클라우드에서 제공하는 Database를 활용할 수 있다.
웹, 앱서비스와 데이터베이스가 연결되어 있는 경우가 많으며, 대표적으로 MySQL, PostgreSQL 등을 사용할 수 있다.

저장된 데이터를 어떻게 사용하는냐에 따라 어디에 저장될지 결정할 수 있다.

예시)
AWS(RDS), Google Cloud(Cloud SQL)

6. Data Warehouse

보통 Database = 서비스에서 사용하기 위한 데이터를 저장
즉 보통 database는 분석 목적의 데이터 베이스가 아니다.

data warehouse는 데이터 분석에 특화된 Database이다.
모든 데이터를 warehouse에 저장하게 되어 있다.

예시)
AWS(Redshift), Google Cloud(BigQuery)

7. AI Platform

AI Research, AI Develop 과정을 더 편리하게 해주는 제품이다.
MLOps 관련 서비스 제공하며, google cloude에서는 tpu도 제공한다.

예시)
AWS(SageMaker), Google Cloud(Vertex AI)

Cloud Network

클라우드 네트워크 지식이 클라우드 환경에서의 보안 강화와 효율적인 인프라 관리에 필수적이다.

네트워크 지식이 있다면 특정 클라우드 벤더(AWS, GCP)에 종속되지 않고, 인프라 환경을 이해할 수 있다.

예시)
각 벤더에 따라 클라우드 방화벽을 다르게 지칭
(GCP: NetworkACL, AWS: Security Group)

보다 안전한 클라우드 인프라를 구성할 수 있음

VPC

Virtual Private Cloud으로 보안상의 이유로 네트워크 분리하는 것을 의미한다.
실제로 같은 네트워크 안에 있지만 논리적으로 분리한 것

  • subnet
    VPC 안에서 여러 망을 쪼갬
    Public Subnet : 외부에서 접근 가능한 망
    Private Subnet : 외부에서 접근이 불가능한 망

  • routing
    경로를 설정하고 찾아가는 길, 경로지정

GCP

클라우드 서비스 핵심 벤더 중 하나인 GCP로 실습을 해보자

GCP로 하는 이유는 무료 크레딧이 제공되기 때문!

어떤 방식으로 사용하는지 살펴보자!

사용단계

서버 만들기

  1. google cloud 회원가입 및 프로젝트 생성

  2. 구글 클라우드 플랫폼 메인 대시보드로 이동

  3. Compute Engine 클릭
    (참고) 서버=인스턴스=VM(Virtual Machine)=GCP Compute Engine, AWS EC2

  4. 초기화 후 vm 인스턴스 만들기

  5. 이름 지정 및 컴퓨터 성능 선택하기(서버 사용 예상 가격 꼭 확인)

  6. region 서울로 지정

이 단계를 거치면 서버 생성 완료!!

버킷 생성

  1. Object Storage인 Cloud Storage, [버킷 만들기] 클릭
  2. 버킷 이름 지정
  3. 버킷 생성 후 파일이나 폴더 업로드하기

이 단계를 거치면 버킷도 완료!!

파이썬에서 버킷 생성

  1. Google Could 파이썬 라이브러리를 설치
pip install google-cloud-storage
  1. 서비스 계정(Service Account)과 키를 생성

  2. 생성된 서비스 계정을 클릭 후 [키 추가]를 통해 json 유형의 키를 다운로드

  3. json 파일을 활용하여 로컬에 환경 변수를 설정

export
GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

0개의 댓글