2 분 소요

범위

1부 ThePlaning

1장 클라우드 컴퓨팅이란 무엇인가?

내용

요약

  • 클라우드의 핵심은 서비스로 제공돼야 한다는 것
  • 내가 제공할 수 있는 어떤 것을 API로 노출 시키는 것이 클라우트 컴퓨팅이며, 지속적으로 유지할 수 있게 하는 것을 목표로 한다.

클라우드 컴퓨팅이란 무엇인가?

클라우드의 태동

존 매카시 교수(MIT)는 클라우드 개념을 다음과 같이 이야기했다.

  • 네트워킹 서버 프로그램
  • ASP(Applied Service Proverder): API/웹 등으로 서비스나 소프트웨어를 직접 제공하는 비즈니스 모델
  • 유틸리티 컴퓨팅: 컴퓨터 리소스를 전기나 수도처럼 필요한 만큼 사용 후 비용지불
  • 클라우드 컴퓨팅

클라우드 컴퓨팅이란 무엇일까?

클라우드 컴퓨팅의 특징

  • 탄력성: 리소스를 필요한 만큼 동적으로 확장하거나 줄일 수 있는 특징(오토 스케일)
  • 사용량 측정가능: 사용자별로 리소스 측정
  • 온디맨스 셀프서비스: 관리자가 허용한 범위 내에서 자유롭게 컴퓨팅 리소스를 만들고 사용
  • 유비쿼터스 네트워크: 언제 어디서든 네트워크를 통해 접근 가능
  • 멀티 테넌시: 물리적으로 한개의 컴퓨팅 리소스여도 가상화 및 격리 기술을 사용해 독립된 컴퓨팅 리소스 사용가능

클라우드를 구축하는데 온프레미스 환경이 트래픽과 부하를 예측할 수 있어 적합 할 수 있다.

클라우드의 특징은 모든 리소스는 비용이 든다는 것

IaaS, PaaS, SaaS

  • ms 개념도 (지원범위를 표기하였음)
On Premiss IassS PassS Saas
      애플리케이션
      데이터
    런타임 런타임
    미들웨어 미들웨어
    OS OS
  가상화 가상화 가상화
  서버 서버 서버
  스토리지 스토리지 스토리지
  네트워크 네트워크 네트워크
  • IaaS: 사용자의 목적에 따라 자신의 컴퓨팅 서비스에 필요한 기본적인 리소스를 만들 수 있다. 제공자는 이 리소스가 어디에 사용될지는 알 수 없다.
  • PaaS: 사용자가 자신의 프레임워크를 확장시키기 위해서 사용하는 서비스다. 제공자는 이 프레임워크의 요구사항을 만족시키는 정도만 제공하면 된다. 하지만 전용 프레임워크가 없으면 PasaS가 아니다. 컨테이너 오케스트레이터는 인프라 자동화에 더 가까운 툴이다.

  • SaaS: 사용자는 데이터만 제공하며 제공자는 이 데이터를 가공해서 자신들이 원하는 형태로만 제공한다.

소프트웨어 개발에서 흔이 사용하는 인프라를 만들게 해주면 IaaS, 플랫폼을 만들수 있게 해주면 PaaS, 소프트웨어를 만들 수 있게 해주면 SaaS이다.

클라우드의 실제적인 정의

  • 프로그램 가능한 리소스 관리
    • Programmable: 프로그램으로 조절이 가능하여야 한다. 클라우드 공급자는 사용자로부터 요청을 처리하기 위해 API를 만들고 스펙을 정의한 다음 사용자가 사용할 수 있도록 SDK또는 라이브러리를 제공하여야 한다. (오픈스택 오픈소스)
    • Resource: 리소스는 데이터 처리(계산, 전송, 저장)에 필요한 리소스를 의미한다. 클라우드 컴퓨팅에서 리소스는 대게 가상머신, 컨테이너라고 간주 할 수 있다.
      • 독립적일 것: 사용자의 리소스가 다른 사용자의 컴퓨팅 리소스에 영향을 주면 안된다. 이러한 특징을 멀티 테넌트또는 멀티 프로젝트 라 한다
      • 측정가능 할 것: 모든 리소스( cpu/network/disk io/성능)는 측정이 가능하여야 한다. 클라우드 제공자는 원격에서 리소스를 측정한다. 이러한 방법을 원격측정이라고 부른다. 원격측정에는 기본적으로 빅데이터, 머신러닝, AI에서 사용되는 기술이 모두 동원된다.
    • Management: 클라우드 공급자는 API로 측정가능하고 독립적인 리소스를 조절할 수 있게 해주고, 클라우드 사용자는 SDK 를 통해 리소스를 생성/삭제/변경등의 관리가 가능하여야 한다.
  • Programmable Resource Life Cycle management
    • 기존 인스턴스 기반에서는 사용성이 떨어지며, 단순히 인스턴스를 추가/삭제 하는 방법에 그쳤었다.
    • 컨테이너 오케스트레이터는 이미지를 통해 인스턴스를 생성 후 정보를 업데이트 하는 일을 오케스트레이터가 담당한다. 이러한 기능을 서비스 디스커버리라 한다.
  • Programmable Service Management
    • 컨테이너는 리소스와 애플리케이션을 결합 한 형태라 서비스를 다음과 같이 풀었다.
      • DNS as a Service: 사용자가 IP에 대해서 자신이 원하는 DNS레코드를 등록할 수 있게 API로 제공. DNS as a Service는 레코드 사용률과 과금정보가 사용자별로 계산
      • 로드벨런서 as a Service(L4): 로드벨런서를 API를 통해 만들 수 있다. 로드벨런서의 사용량은 자동으로 텔레메트릭 서비스와 연결돼 로드 밸런서 자체의 부하 상황, 커넥션 수 등의 상태를 모니터링 할 수 있다.
      • 로드밸런서 as a Service(L7): URL별로 접근할 수 있는 L7로드밸런서 제공

마치며

카카오 클라우드 개발자 공고모집에 추천책이 있어 구매하였습니다. 클라우드에 관심이 있다면 꼭 읽어볼 필요가 있어 TIL을 시작하게 되었습니다😤

최근 CKA도 따서 동기도 부여되고 클라우드 관련된 내용을 공부하는게 재미있네요 :)

댓글남기기