[CS 스터디] 도커 1일차 - 클라우드 컴퓨팅 및 가상화

강아람·2023년 2월 26일
0

도커

목록 보기
1/1
post-thumbnail

클라우드 컴퓨팅


클라우드 컴퓨팅 제공방식

  • 크게 온프레미스 환경과 클라우드 환경으로 나눌 수 있다.
    두 시스템의 가장 큰 차이는 "서비스 제공을 위한 IT 자원을 관리하는 주체" 이다.

  • 온프레미스 환경의 경우 서비스를 공급하는 서비스 제공자가 직접 IT 자원을 관리하는 주체가 된다.

  • 클라우드 시스템의 경우 서비스를 공급하는 서비스 제공자는 IT 자원을 사용할 뿐, 대부분의 IT 자원 관리는 클라우드 서비스 제공자에게 제공받는다.


1) 온프레미스 (On-Premise)

물리적 서버라고도 하며, 회사나 개인이 자체적으로 보유하고 운영하는 서버를 말한다.


특징

  • 확장성이 떨어진다.
    저장 용량이 부족할 경우, 저장 장치를 구입하여 연결해주어야 하는데 이 과정에서 시간이 많이 소모된다. 또한 저장 장치의 규모가 사용되는 용량보다 너무 클 경우 장치 공간의 낭비가 발생한다.

  • 추가 비용이 발생한다.
    서버를 둘 공간, 냉방 시스템, 서버실 관리 비용 등의 추가 비용이 발생한다.



2) 퍼블릭 클라우드 (Public Cloud)

개인이나 기업에서 사용하기 위해 프로비저닝 된 클라우드 인프라이다.
기본적으로 퍼블릭 클라우드 서비스 제공자는 인터넷을 통해 액세스 할 수 있는 가상 환경의 서버를 빌려준다.

에어비앤비나 넷플릭스 등 전 세계적으로 서비스를 빠르게 확장해야 할 때 적합한 모델이다.


특징

  • 비용 절약이 가능하다.
    물리적 서버를 구매하거나 설치, 관리, 유지보수하지 않아도 되기 때문에 비용 절약이 가능하다.

  • 사용자는 서버에 대한 걱정을 하지 않아도 된다.
    서버 운영 및 유지보수 또는 추가 하드웨어 구매에 대해 걱정할 필요 없이 애플리케이션 개발에만 전념하면 된다.



3) 프라이빗 클라우드 (Private Cloud)

퍼블릭 클라우드와 구분되며, 단일 조직에 전용 클라우드 환경을 제공하는 클라우드 컴퓨팅 모델이다.

프라이빗 클라우드는 해당 조직의 방화벽 뒤에서 사내 IT 팀이 내부적으로 운영할 수 있으므로, 각 조직은 컴퓨팅 리소스를 보다 효율적으로 관리할 수 있다.


특징

  • 보안성이 우수하다.
    프라이빗 클라우드는 조직의 인트라넷 또는 사업자의 데이터 센터에 구성되며, 데이터는 모두 방화벽으로 보호된다.



4) 하이브리드 클라우드 (Hybrid Cloud)

네트워크 연결을 통해 하나 이상의 퍼블릭 클라우드 및 프라이빗 클라우드 환경을 결합하여 서로 다른 클라우드 환경 간 데이터 공유가 가능한 클라우드 환경이다.




클라우드 네이티브

클라우드의 이점을 최대로 활용할 수 있도록 애플리케이션을 구축하고 실행하는 방식을 말한다.


CNCF가 정의한 클라우드 네이티브

CNCF
2015년 처음 Cloud Native라는 용어를 사용한 리눅스는 CNCF(Cloud Native Computing Foundation)재단을 만들어 클라우드 네이티브로 전환할 수 있는 오픈소스 기술들을 추진하고 관리한다. 이 재단에는 550개가 넘는 여러 클라우드 공급자와 기술 기업들이 참여하여 운영되고 있는데 클라우드 네이티브에 대한 정의를 아래와 같이 하고 있다.

  • 퍼블릭, 프라이빗, 하이브리드 클라우드 환경에서 확장성 있는 애플리케이션을 만들고 운영할 수 있다.

  • 컨테이너, 서비스 메시, 마이크로서비스, 불변의 인프라스트럭처, 그리고 선언적 API가 전형적인 접근 방식에 해당한다.

  • 회복성이 있고, 관리 편의성을 제공하며, 가시성을 갖는 느슨하게 결합된 시스템을 사용할 수 있다.

  • 견고한 자동화와 함께 사용하면, 엔지니어는 최소한의 수고로 영향력이 크고 예측 가능한 변경을 할 수 있다.


