오늘 배운 내용은 cloud 서비스!
클라우드 서비스는 인터넷을 통해 컴퓨팅 자원, 데이터 저장, 소프트웨어, 플랫폼 및 기타 IT 관련 서비스를 원격으로 제공하는 서비스
전통적인 IDC(온프레미스) 방식은 트래픽이 유동적인 경우에는 대처하기 힘들다.
IaaS (Infrastructure as a Service)
기본적인 컴퓨팅 인프라(서버, 스토리지, 네트워크)를 제공
PaaS (Platform as a Service)
개발, 배포, 운영을 지원하는 플랫폼 제공
SaaS (Software as a Service)
클라우드에서 호스팅되는 완성된 소프트웨어 애플리케이션 제공
cloud service vendor
Amazon AWS, MS Azure, Google GCP
서버. CPU, Memory, GPU 선택 가능. 인스턴스 생성 후 사용한다.
ex) AWS EC2, Google Compute Engine, Azure Virtual Machine
코드를 클라우드에 제출하면 그 코드를 가지고 서버를 실행시켜주는 것. 서버 관리를 클라우드측에서 한다.
오토스케일링 옵션이 있다. MSA로 많이 사용한다.
ex) AWS Lambda, Google Cloud Function, Azure Function
Stateless : DB같은 컨테이너 외부에 데이터를 저장해 그 데이터로 동작하는 컨테이너.
docker를 사용하는 컨테이너 기반으로 서버를 실행하는 구조로, 이미지를 업로드 하면 서버를 실행시켜준다. 오토스케일링 옵션이 있다.
ex) AWS ECS, Google Cloud Run, Azure Container Instance
다양한 형태의 데이터 저장소. API로 데이터에 접근(다운)가능.
ML에선 모델, csv, log 등을 저장한다.
Blob : Binary Large Object. 저장객체 / Bucket : 저장소
ex) AWS S3, Google Cloud Storage, Azure Blob Storage
웹, 앱 서비스는 서비스에 사용하기 위한 데이터를 저장하기 위해 MySQL, PostgreSQL 등의 DB를 많이 사용하는데 이걸 클라우드로 제공한다.
log를 Object Storage or DB 중 어디에 저장할 지는 어떻게 쓸지에 따라 다르다.
ex) AWS RDS, Google Cloud SQL, Azure SQL
데이터 분석에 특화된 DB
ex) AWS Redshift, Google BigQuery, Azure Synapse Analytics
AI 개발이나 연구를 더 편하게 해주는 서비스. Feature Store 같은 MLOps 관련 서비스도 있다. Google에선 TPU도 사용 가능.
ex) AWS SageMaker, Google Vertex AI, Azure Machine Learning
이미지 출처 : kerno
VPC(Virtual Private Cloud)
사용자가 정의한 논리적으로 격리된 가상 네트워크. 보안상의 이유로 분리한다.
유저가 IP 주소의 범위, 서브넷, 라우팅 테이블 등을 직접 정의할 수 있다.
보안그룹과 ACL을 통해 인바운드/아웃바운드 트래픽을 제어한다.
서브넷
큰 네트워크(VPC)를 더 작은 네트워크 망으로 분할한 것.
트래픽을 분산해 혼잡을 줄이고 public/private 서브넷으로 분리해 보안을 강화한다.