클라우드 컴퓨팅 기본
- 클라우드 컴퓨팅이란?
- 인터넷을 통해 '온디맨드'로 스토리지, 서버, DB, 소프트웨어, 네트워킹과 같은 서비스를 제공 (컴퓨팅 리소스)
- 사용자가 필요한 리소스와 서비스에 대해 사용한 만큼만 지불
- 제공업체가 기반 인프라를 관리 -> 물리적 리소스 관리 부담 감소
- 클라우드 컴퓨팅의 역사
클라우드 컴퓨팅의 핵심 기술
가상화란? (Virtualization): 서버, 운영체제, 스토리지, 네트워크 등 다양한 컴퓨팅 자원의 가상 버전을 생성 -> 하나의 물리적인 하드웨어에서 여러 환경이 동시에 실행 -> 소프트웨어를 하드웨어와 분리시키는 기술 (VM, Docker)
- 서버 가상화
- 물리 서버를 여러 개의 가상 머신(VM)으로 분할 -> 독립적인 OS와 프로그램을 실행
- 물리 서버 리소스 효율적 활용 -> 물리 서버에서 여러 워크로드를 동시에 실행
- 운영체제 가상화
- 컨테이너화, 컨테이너 기반 가상화 / 하나의 운영 체제 커널 공유 -> 격리된 인스턴스: 컨테이너
- 경량화, 이식성, 효율성, 빠르게 배포
- 네트워크 가상화
- 네트워크 리소스 추상화/가상화 (스위치, 라우터, 방화벽)
- 스토리지 가상화
- 물리적 스토리지 장치 추상화/가상화 (하드 드라이브, 스토리지)
- 중앙 관리 -> 데이터 이동 간소화 -> 복제/스냅샷
- 데스크톱 가상화 (가상 데스크톱 인프라: VDI)
- 원격 서버에 호스팅된 VM에서 OS/응용 프로그램 실행
- DaaS (Desktop as a Service): 클라우드 서비스에서 사용자에게 VDI 서비스를 제공
- 애플리케이션 가상화
- 애플리케이션을 기반 운영 체제에서 분리하여 격리된 컨테이너에 포장
클라우드 컴퓨팅의 필요성
- Continuous Integration & Continuous Delivery (지속적인 통합 및 배포)
- DevOps (데브옵스)
- CI/CD, IaC, 자동화 배포, 모니터링 및 피드백 루프, 협업, 커뮤니케이션, 공유 책임
- Cloud Native Application (클라우드 네이티브)
- 클라우드 컴퓨팅 환경을 제대로 활용하여 어플리케이션을 구성하는 방법
클라우드 컴퓨팅 유형
https://cloud.google.com/discover/types-of-cloud-computing?hl=ko
- 클라우드 배포 모델 비교
- 클라우드 서비스 유형
- On-Premises IT
- IaaS (Infrastructure as a Service)
- 가상머신, 저장소 및 네트워킹과 같은 기본적인 IT 인프라 구성 요소를 비즈니스에 제공
- PaaS (Platform as a Service)
- 개발 프레임워크, 데이터베이스, 미들웨어 및 애플리케이션 개발 및 배포에 필요한 기타 도구를 포함
- SaaS (Software as a Service)
- 인프라, 미들웨어 및 응용 소프트웨어를 포함한 전체 소프트웨어 스텍을 관리
클라우드 컴퓨팅 도입 시 비용 관점에서 고려사항
- Cloud Service Provider, On-premises 차이점
- 비용, 보안, 서비스 도입 및 확장, 가용성/신뢰성, 중복, 데이터
- Cloud Provider Market Share Trend
- AWS, Microsoft Azure 양대산맥
- Consumption based model (사용량 기반 모델)
- CapEx(Capital Expenditure 자본적 지출)
- OpEx(Operational Expenditure - 운영 지출)
- 클라우드 컴퓨팅은 사용하는 IT 리소스에 대한 비용을 지불하는 운영 지출에 해당함
- Financial Operations(Fin + Ops : FinOps = DevOps 용어에서 착안)
클라우드 컴퓨팅 도입 시 얻을 수 있는 이점
- High availability (고가용성)
- Scalability (확장성)
- Reliability (신뢰성)
- Predictability (예측가능성)
- Security (보안)
- Governance (거버넌스)
- Manageability (관리효율성)