개발 알다가도 모르겠네요

클라우드 컴퓨팅 관련 기술 본문

클라우드컴퓨팅

클라우드 컴퓨팅 관련 기술

이재빵 2022. 9. 5. 15:55
728x90

가상화 기술

  • 하드웨어 리소스를 논리적으로 다룰 수 있게 만드는 메커니즘
  • 하나의 물리 서버 -> 여러 개의 서버 환경 구축
  • 여러 대의 물리적 서버 -> 하나의 서버 환경으로 통합
  • 서버 가상화, 네트워크 가상화, 스토리지 가상화
  • 공간 절약, 비용 절감
  • 하나의 물리적 서버 리소스에 여러 개의 서버 환경을 할당해
    각각의 환경에 OS와 application을 실행할 수 있게 함.

 

하이퍼바이저 형

  • 하나의 물리 서버 하드웨어 -> 하이퍼바이저라는 가상화 소프트웨어 -> guest OS (Linux, Winodws, ...)
  • VMware vSphere, Hyper-V, Xen, KVM

 

 

컨테이너 형

  • 하나의 OS 환경에서 application을 실행하기 위한 영역 (사용자 공간 == 컨테이너)을 여러 개로 나누어 사용
  • 컨테이너는 하나의 process
  • 컨테이너는 application 실행 환경을 가상화한 것
  • 다른 클라우드 서비스로 옮기기 쉬움
  • 빠르게 시작, 정지 가능, 성능 저하 거의 없음
  • 1대의 물리 서버에 많은 수의 컨테이너 탑재 가능
  • Docker

 

네트워크 가상화 기술

네트워크를 물리적 구성에 얽매이지 않게 하는 유연성 필요

 

VLAN (virtual LAN)

  • 하나의 물리적 network -> 여러 개의 논리적 network
  • 논리적으로 분할된 네트워크는 라우터를 거쳐야 통신 가능 -> 조직 단위로 네트워크를 나누어 조직 안에 한정된 데이터를 전송.

 

VPN (virtual private network)

  • 불특정 다수가 이용하는 네트워크에 가상으로 전용선과 같은 사설망을 연결하는 기술
  • IPsec protocol: on-premise system이 인터넷을 통해 VPN에 연결할 때 사용

 

 

분산처리 기술

대량의 빅데이터를 여러 서버에 분산하여 동시에 병렬로 빠르고 효율적으로 처리하는 기술

 

클러스터링: 여러 개의 서버를 결합하여 하나의 컴퓨터로 보이게 함

분산처리 구현 소프트웨어

  • Apache Hadoop
  • 1대의 master server와 여러 대의 slave server
  • 대용량 데이터 일괄처리

Apache Spark

  • 메모리 안에서 대량 데이터를 병렬 분산 처리
  • 기계학습 같은 데이터를 반복하는 고급 데이터 분석을 빠르게 수행

 

데이터베이스 기술

대량의 데이터를 분산시켜 고속으로 처리하는 분산 데이터베이스

RDB (relational database)

NoSQL (Not only SQL)

  • key-value 형 (JSON)
  • column 지향형
  • document 지향형
  • graph 지향형

 

스토리지 기술

Block storage

  • 일정한 크기의 block으로 나눈 logical volume을 block 단위로 액세스
  • 빠른 데이터 전송이 가능
  • 데이터베이스 서버

 

File storage

  • 파일 단위로 저장
  • 파일 공유 기능
  • NFS (network file system), NAS (network attached storage)
  • 파일 서버

 

Object storage

  • 데이터를 객체 단위로 처리
  • OS, file system에 독립적으로 데이터 저장
  • HTTP 프로토콜 기반의 REST 형식의 API 사용
  • 갱신 빈도가 적은 데이터, 대량의 데이터 저장/장기 보존

 

 

API

프로그램이 가진 기능이나 리소스를 외부 프로그램이 호출하여 이용하기 위한 명령이나 함수, 데이터 형식 등을 정한 규약

API를 통해 외부 프로그램으로 클라우드 서비스 조작

  • command line interface (CLI)
  • software development kit (SDK)
  • API gateway: 다양한 서비스의 기능을 중앙에서 관리할 수 있는 것

 

클라우드 네이티브 아키텍처

하나의 application을 작은 서비스의 집합체로 구현하는 방법

  • 컴포넌트별 개발 -> 개발의 신속성
  • 컴포넌트의 추가와 교체 -> 필요시 빠르게 대응
  • application 개발: 클라우드 서비스의 컴포넌트를 조합 + API를 통해 연계

서버리스 아키텍처

  • Fully managed cloud service
  • 사용자는 서버의 존재를 전혀 의식하지 않고 응용 프로그램을 실행
  • 클라우드 서비스의 각 컴포넌트와 연계, 개별 기능을 조합하여 서비스를 개발하는 방향

 

 

 

DevOps (개발의 운영과 통합)

Development 및 Operation이 함께 협력하여, 완성도 높은 소프트웨어를 더욱 신속하게 만들어내는 문화

개발과 운영을 통합

  • 개발 방법: 서비스 전체 그림 안에서 결정된 부분을 먼저 개발, 배포하는 스피드 중시형
  • 개발 입장
    • IaaS 클라우드 환경의 보급으로 애플리케이션 개발 운영환경을 지원하는 PaaS 서비스가 완비됨.
    • 기업의 서비스 제공 범위가 넓어지고 있음
  • 운영 입장
    • 운영 담당자가 서버 설정
    • 자동화

'클라우드컴퓨팅' 카테고리의 다른 글

AWS Service Storage  (0) 2022.10.05
AWS Identity and Access Management (IAM)  (0) 2022.10.03
AWS Service Computing  (0) 2022.09.30
AWS Global Infra  (0) 2022.09.27
클라우드 컴퓨팅이란  (0) 2022.09.05