• toc {:toc}

Notice

Computer Networks 글은 경희대학교 소프트웨어융합대학 이성원 교수님의 [컴퓨터 네트워크 CSE302] 수업을 기반으로 정리한 내용입니다.

Cloud Computing

  • 비약적인 네트워크의 발전 2010년부터 시작.

  • 필요한 만큼 CPU, 디스크, 네트워크를 사용하고 사용이 끝났다면 반납하는 형태.

  • 사용한 만큼 비용을 지불하는 것

  • 어딘가에 컴퓨터, 디스크, 네트워크가 있는 것. 연결을 해봐야 존재함을 알 수 있다.

  • 왜 클라우드 컴퓨팅을 제공?

  • 아마존 - 쇼핑몰을 운영하면서 사용하는 자원들 밤에는 잘 사용하지 않는다. 사용하지 않을 때 남는 자원들 다른 사람들에게 제공하자.

  • 벤처 회사 - CPU를 사용하고 싶은데 구매하기에는 얼마나 필요한지 예측도 힘들고 비용도 부족하기 때문에 필요한 만큼 사용하고 사용한 만큼 비용을 지불하기를 원함.

  • 수요와 공급이 맞아 떨어져 사용한다.

  • 하드웨어와 소프트웨어에 대한 신뢰성

  • 20%는 사람의 실수로 인해서 발생하고, 기계에 의해 발생하는 비율은 5%이내이다.

  • 즉, 사람이 직접 서버를 구축하는 방식보다 기계가 구축하는 방식, 제공해주는 방식으로 변화했다.

XaaS

  • 얼마만큼 빌려서 사용할 것인가?

image

  • Infrastructure as a Service (IaaS) : 하드웨어를 제공해준다.
  • Platform as a Service (PaaS) : 개발자들이 원활하게 개발할 수 있도록 라이브러리를 제공
  • Software as a Service (SaaS) : 사용할 수 있는 서비스를 제공

Build Types

  • Public cloud computing
    • 글로벌 IT 기업이 큰 규모의 CPU/디스크를 호스팅하는 것
    • 기업만의 기술을 갖는다.
  • Private cloud computing
    • 개인 회사가 자신만의 클라우드 구축을 해서 스스로 호스팅하는 것
    • 오픈소스가 널리 사용된다.
  • Hybrid
    • 기업에서 자신만의 데이터 센터를 구축하고 있다가 추가적인 공간이 필요한 경우 외부 기업의 서비스를 사용하는 것을 말한다.
    • Private Cloud의 보안과 기술을 갖지만 초과한 데이터를 수요에 따라 Public Cloud에 저장할 수 있다.

Public Cloud Computing Services

  • AWS

  • Microsoft Azure

  • Google : CPU, 디스크, 네트워크, 빅데이터

    • 게임 서버 도구 강화
    • Smart Farming : 딥러닝, 텐서플로우 이용한 농사 자동화.
  • Apple - Differenct Approach

  • 애플의 사업 아이디어는 물건, 기기를 판매하는 것.

  • 클라우드 서비스를 하지 않는다.

  • 클라우드를 이용해서 모든 기기를 동기화시키는 다른 시각으로 클라우드를 사용

  • Single ID - 여러 기기에 대해 하나의 ID를 만들어 공유한다.

Cloud Computing APIs

EC2(Amazon Elastic Compute Cloud)

  • Concept
  • 사용자가 Virtual Computer를 빌려 사용자가 원하는 어플을 구동할 수 있도록 한다.
  • AMI(Amazon Machine Image)를 부팅할 수 있는 웹 서비스를 제공함으로써 확장 가능한 배포를 할 수 있도록 한다.

S3 (Amazon Simple Storage Service)

  • 웹 서비스 인터페이스를 통해서 스토리지를 제공한다.
  • Service-level agreement (SLA) 오류가 나지 않을 확률 매달 99.9% 보장

Thin Client

image

  • 입력과 출력 클라이언트 (크롬 브라우저)
  • 실질적인 처리 논리 서버
  • Pos 시스템 태블릿으로는 입력 출력만, 서버에서 연산해서 제공하는 방식

Container

  • Virtualization tax : 호스트 OS가 존재하고 호스트 OS 위해 VM을 위에 올리면서 OS가 중복적으로 설치하게 되는 문제

  • Guest OS over Host OS : 회사 내에서 사용하는 경우 private cloud computing 호스트 OS 위에 동일한 OS를 다시 올려 중복적인 비용이 발생한다.

  • 호스트의 OS를 공유하여 가볍다.

image

  • Docker : 리눅스에서 사용했던 컨테이너 가상화 방식을 윈도우즈, 맥OS에서 사용할 수 있도록 한다.

  • Kubernetes : 컨테이너를 자동으로 배포, 스케일링, 운영하기 위한 오픈소스

  • Microservice 개념의 장점

  • 기술적 : 100개의 기능이 있다고 한다면 과거 하나의 프로그램, 하나의 언어로 제작하는 방식과 다르게 부분적으로 10개씩 묶어 해당 기능에 알맞는 언어로 따로 제작할 수 있다.

  • 비기술적 : 소규모의 구조로 나누어 각각이 선호하는 언어로 작업하는 방식. 설계와 개발의 패러다임이 변경됐다.

  • 이전에는 하나의 큰 프로그램이기 때문에 통합도 힘들고 유지 보수도 비용이 많이 들었으나, 마이크로서비스를 통해서 컨테이너를 자동화, 통합 등을 하는 DevOps 개념이 나오면서 이점을 갖게 되었다.