안녕하세요!
오늘은 클라우드에서 제공하는 서비스에 대하여 알아보도록 하겠습니다.
클라우드 기술은 대표적으로 가상화기술, 컨테이너, 분산처리 데이터베이스 기술, 스토리지 기술, 오픈 소스 클라우드 기반 소프트 웨어, 보안 등의 기술이 있습니다.
이번 포스팅에서는 앞서 언급한 기술들 중 가상화, 컨테이너, 분산처리, 데이터베이스, 스토리지 기술에 대하여 알아보도록 하겠습니다.
1. 서버 가상화 기술
서버 가상화 기술은 하나의 물리적 서버 리소스에 여러 개의 서버 환경을 할당하고 각각의 환경에 OS와 애플리케이션을 실행할 수 있게 만들어 줍니다.
물리 서버는 리소스가 남는 경우가 있는데 개별적으로 운영하는 물리 서버들을 가상화하여 운영하면 서버 리소스를 최대한으로 활용할 수 있습니다.
가상화 기술을 사용하면 물리 서버가 줄어들기에 공간과 비용 절감에 도움이 됩니다.
가상화 기술의 장점
- 물리서버의 수가 줄어들어 공간과 비용을 절약
- 가상 서버 중 하나가 바이러스에 노출되어도 다른 서버에는 영향을 미치지 않음
서버 가상화 기술 3가지
- 하이퍼바이저 형
- 호스트 OS형
- 컨테이너 형
하이퍼바이저 형의 장점과 단점
장점 | 단점 |
가상 서버마다 OS를 선택할 수 있다. | 가상 서버마다 OS가 필요하므로 CPU, 메모리, 스토리지 등의 하드 웨어 리소스의 소모가 많다. |
가상 서버들이 완전히 분리된다. | 가상 서버의 부팅에 시간이 걸린다. |
하나의 가상 서버가 사이버 공격알 받아도 다른 가상 서버에 피해를 미치지 못한다. |
- 대표제품 : VMware vSphere, Xen Server, Hyper-V
2. 컨테이너 기술
컨테이너 기술이란 하나의 OS환경에서 애플리케이션의 실행 영역을 여러개로 나누어 사용하는 기술입니다.
나누어진 영역을 컨테이너라 부르며, 각각의 컨테이너는 서로에게 영향을 주지 않습니다.
서버 가상화는 하드웨어 환경을 통째로 가상화하는 것
컨테이너는 애플리케이션의 실행 환경을 가상화 하는것
컨테이너는 다양한 종류의 OS를 지원하는 템플릿으로 컨테이너를 만들 수 있어, 하나의 호스트 OS에서 멀티 OS환경을 구현할 수 있습니다.
컨테이너 기술의 장점
장점 | 단점 |
복제와 이식성이 뛰어남 | 호스트 OS와 컨테이너는 커널을 공유한다. 그래서 Linux 커널에서 Windows 컨테이너를 동작하는것은 불가능 |
하나의 호스트 OS에서 여러 개의 OS를 동시에 사용할 수 있다. | 하나의 호스트OS가 여러 개의 컨테이너를 다루니 한 컨테이너가 사이버 공격을 받으면 다른 컨테이너도 위험에 노출 |
가상화 환경위 별도 OS를 동작할 필요가 없으니 개별 컨테이너가 요구하는 하드웨어 리소스가 적으면 부팅이 빠르다. |
- 대표제품 : Docker
3. 분산 처리 기술
클라우드가 등장하기 이전에는 테라바이트, 페타바이트 급 대용량 데이터를 처리하려면 고속 CPU와 대용량 메모리가 탑재된 서버가 필요했습니다.
하지만 현재는 분산처리 기술 `데이터를 여러 개의 서버에 나누어 병렬로 처리` 및 클라우드 서비스를 이용해서 대량의 데이터를 고속으로 처리하는 것이 가능하게 되었습니다.
대량의 테이터를 분산처리하는 장치로서 여러 개의 서버를 결합하여 하나의 컴퓨터로 보이게 만드는 기술을 클러스터링이라고 합니다.
분산처리 기술의 장점
- 데이터를 여러 서버에 나누어 병렬로 처리
- 가격 부담을 줄임
- 고속으로 대량의 데이터 처리가 가능
- 클러스터링 하여 일부 서버에 장애가 발생해도 나머지 서버에서 자동으로 작업을 할당 처리 가능
분산처리의 개념
MapReduce라는 메커니즘으로 가장 유명하며, Map처리와 Reduce처리를 여러 개의 서버에서 동시에 실행해서 속도를 높입니다.
분산 처리를 구현하는 소프트웨어
분산처리를 구현하는 대표적인 소프트웨어는 오픈소스로 공개된 `Apache Hadoop`와 `Apache Spark`가 있습니다.
Apache Hadoop | Apache Spark |
1대의 마스터 서버와 여러개의 슬레이브 서버 | 메모리 안에서 대용량 데이터를 병렬처리 |
처리 능력은 슬레이브 서버의 대수에 비례 | 속도가 빠름 |
대용량 데이터의 일괄처리가 적합 | 기계학습과 같은 고급데이터 분석 적합 |
처리 결과를 디스크에 씀 | 테라바이트 이상의 데이터는 메모리에 적재할 수 없으니 부적합 |
같은 데이터를 반복해서 쓰기에는 시간이 걸림 |
하둡은 대용량의 데이터의 일괄처리에 적합하고, 스파크는 기계학습과 같은 데이터를 반복하는 고급 데이터 분석을 빠르게 수행하는데 적합합니다.
각각의 특징에 맞게 상호 보완하면서 사용할 수 있습니다.
4. 데이터베이스 기술
클라우드에서는 RDB(Relational DataBase:관계형 데이터베이스)와 NoSQL 등의 데이터베이스 서비스를 제공합니다.
RDB(Relational Database)
RDB는 여러 개의 데이터를 행과 열이 있는 표 형식으로 표현하여, 복잡한 데이터의 관계를 처리할 수 있도록 만든 데이터 베이스입니다.
RDB는 RDBMS(Relational Database Management System:관계형 데이터베이스 관리 시스템)을 전용 소프트웨어로 사용합니다.
NoSQL(Not only SQL)
NoSQL은 비관계형 데이터 베이스를 말합니다.
NoSQL은 자료구조(어떤 형태로 데이터를 저장하는가)의 차이에 따라 키 밸류 형, 컬럼 지향형, 문서 지향형, 그래프형의 4가지로 분류됩니다.
RDB와 NoSQL
RDB | NoSQL |
데이터를 열과 행이 있는 표로 표현 | 키 밸류, 컬럼 지향, 문서 지향, 그래프형 4가지 |
SQL을 사용 | 데이터 조작언어가 제품마다 다름 |
데이터의 일관성을 엄격하게 유지 | 일시적으로 데이터의 일관성이 없는 상태가 있음(결과 무결성) |
데이터베이스 처리 능력을 향상 시키기 위해 스케일업(하드웨어 기능 강화)필수 | 데이터베이스 처리 능력을 높이려면 스케일 아웃(서버 대수 증가) 필수 |
Oracle Database, MySQL, Microsoft SQL Server, PostrageSQL | MongoDB, Hbase, Redis, Neo4j |
5. 스토리지 기술
스토리지는 데이터와 프로그램을 저장하는 기록 장치입니다. 클라우드에서는 블록 스토리지, 파일 스토리지, 오브젝트 스토리지 3가지의 액세스 방식을 제공합니다.
블록스토리지
블록스토리지는 일정한 크기의 블록으로 나뉜 스토리지의 논리 볼륨을 블록 단위로 액세스 할 수 있는 스토리지입니다.
서버와 스토리지가 데이터 교환할 때의 오버헤드가 적어서, 빠른 데이터 전송이 가능합니다.
낮은 레이턴시가 요구되는 데이터베이스 용도로 사용되고 있습니다.
파일스토리지
파일 스토리지는 파일을 그대로 읽고 쓸 수 있으며 공유할 수 있는 스토리지입니다.
데이터처리는 Windows OS에서 사용하는 SMB(Server MessageBlock), CIFS(Common Intternet FileSystem)
Linux와 UNIX에서 사용하는 NFS(Network FIleSystem)등의 파일 공유 프로토콜을 사용하여 파일 단위로 이루어집니다.
NAS(Network Attached Storage)도 파일 스토리지로 분류하며, 주로 파일서버로 이용하며, 파일의 접근, 제어, 파일 속성 정보를 관리하기 쉽다는 장점이 있습니다.
오브젝트스토리지
오브젝트 스토리지는 데이터를 객체 단위로 처리합니다.
OS나 파일 시스템에 의존하지 않으면서도 데이터를 저장하고 오브젝트에 액세스 할 수 있는 특징이 있습니다.
오브젝트 스토리지는 HTTP 프로토코 기반의 REST(Representational State Transfer) 형식의 API를 사용합니다.
쉽게 용량을 늘릴 수 있으며, 데이터 크기와 저장할 수 있는 데이터 수의 제한이 없습니다.
갱신 빈도가 적은 데이터나 대량의 데이터를 장기보존하는 용도로 이용되고 있습니다.
오늘은 클라우드에서 제공하는 서비스 기술들에 대하여 알아보았습니다.
감사합니다!
'CLOUD(클라우드)' 카테고리의 다른 글
클라우드란? (0) | 2023.06.28 |
---|