카테고리 없음

클라우드

겨르 2024. 11. 12. 15:39

#1. 가상머신

전통적 배포방식

물리적 컴퓨터 한 대에 하나의 OS를 깔고 여러 가지 프로그램을 설치하는 방식. 계정을 나눠 여러명의 사용자가 이용할 수 있음. 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미침

가상화 배포방식

가상머신을 기반으로 배포하는 것을 말함. 가상머신이란 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것을 말함. 계정을 나누는 것이 아니라 한대의 컴퓨터를 가지고 여러개의 OS를 구동할 수 있게 되며 CPU, RAM을 물리적으로 갈아끼는 것이 아니라 설정만으로 이를 수행할 수 있게 됨

중간의 하이퍼바이저는 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해주는 중간계층을 의미하며 이 위에 여러개의 가상머신을 구축할 수 있고 가상머신 위에 OS 그리고 그 위에 앱이 올라가는 형태로 가상머신을 독립적으로 수행할 수 있음.

클라우드는 이러한 가상화라는 기술때문에 한대의 하드웨어로 여러명의 사용자들에게 독립적으로 클라우드 서비스를 할 수 있음.

이렇게 독립적으로 가상머신이 구축되어 서로 전혀 상호작용하지 않으며 한 가상머신 위의 프로그램은 다른 가상머신 위의 프로그램에서 볼 수 없는 형태를 샌드박스되었다 라고도 함. 다만 OS가 공유되지 않기 때문에 가상머신에 일일히 OS를 설치해야한다는 단점이 있음

#2. 오프프레미스, 온프레미스

클라우드

클라우드 서비스는 내가 아닌 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또는 소프트웨어를 말함. 이를 이용하면 자체 인프라나 하드웨어 설치 없이도 애플리케이션과 리소스에 쉽고 싸게 이용이 가능함

이렇게 되면 서버를 직접 구매할 때 고려해야할 전력, 위치, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중할 수 있음. 이를 오프프레미스(off-premise)방식이라 함

온프레미스(on-premise) 방식

이와는 반대로 온프레미스 방식은 기업이나 개인이 자체 시설에서 보유하고 직접 유지관리하는 프라이빗 데이터 센터(IDC)를 의미함

ex) 네이버의 데이터센터 각 : 업계 관계자들이 꼽는 춘천의 최대 장점은 '프리쿨링'을 통한 전기 절약이 가능하다는 점. 프리쿨링은 서버실 온도를 조절하기 위한 냉각수를 전기가 아닌 외부 찬 공기를 이용해 만드는 방식. 산간 지방에 위치한 춘천은 연중 최대 6개월까지 프리쿨링이 가능.

#3. IaaS, PaaS, SaaS

IaaS(Infrastructure-as-a-Service)

인프라형 클라우드 서비스. 클라우드가 단지 인프라만을 제공함. nodejs, MongoDB 등을 개발자가 직접 설치해야하는 대신 특정 서비스에 종속되지 않음

ex) AWS의 EC2, NCP등

PaaS(Platform-as-a-Serviec)

플랫폼형 클라우드 서비스. 클라우드가 플랫폼을 제공함. nodejs, MongoDB 등이 설치되어 있으며 클릭을 통해 해당 서비스를 이용할 수 있음. 모니터링, CI/CD가 제공됨

ex) heroku

SaaS(Software-as-a-Service)

서비스형 클라우드 서비스. 완전한 서비스를 클라우드 서비스로부터 제공받아 사용함

ex) 구글docs - 클라우드를 통해 다른 컴퓨터에서도 쉽게 작업 가능. 다른 사람과 실시간 공유작업 가능.

 

PaaS 와 laas 비교

비교 laas PaaS
  - 유연하며 플랫폼에 종속되지 않음
- 이식성이 높음
- 운영비 효율 낮음
- 유연하지 않으며 플랫폼에 종속됨
- 이식성 낮음
- 운영비 효율 좋음

#4. 컨테이너와 도커

컨테이너

애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 모든 종속성을 패키징하는 소프트웨어의 표준 단위.

컨테이너는 OS를 공유하기 때문에 빠르고, 경량화되어있으며 격리성되 훌륭함.

그러나 OS에 문제가 생기면 다른 앱에도 영향을 미침

도커

도커는 컨테이너에 필요한 기능을 거의 모두 제공하는 플랫폼

애플리케이션 구동에 필요한 환경설정관련 절차를 도커파일에 작성하고 그 후 빌드를 하면 도커이미지가 생성되고 도커이미지를 실행시키면 도커컨테이너가 만들어짐. 그 후 도커컨테이너에 설정된 프로그램, 데이터 등이 실제 컴퓨팅 자원 위에서 돌아가게 됨.

 

즉, 도커는 다음과 같은 과정을 거쳐 컨테이너를 만듦

1. 도커파일 : 패키지, 환경변수 설정 등 기록한 파일 -> 빌드 -> 도커이미지로 변환

2. 도커이미지 : 컨테이너 실행에 필요한 파일과 설정값, 데이터 등을 포함된 상태값이며 불변. 하나의 이미지에서 여러개의 컨테이너를 생성할 수 있으며 컨테이너의 상태와는 무관하게 이미지는 그대로 존재함

3. 도커컨테이너 : 컨테이너가 실행시키면 도커이미지에 설정된 프로그램, 데이터 등이 실제 컴퓨팅 자원과 연결됨

도커의 활용사례

이렇게 만들어지는 도커컨테이너를 기반으로 클라우드에 컨테이너 배포방식으로 서비스가 운영됨.

2014년 구글 발표자료에 따르면 구글에서 만드는 서비스들 대부분이 도커컨테이너에 기반하여 쓰이고 있으며 매주 약 20억개의 서비스가 운영된다 함.

 

출처_인프런 CS 지식의 정석