CS지식
클라우드
띵지니
2023. 8. 31. 22:04
가상머신
- 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것(클라우드의 기반 기술)
- 전통적 배포방식
물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러 가지 프로그램을 설치하는 방식
계정을 나눠 여러 명의 사용자가 이용할 수 있도록 할 수 있지만 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미침 - 가상화 배포방식
가상머신을 기반으로 배포하는 것
계정을 나누는 것이 아니라 한대의 컴퓨터를 가지고 여러 개의 OS를 구동할 수 있게 되며
CPU, RAM을 물리적으로 갈아끼는 것이 아니라 설정만으로 이를 수행할 수 있게 됨
- 중간에 있는 Hypervisor는 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해 주는 중간 계층을 의미하며
이 위에 여러개의 가상머신을 구축할 수 있고 가상머신 위에 OS,
그 위에 앱이 올라가는 형태로 가상머신을 독립적으로 수행 가능 - 클라우드는 이러한 가상화라는 기술 때문에 한대의 하드웨어로 여러 명의 사용자들에게 독립적으로 클라우드 서비스 가능
- 독립적으로 가상머신이 구축되어 서로 전혀 상호작용하지 않으며
한 가상머신위의 프로그램은 다른 가상머신 위의 프로그램에서 볼 수 없는 형태를 샌드박스되었다고도 표현 - OS가 공유가 안되기 때문에 가상머신에 일일히 OS를 설치해야 하는 단점이 있음
오프프레미스(off-premise) 방식
- 내가 아닌 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또는 소프트웨어를 말함
- 자체 인프라나 하드웨어 설치 없이도 앱과 리소스에 쉽고 싸게 이용 가능
- 위 그림처럼 되면 서버를 직접 구매할 때 고려해야 할 전력, 위치, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중 가능
온프레미스(on-premis) 방식
- 기업이나 개인이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터(IDC)를 의미
- 네트워크 선까는 것부터 시작해 서버, 데이터베이스 설치 등을 하는 것
IaaS(Infrastructure-as-a-Service)
- 인프라형 클라우드서비스로 클라우드가 단지 인프라를 제공
- node.js, MongoDB 등을 개발자가 직접 설치해야 하는 대신 특정 서비스에 종속되지 않음(빈방이라고 생각)
- ex) AWS의 EC2, NCP 등
Paas(Platform-as-a-Service)
- 플랫폼형 클라우드 서비스로 클라우드가 플랫폼을 제공
- Node.js, MongoDB 등이 설치되어있으며 그저 클릭을 통해 해당 서비스를 이용할 수 있음(빌트인 방이라고 생각)
- 모니터링, CI/CD가 제공
- ex) heroku
SaaS(Software-as-a-Service)
- 서비스형 클라우드서비스로 완전한 서비스를 클라우드서비스로부터 제공받아 사용
- ex) 구글DOCS - 클라우드를 통해 다른 컴퓨터에서도 쉽게 작업, 다른 사람과의 실시간 공유작업이 가능
Paas와 IaaS 비교
PaaS | IaaS | |
---|---|---|
유연성 | 유연하지 않으며 플랫폼에 종속 | 유연하며 플랫폼에 종속되지 않음 |
이식성 | 낮음 | 높음 |
운영비 | 효율 좋음 | 효율 낮음 |
컨테이너
- 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록
코드와 모든 종속성을 패키징 하는 소프트웨어의 표준 단위 - OS를 공유하기 때문에 빠르고, 경량화되어 있으며 격리성도 훌륭
- OS에 문제가 생기면 다른 앱에도 영향을 미칠 수 있음
도커
- 컨테이너 필요한 기능을 거의 모두 제공하는 플랫폼
- 애플리케이션 구동에 필요한 환경설정관련 절차를 도커파일에 작성하고
그 후 빌드를 하면 도커이미지가 생성이 되고 도커이미지를 실행시키면 도커컨테이너가 만들어지고
그 후 도커컨테이너에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원 위에서 돌아가게 됨 - 컨테이너 만드는 과정
- 도커파일 : 패키지, 환경변수설정 등을 기록한 파일, 이를 빌드해 도커이미지로 변환
- 도커이미지 : 컨테이너 실행에 필요한 파일과 설정값, 데이터 등을 포함된 상태값이며 불변함
하나의 이미지에서 여러개의 컨테이너를 생성할 수 있으며 컨테이너의 상태와는 무관하게 이미지는 그대로 존재
ex) 1대의 서버에 환경설정해야 한다면 미리 만들어 놓은 이미지를 다운로드하여서 이를 통해 컨테이너만 만들면 끝 - 도커컨테이너 : 컨테이너가 실행시키면 도커이미지에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원과 연결