1. 분산시스템 개요
- 분산시스템은 공유하는 공동의 목표를 달성하기 위해 여러 개의 개별 컴퓨팅노드에서 컴퓨팅리소스를 활용하는 컴퓨터 프로그램의 모음.
- 분산시스템은 시스템에서 병목현상이나 중앙에 장애지점을 제거하는 것을 목표로함. 
- 분산컴퓨팅 또는 분산데이터베이스 라고도하며, 별도의 노드가 공동의 네트워크를 통해 통신하고 동기화.
- 분산시스템은 시스템에서 병목현상이나 중앙에 장애지점을 제거하는 것을 목표로 함.

2. 분산컴퓨팅시스템의 특징
- 리소스공유 : 분산시스템은 하드웨어, 소프트웨어 또는 데이터를 공유할 수있음
- 동시처리 : 여러 시스템에서 동일한 기능을 동시에 처리할 수 있음.
- 확장성 : 컴퓨팅 및 처리 용량은 추가시스템으로 확장할 때 필요에 따라 확장할 수 있음.
- 오류감지 : 장애를 더 쉽게 감지할 수 있음.
- 투명성 : 노드는 시스템의 다른 노드에 액세스하고 통신할 수 있음.

3. 중앙집중식시스템과 분산시스템의 차이
- 중앙 집중식 컴퓨팅시스템에서는 하나의 컴퓨터가 모든 컴퓨팅을 한 곳에서 수행
- 중앙 집중식 시스템과 분산 시스템의 주요 차이점은 시스템 노드간의 통신패턴
* 중앙 집중식 시스템의 상태는 클라이언트가 맞춤형 방식으로 액세스 하는 중앙 노드내에 포함.
* 중앙 집중식 시스템의 노드는 모두 중앙노드에 액세스하므로 네트워크가 혼잡해지고 느려짐.

4. 하둡분산처리
- 하둡이란, 빅데이터를 수집/ 저장 / 처리 / 분석할 수 있는 오픈 소스 프레임워크
- 하나의 성능 좋은 컴퓨터를 이용하여 데이터를 처리하는대신, 적당한 성능의 범용 컴퓨터 여러대를 클러스터화 하고,
큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것이 목적임.

과정 개념
데이터 분할 데이터를 블록 단위로 나눔.
분산 저장 나뉘어진 여러 블록들을 여러 대의 컴퓨터에 분산 저장
HDFS(Hadoop Distributed File System)
분산 처리 각 컴퓨터에서 맵 단계 실행(입력 데이터를 읽어와 원하는 형태로 가공)
각 블록은 병렬 처리됨.
결과 계산 리듀스 작업을 통해, 중간 결과들을 기반으로 최종 결과로 계산함.

* 맵리듀스(MapReduce)
- 클라우드의 핵심으로, 큰파일을블록단위로나누고모든블럭은같은 Map 작업을 수행하고 이후Reduce 작업을 수행
- Distributed File System에서 수행되는 MapReduce 작업이 끝나면 HDFS 에파일이써지고, MapReduce 작업이 시작할때는 HDFS로 부터 파일을 가져오는작업이수행

5. 분산시스템의 장 • 단점
- 분산시스템은 시스템 안전성 및 성능을 개선하는 데 종종 도움이 됨 
- 중앙 집중식 장애지점과 병목현상을 제거하여 안정성이 향상
- 분산시스템의 노드는 중복성을 제공하므로 노드장애가 발생할 경우 장애를 처리하고 교체하도록 다른 노드가 준비 되어있음
- 노드를 수평적으로 및 수직적으로 손쉽게 확장할 수 있으므로 성능이 향상
- 시스템에 과도한 부하가 걸리면 노드를 추가하여 부하를 처리할 수 있음
- 광범위한 부하를 처리하도록 개별 노드의 용량을 늘릴 수도 있음

- 시스템이 지나치게 복잡해지고 유지관리가 어려워지는 “개발에서 무분별한 확장” 이 발생할 수 있음
- 시스템이 복잡해짐에따라 팀은 이러한 시스템을 효과적으로 구성, 관리 및 개선하는데 어려움을 겪음
- 따라서 운영상태를 극대화하고 종속 구성 요소뿐만 아니라 고객에게 부정적인 영향을 미치지 않도록 구성요소를 변경하는 방법을 이해하기가 어려움

6. 분산시스템의 아키텍처
- 클라이언트서버
- 피어투피어(P2P)
- 서비스지향아키텍처(SOA) 
- 마이크로서비스아키텍처(MSA) 
- 클라우드컴퓨팅
- 엣지(edge)컴퓨팅

7. 클라우드컴퓨팅의 개념
클라우드 :
- 인터넷을 의미하고 컴퓨팅은 넓은의미로 컴퓨팅자원을 사용하는 모든활동
- 컴퓨터 네트워크 구성도에서 인터넷을 구름모양으로 나타내는데에서 유래

클라우드컴퓨팅 :
- 인터넷을 기반으로하는것으로 자신의 컴퓨터가 아닌 인터넷에 연결된 컴퓨팅자원을 이용하는 것을 의미
- 컴퓨팅자원:네트워크,데이터베이스,서버,스토리지,애플리케이션등 

