본문 바로가기

Network, Security

P2P 네트워크 시스템 ~ 클라우드 컴퓨팅

P2P(Peer-to-Peer)

P2P는 동등 계층간 통신 망으로 중앙 집중식 관리 시스템을 사용하는 것이 아닌 상호 연결된 노드간 자원을 공유하는 형태로 구성된 네트워크이다. P2P 통신망은 일반적으로 특별한 목적의 큰 규모의 노드들을 연결하는 경우 사용한다. 일상에서 사용되는 경우는 오디오, 비디오 등의 디지털 데이터 공유와 인터넷 전화(VoIP)같은 실시간 데이터들도 P2P 통신으로 전달할 수 있다. 즉, 특정 서버에 집중되는 형태가 아닌 동등한 계층의 노드들이 서로 서버와 클라이언트의 역할을 하며 데이터를 공유할 수 있는 것이다. 반대되는 사례의 대표적인 경우는 FTP가 있으며 FTP는 FTP 서버에 집중된 데이터를 클라이언트가 내려받거나 올리는 등의 행위를 하는 서버-클라이언트의 형태이다.

P2P

 

그리드 컴퓨팅(Grid Computing)

이러한 P2P 통신은 최근 그리드 컴퓨팅(Grid Computing)으로 발전했다. 그리드 컴퓨팅은 분산 병렬 컴퓨팅의 한 분야이다. WAN(Wide Area Network)로 연결된 서로 다른 기종의 컴퓨터들을 하나로 묶어서 가상의 대용량 고성능 컴퓨터를 구성하고 고도의 연산작업을 수행한다. 그리드 컴퓨팅은 컴퓨터에서 낭비되는 자원을 효율적으로 사용하고 지리적으로 멀리 떨어진 컴퓨터도 연결하여 고도의 연산을 수행하게 한다. 그 결과 비용절감, 연산 속도증가 등의 효과를 볼 수 있다.

그리드 컴퓨팅

 

클라우드 컴퓨팅(Cloud Computing)

이러한 그리드 컴퓨팅의 한 종류는 클라우드 컴퓨팅(Cloud Computing)이있다. 클라우드 컴퓨팅은 데이터 스토리지, 컴퓨팅 자원 등 시스템의 리소스를 필요할 때 제공하는 것이다. 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술로 공유 컴퓨터 처리 자원과 데이터를 컴퓨터와 다른 장치들에 요청 시 제공해 준다. 구성 가능한 컴퓨팅 자원은 여러가지가 있으며 네이버에서 제공하는 클라우딩 컴퓨팅에서 지원하는 자원은 아래 그림과 같다.

네이버 클라우드 플랫폼

이외에도 마이크로소프트에서 제공하는 에저(Azure), 아마존에서 제공하는 AWS 등이 있다. 클라우드 컴퓨팅은 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)로 나눠진다. 각각의 이름에서 알 수 있듯이 IaaS는 전반적인 인프라를 제공하는 플랫폼이다. 가상 머신과 자원들을 공유하고 물리적 컴퓨팅 자원, 위치, 데이터 파티셔닝, 확장, 보안, 백업 등 여러 부분들을 제공하는 서비스이다. 가상 머신 이미지 라이브러리와 방화벽, 스토리지, 로드 벨런서, VPN 등의 전반적인 인프라를 구성하여 사용할 수 있게 해준다. PaaS는 개발 환경을 제공하는 서비스이다. 프로그래밍 환경과 데이터베이스, 웹 서버를 포함하여 제공하며 빠른게 개발 환경을 구축해주고 배포할 수 있는 환경까지 제공한다. SaaS는 소프트웨어에 대한 서비스를 제공한다. 응용프로그램과 데이터베이스를 제공한다. 클라우드 제공자가 응용프로그램과 환경을 구축하고 사용자는 해당 환경에 접근하여 응용프로그램을 사용한다. 대표적으로 드롭박스와 구글 문서등이 있다.

