AI_Tech부스트캠프 week15...[7] 클라우드서비스스

Leejaegun·2024년 12월 17일
0

AI_tech_CV트랙 여정

목록 보기
56/74

1. Cloud

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

본인의 컴퓨터로 웹, 앱 서비르 만들기도 가능함 -> 하지만 이런 경우 자신의 컴퓨터가 종료되면 웹,앱 서비스도 종료.

이런 경우 전통적인 접근 방법

  • 물리적 공간, 확장성을 고려한 서버실을 만들고 운영
  • IDC(Internet Data Center)
  • 서버 컴퓨터를 넣을 공간 + 추후 서버를 추가할 때 즉각적으로 확장할 수 있는지
  • 전기, 에어컨 등 서버가 급작스럽게 종료되지 않도록 준비가 필요함

따라서 자유롭게 활용할 수 있는 개념으로 클라우드 서비스가 점점 발전
그 이후엔 개발자가 직접 설정해야 했던 작업 등을 클라우드에서 쉽게 할 수 있는 방향으로 발전
(Managed 서비스)

1.2 Cloud 서비스의 다양한 제품

시장점유율

1.3 Cloud 서비스 공통 기술 개념

Computing Service (Server)

  • 연산을 수행하는(Computing) 서비스
  • 가상 컴퓨터, 서버로 CPU나 Memory, GPU 등을 선택할 수 있음
  • 인스턴스 생성 후, 인스턴스에 들어가서 사용 가능

ex) AWS(EC2), Google Cloud(Compute Engine)

Serverless Computing

서버 관리를 클라우드쪽에서 진행

  • 코드를 클라우드에 제출하면, 그 코드를 가지고 서버를 실행해주는 형태
  • 요청 부하에 따라 자동으로 확장(Auto Scaling)
  • Micro Service로 많이 활용

ex) AWS(Lambda), Google Cloud(Cloud Function)

Stateless Container

  • Stateless : 컨테이너 외부(DB, Cloud Storage 등)에 데이터를 저장. 컨테이너는 그 데이터로 동작
  • 컨테이너가 중지되거나 삭제될 때, 컨테이너 내에서 생성된 모든 데이터나 상태가 삭제
  • Docker를 사용한 Container 기반으로 서버를 실행하는 구조
  • Docker Image를 업로드하면 해당 이미지 기반으로 서버를 실행해주는 형태
  • 요청 부하에 따라 자동으로 확장(Auto Scaling)

ex) AWS(ECS), Google Cloud(Cloud Run)

Object Storage

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

ex) AWS(S3), Google Cloud(Cloud Storage)

Database (DB)

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

ex) AWS(RDS), Google Cloud(Cloud SQL)

항목Object StorageDatabase
데이터 형태비정형/반정형 (이미지, 동영상, 파일 등)정형/반정형 (테이블, 행/열, 스키마 기반)
접근 방식API/HTTP 기반의 GET, PUT 방식으로 단순 접근SQL 또는 전용 쿼리 언어를 통한 복잡한 질의 및 조작
데이터 구조화 수준낮음 (파일 단위 관리, 디렉토리 개념 없음)높음 (테이블, 컬럼 구조 및 인덱스 활용)
주요 활용 분야대용량 비정형 데이터 보관, 정적 파일 제공, 백업/아카이빙트랜잭션 처리, 고객 정보 관리, 복잡한 질의 처리
확장성(Scalability)매우 뛰어남 (오브젝트 단위로 수평적 확장 용이)규모 확대 시 성능 관리가 중요, 샤딩/리플리카 필요
주요 예시AWS S3, Google Cloud StorageMySQL, PostgreSQL, MongoDB, DynamoDB

Data Warehouse

  • 데이터 분석에 특화된 Database
  • Database에 있는 데이터, Object Storage 에 있는 데이터 등을 모두 Data Warehouse에 저장

ex) AWS(Redshift), Google Cloud(BigQuery)

AI Platform

  • AI Research, AI Develop 과정을 더 편리하게 해주는 제품
  • MLOps 관련 서비스 제공
  • Google Cloud에서 TPU 사용 가능

ex) AWS(SageMaker), Google Cloud(Vertex AI)

cloud 제품간 비교분석

1.4 Cloud Network

클라우드를 잘 이해하기 위해 네트워크 지식이 있으면 좋음

  • 특정 클라우드 벤더(AWS, GCP)에 종속되지 않고, 인프라 환경을 이해할 수 있음

Virtual Private Cloud (VPC)

VPC는 Virtual Private Cloud 의 약자이며 네트워크를 논리적으로 분리할 수 있게 합니다. 이를 통해 네트워크가 확장성을 가지고 해당 네트워크 영역에 대한 통제권을 가질 수 있습니다.

  • 보안상의 이유로 네트워크 분리
  • 실제로 같은 네트워크 안에 있지만 논리적으로 분리한 것
  • Cloud Computing Service(예 : Compute Engine) 사이의 연결 복잡도 줄여줌
  • 여러 서버를 하나의 네트워크에 있도록 묶는 개념

서브넷(subnet)
서브넷은 네트워크를 더 작은 단위로 분할하는 기능입니다. 서브넷을 사용하여 대규모 네트워크를 관리하고 효율적으로 네트워크 리소스를 할당할 수 있습니다.

  • VPC 안에서 여러 망을 쪼갬
  • Public Subnet : 외부에서 접근 가능한 망
  • Private Subnet : 외부에서 접근이 불가능한 망
    같은 VPC 내에 있으면 Private IP로 접근이 가능함

라우팅(Routing)

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

2. GCP (Google Cloud Platform)

2.1 GCP 기초 인프라 구성하기

https://cloud.google.com/gcp
프로젝트 정보 => project_name, project_id를 자주 사용

2.2 GCP Compute Engine

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

[VM 인스턴스] 클릭 - [인스턴스 만들기] 클릭
이 부분이 서버를 만드는 곳

인스턴스만들기.

object storage 에서 bucket(폴더) 만들기.

(응용) Python으로 Bucket 내 파일 다운로드 및 업로드

1) Google Could 파이썬 라이브러리를 설치

2) 서비스 계정(Service Account)과 키를 생성

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

4) 예시 코드

  • Cloud Storage
  • Bucket : 저장소(하드 드라이브)
  • Blob : Binary Large Object. 저장 객체

2.3 GCP Cloud Storage

3. 참고사항

GCP공식문서
https://cloud.google.com/docs?_gl=1*1qvbnv0*_up*MQ..&gclid=CjwKCAiA9bq6BhAKEiwAH6bqoH2F6QSWY2FuBmbvo00dn9Q17vhlVZWt-IHvBB4JCmDoHUTjymDqQhoCnygQAvD_BwE&gclsrc=aw.ds&hl=ko

AWS를 이용한 MLOps
https://aws.amazon.com/ko/blogs/tech/aws-mlops-use-case/

profile
Lee_AA

0개의 댓글

관련 채용 정보