클라우드 네이티브 주요 요소

  1. DevOps
    애플리케이션 개발-운영 간의 협업 프로세스를 자동화하는 것을 말하며 결과적으로 애플리케이션의 개발과 개선 속도를 빠르게 합니다.

  2. CI/CD
    지속적인 통합(Continous Intergration)은 개발자가 작업한 코드를 자동으로 테스트하고 테스트에 통과하면 코드를 통합하여 저장합니다.
    지속적인 배포(Continuos Deployment)는 작업한 코드 및 변경사항들은 테스트를 거쳐 리포지토리에 업로드되고 실 서비스 배포로 릴리즈까지 자동화하는 것을 말합니다.

  3. 컨테이너 기반 인프라
    가상화 기술 중 하나로, 시스템을 가상화하는 것이 아니라 애플리케이션을 구동할 수 있는 컴퓨팅 작업을 패키징하여 가상화한 것입니다.

  4. Microservice
    애플리케이션을 구성하는 서비스들을 독립적인 작은 단위로 분해하여 구축하고 각 구성 요소들을 네트워크로 통신하는 아키텍처로 서비스 안정성과 확장성(scaling)을 지원합니다.



클라우드 서비스 종류

🧱 IaaS : 물리적 자원 제공

고객에게 서버, 네트워크, OS, 스토리지를 가상화하여 제공하고 관리하는 서비스이다. 말 그대로 인프라를 서비스로 제공하는 형태이다.

IaaS의 고객들은 서버와 스토리지를 접근할 수 있지만 사실상 클라우드에 있는 가상 데이터 센터를 통해 리소스를 전달받는다. IaaS는 기존의 데이터센터에서 제공받던 물리적인 자산을 완벽하게 가상화하여 제공하기 때문에 서버 사양의 변경 등 물리적 자산의 수정이 필요한 경우 기존의 방식에 비해 훨씬 빠른 대응이 가능하다.

IaaS의 제공업체는 서버, 하드 드라이브, 네트워킹, 가상화 및 스토리지를 관리하며, 고객은 OS, 미들웨어, 애플리케이션 및 데이터와 같은 자원들을 관리한다.


🔧🔨 PaaS : 소프트웨어 개발을 돕는 플랫폼 제공

고객에게 OS, 미들웨어, 런타임과 같은 소프트웨어 작성을 위한 플랫폼을 가상화하여 제공하고 관리한다.

PaaS의 고객들은 웹을 통해 제공되는 서비스를 이용하여 운영체제, 소프트웨어 업데이트, 저장소 또는 인프라에 대한 관리 없이 소프트웨어 개발에 집중할 수 있다.


💻 SaaS : 고객이 사용하는 소프트웨어 제공

고객을 대신해 소프트웨어와 데이터를 제공하고 관리해주는 서비스이다.

SaaS의 고객들은 개별 컴퓨터에 응용 프로그램을 다운로드하고 설치할 필요가 없다.
서비스 공급 업체는 데이터, 미들웨어, 서버 및 스토리지와 같은 모든 기술적 문제를 관리하기 때문에 고객은 유지 보수 및 자원 간소화에만 힘쓰며 비즈니스에 집중할 수 있다.




가상화



호스트 가상화

Base가 되는 Host OS위에 Guest OS가 구동되는 방식이다.

  • 장점 : 가상의 하드웨어를 에뮬레이팅하기 때문에 호스트 운영체제에 크게 제약사항이 없음
    (에뮬레이팅 : 하나의 시스템이 다른 시스템을 흉내 내도록 하는 것)
  • 단점 : OS위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음

하이퍼가상화

Host OS없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 방식이다.

  • 장점 : 별도의 Host OS가 없기 때문에 오버헤드가 적고, 하드웨어를 직접 제어하기 때문에 효율적으로 리소스를 사용할 수 있음
  • 단점 : 자체적으로 머신에 대한 관리 기능이 없기 때문에 관리를 위한 컴퓨터나 콘솔이 필요함

컨테이너 가상화

호스트 OS 위에 컨테이너 관리 소프트웨어를 설치하여, 논리적으로 컨테이너를 나누어 사용하는 방식이다.

컨테이너는 애플리케이션 동작을 위한 라이브러리와 애플리케이션 등으로 구성되기 때문에 이를 각각 개별 서버처럼 사용할 수 있다.

  • 장점 : 컨테이너 가상화는 오버헤드가 적어 가볍고 빠른 장점이 있음

출처
https://cloudmt.co.kr/?p=3927
https://www.whatap.io/ko/blog/9/
https://tech.cloud.nongshim.co.kr/2018/09/18/%EA%B0%80%EC%83%81%ED%99%94%EC%9D%98-%EC%A2%85%EB%A5%983%EA%B0%80%EC%A7%80/

0개의 댓글