IaaS와 PaaS
- IaaS : 클라우드에서 제공하는 Infrastructure 리소스를 이용
- PaaS : 애플리케이션이 운영하기 위한 환경들도 클라우드에서 모두 제공
컨테이너 모델
- 애플리케이션을 구축할 때, 과거에는 각각의 물리적 서버에 애플리케이션 빌드하기 때문에 긴 시간 소요, 자원의 효율성↓
→ 현재는 VM의 발전으로, 하나의 하드웨어에서 여러 개의 OS 및 애플리케이션 실행 가능
- 하나의 VM에서 여러 개의 애플리케이션을 실행하고 유지하는 것은 쉽지 않음
→ 그러므로 애플리케이션 간에 영향을 미치지 않도록 독립적인 환경이 필요하게 되어 하나의 VM에 하나의 애플리케이션 설치
→ 하지만 애플리케이션이 무거워진다는 것과 확장성 부분에서 문제 발생
- 그리하여 무거운 OS 영역은 공유를 하고,
각각의 애플리케이션이 Dependencies를 포함해서 프로세스를 구동하기 위해 서로 독립된 공간을 갖는 컨테이너 모델 등장
→ 컨테이너를 구동하기 위해서는 OS 위에 컨테이너 런타임이 필요 예) Docker 도커
→ 기존의 가상화보다 가볍기 때문에 애플리케이션의 빠른 배포가 가능해지고
Dependencies를 포함하고 있어 다른 환경에서도 동일한 애플리케이션의 구동을 보장하게 됨
IaaS의 유연성과 PaaS의 확장성을 제공하는 컨테이너
- 컨테이너가 제공하는 사항
1) 하드웨어 및 OS의 추상화 레이어를 두고 각각의 Dependencies를 포함해서 애플리케이션이 독립되도록 함
2) 격리된 파티션으로 나눈 파일 시스템, RAM, 네트워킹에 대한 구성 가능한 액세스를 제공하는 보이지 않는 상자
3) 빠른 시작 (단 몇 차례의 시스템 호출이면 가능)
구성이 가능하며 독립적이고 이식성이 우수한 컨테이너
- 컨테이너의 기능
1) 자체 하드웨어, OS, 소프트웨어 스택 구성 정의
2) OS 및 하드웨어를 블랙박스처럼 이용하여 개발에서 스테이징, 프로덕션에 이르기까지
또는 노트북에서 클라우드로 마이그레이션하는 과정에서 아무 것도 변경하거나 다시 빌드할 필요가 없음
컨테이너 런타임만 지원가능한 곳이라면 그대로 컨테이너 이미지만 배포하면 애플리케이션을 바로 시작할 수 있음
Kubernetes 및 Kubernetes Engine
- Google에서는 모든 것이 컨테이너에서 실행됨 - 매주 평균 40억 개의 새로운 컨테이너를 생성
- 여러 호스트의 많은 컨테이너를 쉽게 조정하는 툴인 Kubernetes
컨테이너 생성 과정 및 주요 개념
- 애플리케이션 소스가 Dependencies를 포함해서 Docker, Cloud Build 등을 사용해 컨테이너로 빌드
- 컨테이너 이미지가 생성됨
- 빌드된 컨테이너 이미지를 다양한 환경에서 사용하기 위해 Docker Hub, Cloud Container Registry 등에 이미지를 저장해 둠
- 그리고 사용 시에 컨테이너 이미지를 내려 받아서 사용
- Pod들이 Node에 배포된 모습 확인 가능 (즉, 애플리케이션이 컨테이너화 되어 Pod라는 단위로 배포된 머신들)
- 특정 머신에 컨테이너를 배포해주고 라이프사이클을 관리해주는 역할을 하는 것이 쿠버네티스
- 쿠버네티스에 컨테이너를 올릴 때는 밀접한 관계가 있는 컨테이너를 한 개 이상 묶은 Pod이라는 단위로 배포
- 마스터는 애플리케이션이 컨테이너화 되어 Pod라는 단위로 배포된 머신들을 관리하며
서비스의 경우 Pod들이 서로 통신을 할 수 있도록 해주는 역할
Kubernetes 관련 다양한 제품
- Kubernetes : 구글이 개발 후 오픈소스화
- Google Kubernetes Engine : 구글에서 오픈소스 쿠버네티스보다 관리적인 요소를 줄여줄 수 있도록 함 (마스터 영역)
- Istio : 쿠버네티스 위에 올라간 서비스들 간의 커뮤니케이션, 트래픽 관리를 도와줌
- Anthios : GKE, 온프레미스 시스템에 있는 쿠버네티스 클러스터, 다른 클라우드에 올라가 있는 쿠버네티스들을 함께 관리해 줌
'Cloud > GCP' 카테고리의 다른 글
[Cloud OnBoard] 빅데이터와 머신러닝 (0) | 2022.01.27 |
---|---|
[Cloud OnBoard] 앱 개발, 배포 및 모니터링 (0) | 2022.01.26 |
[Cloud OnBoard] 스토리지 (0) | 2022.01.25 |
[Cloud OnBoard] 가상머신 (0) | 2022.01.25 |
[Cloud OnBoard] Google Cloud 소개 (0) | 2022.01.25 |