본문 바로가기

EDU

13차시. 빅데이터 아키텍처 기획하기

차시목표
1. 데이터 시각화의 정의를 알고 시각화 시장의 동향을 살펴본다
2. 대표적인 그래프 데이터베이스를 살펴보고 데이터 그래프의 특징을 이해한다
주요내용
1. 시각화 데이터 학습하기
2. 그래프 데이터베이스 학습하기
3. 그래프 데이터 학습하기
4. 그래프 데이터베이스 학습하기
5. 대표적인 그래프 데이터베이스 학습하기
6. 데이터 시각화 기술의 동향

 

■ 빅데이터 아키텍처 기획하기

1. 아키텍처 요구 사항의 정의

- 요구 사항이란, 특정 문제를 해결하기 위해 시스템의 개발 또는 구축을 통해 외부로 드러나야 하는 속성 또는 수행의 결과물이 만족해야 할 품질을 의미합니다. 

아키텍처 요구 사항의 정의는 크게 기능 요구 사항의 정의와 비기능 요구 사항의 정의로 나눌수 있습니다. 

 

가. 요구 사항의 정의 절차 고객으로부터 요구 사항을 도출하고 분석하여 문서로 명세화한 뒤에 고객 확인 작업을 거쳐 점차 구체화하는 과정을 거치게 됩니다. 

 

● 기능 요구 사항

- 기능 요구 사항이란, 정보 시스템의 구축을 통해 적용되는 업무 프로세스를 파악하여 현행 프로세스의 문제점과 불편함을 개선합니다. 

이후 효율적인 업무가 가능하도록 지원하기 위해 필요한 기능을 정의한 것입니다. 

 

다. 비기능 요구 사항 비기능 요구 사항은 기능 요구 사항을 제외한 요구 사항의 통칭입니다. 

성능, 보안, 사용자 편의성 등 기능 요구 사항의 업무 처리를 위한 프로세스처럼 가시적으로 나타나지는 않지만, 구축 시스템의 품질과 밀접한 관련이 있습니다. 

 

2. 아키텍처의 정의

- 요구 사항을 구현하기 위한 기반 기술을 정의하는 과정입니다.

요구 사항을 반영하여 하드웨어 아키텍처와 소프트웨어 아키택처를 정의합니다. 

이는 정보 시스템의 개발, 테스트, 이관을 위한 기술적 기반이 됩니다. 

 

가. 하드웨어 아키텍처의 정의 일반적으로

TA(Technical Architect)라고 불리는 영역이며 서버, 스토리지, 네트워크 등의 하드웨어 인프라 구성에 관한 사항을 정의합니다.
목표 성능, 가용성을 고려하여 하드웨어 인프라 장비의 규격을 결정합니다.

또 장비의 배치 및 환경 구성을 결정합니다.

 

● 소프트웨어 아키텍처의 정의

- 전체 시스템을 이루는 서브시스템 또는 모듈의 정의 및 서브시스템 간의 관계를 파악하고 정의하는 작업입니다. 

소프트웨어 아키텍처는 프로그램과 시스템의 컴포넌트, 컴포넌트 간의 상호 관계의 구조입니다. 

이들을 설계하고 전개하기 위한 지침과 원리를 설명합니다. 

 

3. 인프라의 설계

- 아키텍처 요구 사항이 확정되면 해당 요구 사항을 반영한 인프라의 상세 설계를 수행한다. 

- 인프라를 설계할 때는 장비의 규격, 수량, 용량 등을 고려하여 구성한다. 

- 소프트웨어와 하드웨어 구성에 대한 지속적인 검토를 수행하고 점진적으로 설계에 반영할 수 있도록 한다. 

 

● 하드웨어의 설계

- 서버, 스토리지, 네트워크 등의 물리적인 장비에 대한 설계를 수행합니다. 장비의 용량, 규격, 수량을 결정하고 시스템의 배치를 구성하는 과정입니다. 

 

나. 소프트웨어의 설계 서비스의 구현을 위한 소프트웨어 측면의 기반 기술을 설계합니다. 

프레임워크, 패키지 등의 응용서비스를 제공하기 위한 환경을 정의합니다. 

 

4. 클라우드 컴퓨팅

- 가상화 기술을 활용하여 IT 자원을 서비스로 제공하는 컴퓨팅 기술입니다. 

시스템 리소스를 필요한 만큼 사용하고, 이용자의 요구에 따라 실시간으로 확장이 가능합니다. 

또 사용량에 비례하여 과금이 되는 컴퓨팅 기술을 의미합니다. 

 

● 클라우드 컴퓨터 서비스의 유형

① SaaS(Software as a Service): 사용자가 소프트웨어 서비스를 이용한 시- 간 또는 제공된 용량에 따라 과금이 되는 클라우드 서비스입니다. 

