클라우드 서비스 모델
IaaS (Infrastructure as a Service)
- 개념
- IaaS는 가상화된 컴퓨팅 리소스를 인터넷을 통해 제공하는 클라우드 서비스 모델입니다.
- 사용자는 서버, 스토리지, 네트워크와 같은 기본적인 컴퓨팅 인프라를 임대할 수 있습니다.
- 예시
- Amazon Web Service (AWS)의 EC2, Google Cloud의 Compute Engine, Microsoft Azure의 Virtual Machines등이 있습니다
- 사용자에게 제공되는 것
- 하드웨어, 스토리지, 서버, 데이터 센터 공간, 네트워크 구성 요소
- 사용자의 책임
- 운영 체제, 미들웨어, 애플리케이션, 데이터
PaaS (Platform as a Service)
- 개념
- PaaS는 애플리케이션 개발 및 배포를 위한 플랫폼과 환경을 제공합니다. 이는 개발자가 인프라에 대해 걱정하지 않고 애플리케이션 개발에 집중할 수 있게 해줍니다.
- 예시
- Heroku, Google App Engine, Microsoft Azure의 App Services 등이 있습니다.
- 사용자에게 제공되는 것
- 하드웨어, 소프트웨어 스택, 운영 체제, 데이터베이스, 웹 서버
- 사용자의 책임
- 애플리케이션과 데이터
Heroku란?
Heroku는 Salesforce.com이 소유하고 있는 클라우드 플랫폼입니다. Salesforce는 주로 CRM(고객 관계 관리) 소프트웨어로 유명하지만, Heroku를 포함한 다양한 클라우드 기반 서비스를 제공하고 있습니다.
Heroku의 장점으로는 다양한 프로그래밍 언어 지원, 간편한 배포 및 관리, Add-on Marketplace, 확장성 등이 있습니다.
SaaS (Software as a Service)
- 개념
- SaaS는 인터넷을 통해 소프트웨어 애플리케이션을 제공하는 모델입니다. 사용자는 소프트웨어를 소유하거나 유저 관리할 필요 없이 사용할 수 있습니다.
- 예시
- Google Workspace, Microsoft Office 365, Salesforce 등이 있습니다.
- 사용자에게 제공되는 것
- 완전히 기능하는 애플리케이션
- 사용자의 책임
- 주로 데이터와 애플리케이션 설정
FaaS (Function as a Service)
- 개념
- FaaS는 서버리스 컴퓨팅의 일부로, 개별 함수를 클라우드에서 실행할 수 있게 해주는 모델입니다. 이는 인프라 관리를 최소화하고 코드 실행에만 집중할 수 있게 해줍니다.
- 예시
- AWS Labda, Azure Functions, Google Cloud Functions 등이 있습니다.
- 사용자에게 제공되는 것
- 코드 실행 환경
- 사용자의 책임
- 애플리케이션 로직, 코드
CaaS (Container as a Service)
- 개념
- CaaS는 컨테이너 기반 가상화를 제공하는 서비스 모델로, 컨테이너 오케스트레이션과 관리를 포함합니다.
- 예시
- Goole Kubernetes Engine (GKE), Azure Kubernetes Service (AKS), Amazon ECS 등이 있습니다.
- 사용자에게 제공되는 것
- 컨테이너 오케스트레이션, 관리 도구
- 사용자의 책임
- 컨테이너 이미지, 애플리케이션
DaaS (Desktop as a Service)
- 개념
- DaaS는 가상 데스크톱 인프라를 클라우드 서비스로 제공하는 모델입니다. 사용자는 인터넷을 통해 어디서나 데스크톱 환경에 접근할 수 있습니다.
- 예시
- VMware Horizon Cloud, Citrix Managed Desktops, Amazon WorkSpaces 등이 있습니다.
- 사용자에게 제공되는 것
- 가상 데스크톱 환경
- 사용자의 책임
- 일반적으로 사용자 데이터와 애플리케이션
컨테이너화와 오케스트레이션이란?
컨테이너화란?
컨테이너화(Containerization)는 애플리케이션을 실행하는 데 필요한 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정을 포함하는 표준화된 단위인 '컨테이너'에 패키징하는 프로세스입니다. 이 방식은 애플리케이션을 효율적으로 개발, 배포 및 실행할 수 있게 해주며, 여러 환경 간의 일관성을 보장합니다.
컨테이너화의 핵심 개념
- 경량성
- 컨테이너는 가상 머신(VM)보다 훨씬 가볍습니다.
- VM은 각각의 전체 운영 체제를 로드해야 하지만, 컨테이너는 호스트 OS의 커널을 공유하고 애플리케이션 실행에 필요한 최소한의 구성 요소만 포함합니다.
- 이식성
- 컨테이너는 어떤 환경에서도 동일하게 실행됩니다.
- 개발자는 로컬에서 컨테이너를 개발하고, 동일한 컨테이너를 다양한 환경에서 실행할 수 있습니다.
- 일관성
- 모든 의존성과 구성이 컨테이너 내에 포함되어 있기 때문에, 애플리케이션은 항상 일관된 환경에서 실행됩니다,
- 분리 및 보안
- 각 컨테이너는 다른 컨테이너 및 호스트 시스템으로부터 격리됩니다. 이는 보안과 충돌 방지 측면에서 중요합니다.
- 빠른 배포 및 확장성
- 컨테이너는 빠르게 시작되며, 필요에 따라 쉽게 확장하거나 축소할 수 있습니다.
컨테이너화의 구성 요소
- 컨테이너 이미지
- 컨테이너를 실행하는 데 필요한 코드, 런타임, 도구, 라이브러리 및 설정이 포함된 불변의 파일입니다.
- 컨테이너 레지스트리
- 컨테이너 이미지를 저장하고 공유하는 서비스입니다. Docker Hub가 가장 잘 알려진 예입니다.
- 컨테이너 오케스트레이션 도구
- 대규모 컨테이너 배포를 관리하고 자동화하는 도구입니다.
- Kubernetes가 이 분야에서 가장 널리 사용됩니다.
오케스트레이션이란?
오케스트레이션은 컴퓨터 시스템과 애플리케이션, 서비스의 자동화된 구성, 관리, 조정을 의미합니다. 오케스트레이션은 IT 팀이 복잡한 태스크와 워크플로우를 보다 쉽게 관리할 수 있도록 돕습니다.
컨테이너 오케스트레이션의 필요성
컨테이너는 가볍고 빠르게 배포할 수 있어 많은 인기를 얻었습니다. 하지만, 수십, 수백, 때로는 수천 개의 컨테이너를 관리하는 것은 매우 복잡한 작업입니다. 컨테이너 오케스트레이션은 이러한 복잡성을 관리하고, 컨테이너의 배포, 관리, 확장을 자동화하는 데 필요합니다.
컨테이너 오케스트레이션의 주요 기능
- 자동화된 배포
- 애플리케이션을 구성하는 컨테이너들을 자동으로 배포합니다.
- 스케일링
- 트래픽이 증가하거나 감소할 때 컨테이너의 수를 자동으로 조정합니다.
- 로드 밸런싱
- 요청을 여러 컨테이너에 균등하게 분배하여, 시스템의 안정성과 효율성을 높입니다.
- 건강 체크와 자가 치유
- 컨테이너의 상태를 지속적으로 모니터링하고, 문제가 발생한 컨테이너를 자동으로 재시작하거나 교체합니다.
- 서비스 발견과 네트워킹
- 컨테이너 간의 통신과 서비스 간의 연결을 관리합니다.
주요 컨테이너 오케스트레이션 도구
- Kubernetes
- 가장 널리 사용되는 컨테이너 오케스트레이션 도구입니다. 강력한 기능과 광범위한 커뮤니티 지원을 제공합니다.
- Docker Swarm
- Docker에 내장된 오케스트레이션 기능으로, Dokcer 환경에 밀접하게 통합되어 있습니다.
- Apache Mesos & Marathon
- 대규모 클러스터 관리에 적합하며, 데이터 센터를 하나의 컴퓨터처럼 관리할 수 있게 해줍니다.
- Amazon ECS (Elastic Container Service)
- AWS 클라우드 환경에 특화된 컨테이너 오케스트레이션 서비스입니다.
오케스트레이션의 이점
- 효율성
- 자동화를 통해 리소스 사용을 최적화하고 운영 효율성을 높일 수 있습니다.
- 신속한 배포
- 빠른 배포와 업데이트가 가능하여, 지속적인 통합 및 배포 (CI/CD)에 이상적입니다.
- 확장성
- 애플리케이션의 규모 확장이 용이합니다.
- 가용성과 복원력
- 시스템의 안정성을 높이고, 장애 발생 시 빠른 복구가 가능합니다.
https://lympsw12.tistory.com/entry/Amazon-EC2-Auto-Scaling
'클라우드&인프라 > 클라우드 공부' 카테고리의 다른 글
멀티 클라우드의 중요 기술 설명 (0) | 2023.11.11 |
---|---|
까먹으면 찾아보는 클라우드 용어 정리 (2) (0) | 2023.11.11 |
쿠버네티스의 핵심 키워드 10가지 공부 (0) | 2023.11.11 |