8. 클라우드컴퓨팅의 장 • 단점
- 클라우드컴퓨팅을 도입하면 사용자 컴퓨팅 자원의 유지보수, 확장, 관리의 부담을 줄일수있음

- 클라우드컴퓨팅자원은 인터넷에 연결되어있기 때문에 해킹으로 사용자 개인정보가 유출될수도있음
- 사용자데이터가 물리적으로 어디에 위치해있는지 특정짓기어려움
- 클라우드컴퓨팅의 특징은 개인정보는 반드시 자국내에 위치한 서버에 보관해야한다는 법과 충돌

9. 클라우드컴퓨팅의 역사
1960~70년대의 호스트-터미널구조는 모든 컴퓨팅자원을 데이터센터에서 중앙집중식으로 구성
사용자컴퓨터는 단순히 데이터센터에 연결하는 단말기 역할 수행

메임프레임 시대
- 메인프레임에 터미널이 접속해서 필요한 자원을 활용하는 방식
- 메인프레임 : 강력한 컴퓨팅자원을 갖춘 컴퓨터
- 터미널 : 적은 리소스의 단말, 콘솔화면에서 메인프레임에 접속해 키보드로 문자를 입력해 지시를 내리는 단순기기
- 메인프레임시대는 PC의 보급으로 종결

클라이언트-서버시대
- 1980년대에 PC가 등장하면서 메인프레임의 일부 역할을 PC에서 실행할 수 있게되면서 클라이언트와 서버구조로 분산
- 클라이언트 : 서비스를 사용하는 사용자 단말
- 서버 : 다수의 클라이언트를 지원하기위해 컴퓨팅자원을 모아둔 컴퓨터
- 역할분산 : 주로 데이터는 서버에 배치하고 애플리케이션은 클라이언트에서 실행하는 구조가 일반적
- 클라이언트와 서버사이의 통신은 인터넷을 이용
- 클라이언트가 필요한 기능을 요청하면 서버가 응답하는 방식으로 상호작용

클라우드컴퓨팅시대
- 초고속 인터넷의 보급으로 웹서비스가 폭발적으로증가하면서 서버의 수요도 증가
- 서비스사용자가 많아질수록 서버의 과부하를 줄이기 위해 컴퓨팅자원을 확장했으나 관리의 복잡도와 난이도는 증가
- 클라이언트-서버구조로는 이러한상황에 대처하기가 버거워지면서 여러가지 공유개념이 해결책으로 등장하기 시작
- 그리드컴퓨팅 : 대용량의 컴퓨팅자원을 언제든지 필요할때 제공한다는 개념, 후에 유틸리티컴퓨팅으로 발전
- 유틸리티컴퓨팅 : 사용한만큼 요금을 지불하는 전기나 수도처럼 종량제로 컴퓨팅자원을 제공
- 그리드컴퓨팅과 유틸리티컴퓨팅의 개념은 가상화 기술과 분산처리기술의 발전에 힘입어 클라우드컴퓨팅으로 발전
-  초기에는 소프트웨어 자체를 제공하는 SaaS에서시작해 PaaS, IaaS 형태의 모델로 성공적으로 안착.

10. 클라우드컴퓨팅 서비스 모델
IaaS :
- 서버의 CPU, 네트워크, 스토리지 등의 컴퓨팅 자원을 인터넷으로 제공하는 형태
- 구성된 서버에 어떤 소프트웨어를 설치하거나 인터넷으로 접근이 가능하도록 네트워크를 설정하는 것이 가능
- 클라우드컴퓨팅의 스토리지 서비스를 이용해 파일을 백업 및 복구하는 목적으로 사용하는 것도 IaaS 에 속함

PaaS :
- 애플리케이션을 구동하는 플랫폼을 서비스로 제공하는 형태
- IaaS 만큼 자유도가 높지는 않지만 PaaS 가 제공하는 서비스를 이용해 고객이 원하는 애플리케이션을 개발하거나 구동
- IaaS가 CPU, 네트워크, 스토리지등의 컴퓨팅 자원자체를 빌리는데초점을 맞추고 있다면 PaaS 는 컴퓨팅자원에 OS, 미들웨어와 같은 좀더 고도화된 기능을 함께 제공

SaaS :
- IaaS, PaaS와 달리 컴퓨팅자원이 아니라 소프트웨어를 서비스로 제공하는 형태
- SaaS는 IaaS, PaaS 보다 자유도는 떨어지지만 제공하는 기능은 가장 많음


FaaS :
- 서버 인프라를 제공하는 IaaS와 달리 애플리케이션을 실행하는 컴퓨팅 시간만큼만 과금하는 서비스모델
- 사용자가 함수만 만들어 올려두면 구동에 필요한 빌드, 실행, 모니터링 등의 나머지 과정을 자동화해 제공하는 방식
- 서버의 유휴 시간에는 별도의 과금이 없으며 최소한의 자원을 사용할 필요가 없음
- 애플리케이션 로직만 올리기 때문에 업데이트과정도 단순하고 빠름
- 사용자가 서버 세팅을 하지않고 애플리케이션만 등록하기 때문에 서버리스컴퓨팅 이라고도 부름

 

 

+ Recent posts