② PaaS(Platform as a Service): 응용 시스템을 개발 및 실행할 수 있도록 운영 환경을 제공하는 클라우드 서비스입니다. 

③ IaaS(Infrastructure as a Service): 네트워크 장비, 서버 등의 하드웨어
- 인프라를 가상화 시스템으로 제공하는 서비스입니다. 

 

5. 빅데이터 아키텍처 기획 과정에서의 요구 사항 검토

● 빅데이터 플랫폼 요구 사항 중에서 인프라 구성과 관련된 아키텍처 요구 사항을 검토하고, 아키텍처 설계를 위한 방안을 정의합니다. 

 

① 빅데이터 아키텍처 요구 사항의 검토
- 빅데이터의 활용을 위해 다양한 요구 사항을 충족하기 위한 아키텍처 요건을 검토합니다. 

아키텍처 관련 요건은 시스템의 규모, 용량, 성능 등을 고려해야 합니다. 

 

● 스케일 업

- 제품 내에서 프로세서, 메모리, I/O Device 등 컴퓨팅 리소스의 동적인 확장을 통한 성능 향상을 뜻하는 용어

 

● ‘스케일 업(Scale-up)’과 ‘스케일 아웃(Scale-out)’ 요건의 검토 시스템의 확장성을 고려하여 적정 용량 및 증설 전략을 검토합니다. 

빅데이터 플랫폼의 경우에는 다수의 노드를 통한 분산 처리 시스템으로 구성하는 것이 일반적입니다. 

개별 노드에 대해서는 스케일 업(Scale-up) 방안을, 전체 시스템에 대해서는 스케일 아웃(Scale-out) 방안을 검토합니다. 

 

● 성능 요건의 검토

- 빅데이터 플랫폼의 성능 요구 사항을 검토하여 최적의 인프라를 구성하기 위한 기초 데이터를 작성합니다. 

빅데이터 처리 방식은 크게 두 가지 유형으로 구분할 수 있습니다. 

수집된 데이터를 일괄로 처리하는 하둡(Hadoop)의 배치 처리 방식과, 실시간 데이터 처리를 위 CEP(Complex Event Processing) 방식으로 나누어집니다.

유형에 따라 요구되는 응답 시간, 시간당 처리율 등의 성능 지표가 달라지므로 데이터 처리 방식에 따른 적정 성능 요건의 검토가 필요합니다. 

성능 지표는 업무 처리 시간, 처리율, 리소스 사용률 등으로 정의할 수 있습니다. 

 

● 성능 지표

- 대기 시간: 서비스 리퀘스트(Service Request) 후 서비스를 실행하기 위해 대기하는 시간을 뜻합니다. 

- 응답 시간: 서비스 리퀘스트(Service Request) 시각부터 최초의 응답이 도착한 시각까지의 시간을 뜻합니다. 

- 반환 시간: 서비스 리퀘스트(Service Request) 시각부터 리퀘스트 (Request) 완료 시각까지의 시간(수행 시간)을 뜻합니다. 

- 처리율: 기준 시간 동안에 완료되는 리퀘스트(Request)의 수와 시간당 처리량, 측정 기간 중의 피크값(평균값이 아님)을 처리율로 사용합니다. 

- 자원 사용률: CPU, 메모리, 디스크 등의 한곗값 대비 사용치의 비율을 의미 합니다. 

 

● 참조법

- 시스템 용량의 산정 방식중 기존의 업무 시스템과 비교가 가능하고 비교적 간단하고 안전한 규모로 산정이 가능하지만 근거의 제시가 미약한 방식

 

● 자원 관리 요건의 검토

- 빅데이터 기반의 자원의 할당 및 회수에 대한 관리 방안을 마련하기 위한 자원 관리의 범위 및 구성을 정의하기 위해 인프라 서비스의 제공 관리 구성 요소를 분석합니다. 

하둡(Hadoop) 기반의 빅데이터 플랫폼을 구성할 때 스케일 아웃(Scale-out)을 이용하여 저비용으로 x86 서버 증설을 통해 고성능 시스템의 구축이 가능합니다. 

하지만 직접 데이터센터(IDC)를 운영하고 시스템을 구축하는 경우에는 대규모 빅데이터 플랫폼을 구성하기 위해 수십 대에서 수백 대까지의 서버를 증설하는 것은 높은 관리 비용이 수반됩니다. 

따라서 다수의 서버를 도입해야 하는 경우에는 클라우드를 활용한 효율적인 인프라 관리 구성 방안을 고려해야 합니다.

 

6. 사용자 요구 사항의 분석을 바탕으로 아키텍처 요구 사항의 정의

① 시스템의 용량 및 확장성을 고려한 서버, 네트워크, 스토리지 등의 장비 규격을 정의합니다. 

