Product Serving(7): 클라우드 서비스

SeongGyun Hong·2024년 12월 16일

NaverBoostCamp

목록 보기
46/64

1. Cloud

  • 웹, 앱을 만드는 경우

    • 전통적으로 IDC(Internet Data Center)를 만들고 운영함
    • 서버 컴퓨터를 넣을 공간... 즉각적 확장성...
    • 전기, 에어컨 이슈로 갑작스럽게 종료...
      - 갑자기 트래픽이 몰릴 때 컴퓨터 10대를 설치하기 어렵고, 자체 수급자체가 어려운 경우도 있다.
      - 반대로 트래픽이 적을 때 컴퓨터 10대를 없애는 것은 쉽지 않음!

      이렇게 개발자가 설정해야 했던 작업들을 클라우드 서비스를 이용하면 쉽게 할 수 있음

      • Apache Spark를 쉽게 운영할 수 있도록 AWS EMR, GCP Dataproc 등을 활용하고 (직접 하둡 설치할 필요 없이 이미 설치되어 있음)
      • Docker Image 기반으로 서버를 띄울수도 있음 자주 사용하는 Jupyter Lab 환경 등을 필요할 때마다 띄울 수 있는 것
  • 이에 따른 수요로 다양한 Cloud Service Vendor가 등장함

    • 플랫폼 별로 유사한 제품이지만 명칭과 세부옵션은 다른 경우가 있음.
    • 다만, 그럼에도 하나를 익히면 나머지는 쉬워짐 거의 다 비슷함.

      대표적으로 사용하는 클라우드 제품은 아래와 같음

      1. Comupting Service(Server)
      2. Serverless Computing
      3. Stateless Container
      4. Object Storage
      5. Databse (DB)
      6. Data Warehouse
      7. AI Platform
  1. Computing Service (Server)
  • 가장 많이 사용할 제품
  • 연산을 수행하는(computing) 서비스
  • 가상 컴퓨터, 서버로 CPU나 Memory, GPU 등을 선택할 수 있음
  • 인스턴스 생성 후, 인스턴스에 들어가서 사용 가능
  • 클라우드마다 무료 사용량이 존재(성능은 약 cpu 1 core, memory 2G)

AWS(EC2), Google Cloud(Compute Engine)

  1. Serverless Computing
  • 앞서 다룬 Computing Service와 유사하지만, 서버 관리를 클라우드 쪽에서 진행
  • 코드를 클라우드에 제출하면, 그 코드를 가지고 서버를 실행해주는 형태
  • 요청 부하에 따라 자동으로 확장 (Auto Scaling)
  • Micro Service로 많이 활용

AWS(Lambda), Google Cloud(Cloud Function)

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

AWS(ECS), Google Cloud(Cloud Run)

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

AWS(S3), Google Cloud(Cloud Storage)

  1. Database(DB)
  • Database가 필요한 경우 클라우드에서 제공하는 Database를 활용할 수 있음
  • 웹, 앱서비스와 데이터베이스가 연결되어 있는 경우가 많으며, 대표적으로 MySQL, PostgreSQL 등을 사용할 수 있음
  • 사용자 로그 데이터를 Database에 저장할 수도 있고, Object Storage에 저장할 수도 있음
  • 저장된 데이터를 어떻게 사용하냐에 따라 어디에 저장할지를 결정

AWS(RDS), Google Cloud(Cloud SQL)

  1. Data Warehouse
  • 보통 Database = 서비스에서 사용하기 위한 데이터를 저장
    • 분석 목적의 Databse가 아님
  • Data Warebouse
    • 데이터 분석에 특화된 Database
    • Database에 있는 데이터, Object Storage에 있는 데이터 등을 모두 Data Warehouse에 저장

AWS(Redshift), Google Cloud(BigQuery)

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

AWS(SageMaker), Google Cloud(Vertex AI)

  1. Kubernetes
  • AWS(EKS)
  • GKE(Google Kubernetes Engine)
  • AKS(Azure Kubernetes Service)

Cloud Network

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

  • 특정 클라우드 벤더(AWS, GCP)에 종속되지 않고, 인프라 환경을 이해하기 편함
  • 예시로, 각 벤더에 따라 클라우드 방화벽을 다르게 지칭함
    GCP: NetworkACL
    AWS: Security Group
  • 보다 안전한 클라우드 인프라 구성 가능(외부 공격 가능성을 줄임)

VPC: Virtual Private Cloud

클라우드 상에서사용자가 직접 네트워크를 설정하고 관리할 수 있는 가상의 네트워크 공간

항목VPC아파트 단지
VPC가상 네트워크를 구축하는 사용자 전용 공간아파트 단지 전체 (네트워크 공간)
Subnet (서브넷)VPC 안에서 논리적으로 구분된 네트워크 영역아파트 단지 내 동(건물)
Instances (서버)VPC 내의 개별 컴퓨팅 자원 (EC2 등)각 동 안의 세대(집)
Route Table (라우팅 테이블)네트워크 트래픽이 어디로 갈지 지정하는 규칙아파트 내 도로와 길 안내 표시판
Security Group인스턴스 수준에서 접근을 제어하는 방화벽각 세대의 출입문과 도어락
NACL (네트워크 ACL)서브넷 수준에서 접근을 제어하는 방화벽아파트 단지 입구의 경비실 및 보안 시스템
인터넷 게이트웨이외부 인터넷과 연결해주는 출입구아파트 단지의 출입구
VPN 및 Direct Connect외부 네트워크와의 전용 연결아파트와 회사(외부) 사이의 전용 통로

2. GCP

실습추천
1. Compute Engine 인스턴스 띄우고 삭제해보기
2. Compute Engine에 파일 올려보기
3. Cloud Stroage의 Bucket 생성하고 파일 업로드, 삭제해보기
4. Jupyter Lab을 Compute Engine에 실행하기
5. Airflow를 Compute Engine에 실행하기

profile
헤매는 만큼 자기 땅이다.

0개의 댓글