클라우드 컴퓨팅을 통해 기업들은 선행 투자 비용 중 서버 구매 비용을 줄일 수 있으며 시간도 절약할 수 있다. 플랫폼에서 클라우드 환경을 제공받아 빠르게 개발 작업을 할 수 있으며 고성능의 컴퓨터를 이용할 수 있다. 이러한 클라우드 컴퓨팅은 대부분 종량제 모델을 사용하는데 종량제 모델은 사용자가 클라우드의 자원을 사용하는 만큼 비용을 지불하는 형태이다. 즉, 예상했던 가격보다 높게 나올 수 있다. 예를 들어 웹 서버를 클라우드 컴퓨팅으로 열었더니 봇들의 방문으로 서버의 자원을 예상했던것 보다 많이 사용하게 되고 그로인해 비용이 많이 청구될 수 있다.

클라우드 컴퓨팅의 장점은 언제 어디서든 인터넷만 연결되어 있다면 접근할 수 있고 초기 구성 시 비용을 줄여주며 구축 시간이 줄어드는 만큼 쉽고 빠르게 애플리케이션을 출시할 수 있도록 해준다. 또한 사회 변화에 따라 제공하는 서비스 자원이 유동적일 경우 상황에 맞게 커스터마이징하여 낭비되는 자원을 최소화할 수 있다.

클라우드 컴퓨팅의 단점은 서비스 제공 중 과도한 트래픽으로 인한 초과 비용의 문제가 있다. 실제 사용자가 아닌 봇들의 타겟이 되어 트래픽을 유발할 경우 의미하는 트래픽이 증가하게 되고 클라우드 환경에서는 자원사용률이 올라감에 따라 추가 비용이 발생하는 것이다. 또한 대기시간에 민감한 서비스(은행, 주식)의 경우 네트워크 지연으로 인한 서비스 품질 저하가 발생할 수 있기 때문에 클라우드 컴퓨팅의 사용을 피하게 된다. 클라우드 컴퓨팅은 제공하는 플랫폼에서 관리하는 자원이기 때문에 기업의 중요한 정보나 개인정보 등 적합하지 않은 데이터는 클라우드를 이용하는것 보다 기업 내에서 관리하는게 옳다.

 

P2P와 블록체인

블록체인은 P2P 통신기술을 토대로 만들어졌다. 현재 탈 중앙화에 대한 개발이 활발하게 이루어지고 있다. 탈 중앙화는 네트워크에서 데이터를 주고받을 때의 기본적인 틀인 서버-클라이언트 형태에서 벗어나는 것이다. 즉, 데이터가 중앙에 집중된 구조가 아닌 여러 노드에 분산시켜 저장하는 것이다. 이러한 P2P 통신은 초기에 서버-클라이언트 구조에 비해 주목받지 못했다. 이유는 성능을 서버-클라이언트 만큼 끌어올리지 못하여 좋은 퍼포먼스가 나오지 않는다는 점이었다. 그때, 블록체인이라는 이름으로 떠오르게 되면서 서버-클라이언트 방식에 대응할 장점이 생긴 것인데 바로 보안이었다. 블록체인은 연결된 다수의 노드에 정보를 저장하는 기술이다. 즉, 모든 노드들에 값을 저장하여 검증을 하는 것인데 이는 모든 사람들이 현재 연결된 네트워크에서 일어난 거래들을 모두 자신의 장부에 기록하는 형태이다. 이러한 블록체인 구조는 검증 부분에서 압도적인 성능을 보이는데 검증에 필요한 데이터가 모든 노드에 저장되어 있고 모든 노드들에게 이 데이터가 맞는지 검증하기 때문에 공격자 입장에서 노드를 몇개 변조한다고 하여 검증을 우회하거나 조작할 수 없는 것이다. 즉 공격에 성공하기 위해서는 연결된 모든 노드에 공격을 해야하기 때문에 중앙에 집중된 서버-클라이언트 방식에 비해 안전하다고 할 수 있다.

 

www.boannews.com/media/view.asp?idx=94251

 

[CSRC@KAIST 차세대보안R&D리포트] 블록체인과 P2P 네트워크 시스템

블록체인은 안전하고 투명하게 데이터를 저장하고 공유할 수 있는 시스템으로, 기존의 중앙 집중화된 전통적인 시스템들이 가지는 독점, 부패 혹은 단일 실패 지점과 같은 문제를 해결하기 위

www.boannews.com

 

반응형