● 서버 장비 규격의 정의
- 빅데이터 플랫폼 구축을 위한 주요 서버는 분산 처리를 위한 네임 노드(NameNode), 데이터 노드(Data Node), 데이터 분석을 위한 분석 서버, 원천 데이터 (source data) 획득을 위한 수집 서버 등이 있습니다. 

● 실행 기반의 기법
- 시스템 용량의 산정 방식중 대상 업무에 대한 작업 부하를 모델링하고, 이를 시뮬레이션하여 규모를 산정하는 방식
● 네트워크 장비 규격의 정의
- 용도에 따라 라우터, 스위치 등으로 구성하며, 스위치의 경우에는 용도에 따라 L2 스위치, L3 스위치, 부하 분산을 위한 L4 스위치 등으로 분류합니다. 

스토리지나 백업 장비를 위한 망 구성의 경우에는 SAN(Storage Access Network) 스위치를 도입합니다.
물리적 포트 수를 고려하여 가용 수량을 결정 하며, 대역폭에 따라 네트워크 장비의 용량을 도출합니다. 

● 스토리지 장비 규격의 정의
- 용도에 따라 SAN, NAS(Network Attached Storage) 등에 대한 도입을 검토 합니다. 

SAN 통합 스토리지를 구성하는 경우에는 볼륨 할당을 위해 RAID 구성을 고려해야 합니다. 

통합 스토리지를 할당하는 서버의 경우에는 별도의 HBA(Host Bus Adapter)와 NIC(Network Interface Card)이 필요합니다.

 

② 소프트웨어 도입 요구 사항의 정의

- 빅데이터의 수집, 저장, 분석, 활용을 위한 소프트웨어 구성 요구 사항을 도출 합니다. 자체적으로 시스템을 구축하는 온프레미스 (on-premise)의 경우에는 상용 소프트웨어와 오픈소스 소프트웨어의 도입을 모두 고려할 수 있습니다. 

자체 구축이 아닌 경우에는 상용 클라우드 서비스를 고려할 수 있으며, 클라우드 서비스를 이용할 때 인프라의 제공 수준에 따라 IaaS, PasS, SaaS 유형중에서 요구 사항에 적합한 서비스를 선택하도록 합니다. 

 

③ 성능 요구 사항의 정의

- 시스템 성능은 아키텍처의 구성뿐만 아니라 응용 시스템의 구현, 데이터 모델 링에도 영향을 미치므로 여러 요소를 고려해야 합니다. 

성능 요건의 검토를 통해 도출한 성능 목표 지표를 활용하여 성능 검증 방안을 수립합니다. 

 

④ 인터페이스 요구 사항의 정의

- 내부 및 외부의 연계 대상 시스템을 고려하여 인터페이스 요구 사항을 정의합니다. 

데이터 수집 단계에서는 원천 데이터의 대상이 외부에 위치하는지, 내부에 위치하는지에 따라 인터페이스 방식이 상이하게 정의됩니다. 데이터 분석 및 활용 단계에서는 가공된 데이터를 사용자 시스템으로 전송하기 위한 ETL(Extraction Transformation Load) 시스템의 추가 도입도 고려해 보아야 합니다.

 

 

요구 사항이란, 특정 문제를 해결하기 위해 시스템의 개발 또는 구축을 통해 외부로 드러나야 하는 속성 또는 수행의 결과물이 만족해야 할 품질을 의미한다. O
[해설]
요구 사항이란, 특정 문제를 해결하기 위해 시스템의 개발 또는 구축을 통해 외부로 드러나야 하는 속성 또는 수행의 결과물이 만족해야 할 품질을 의미합니다.
아키텍처 요구 사항의 정의는 크게 기능 요구 사항의 정의와 비기능 요구 사항의 정의로 나눌 수 있습니다.
클라우드 컴퓨터 서비스의 유형 중 SaaS는 응용 시스템을 개발 및 실행할 수 있도록 운영 환경을 제공하는 클라우드 서비스이다. X
[해설]
클라우드 컴퓨터 서비스의 유형
① SaaS(Software as a Service): 사용자가 소프트웨어 서비스를 이용한 시간 또는 제공된 용량에 따라 과금이 되는 클라우드 서비스입니다.
② PaaS(Platform as a Service): 응용 시스템을 개발 및 실행할 수 있도록 운영 환경을 제공하는 클라우드 서비스입니다.
③ IaaS(Infrastructure as a Service): 네트워크 장비, 서버 등의 하드웨어 인프라를 가상화 시스템으로 제공하는 서비스입니다.
아키텍처란 요구 사항을 구현하기 위한 기반 기술을 정의하는 과정이다. O
[해설]
아키텍처의 정의 요구 사항을 구현하기 위한 기반 기술을 정의하는 과정입니다.
요구 사항을 반영하여 하드웨어 아키텍처와 소프트웨어 아키텍처를 정의합니다.
이는 정보 시스템의 개발, 테스트, 이관을 위한 기술적 기반이 됩니다.