Data Center란?
컴 퓨터들이 클러스터링이 되어서 랙(rack)이라는 시스템들이고, 랙들이 수십 개가 놓여 있고요.놓여 있는 랙들이 네트워크로 다시 연결돼서 다시 외부랑 연결되는 이런 모습을 갖고 있습니다.
놓여 있는 랙들이 네트워크로 다시 연결돼서 다시 외부랑 연결되는 이런 모습을 갖고 있습니다.
서버를 관리하는 입장에서는 이 서버를 중심으로 해서 이게 네트워크의 뒤 쪽에 연결돼 있다.
네트워크라는 측면에서 이걸 바라보면, 내가 네트워크를 공급해서 저 뒤쪽에 있는 서버들한테까지 사람들의 연결이 전달되도록 만들어 진다.
이처럼 서버를 오퍼레이트 하는 사람, 네트워크를 오퍼레이트 하는 사람 들이 서로 다른 입장에서 일을 하는데 , 이를 하나의 측면에서 효율적으로 관리하고자 노력을 해왔다.
그러한 성과중 하나가 클라우드를 위한 데이터 센터이다.
데이터 센터에 있는 클러스터들이 지금 결국 사용자의 서비스를 지원하게 하는 그 부분을 저희가 데이터 센터 3T 어플리케이션 패턴으로 정리해서 그 형태를 살펴보겠다.
이 3T 라고 할 때 web tier, application tier, DB tier 이렇게 부르고 있고요.
기본적으로 web tier라는 것은 사용자가 리퀘스트를 받는 안내서가 되겠죠.
사용자가 받고 나면 사용자의 리퀘스트에 따라서 담당 업무 부서인 어플리케이션 서버로 가게 되고요.
어플리케이션 서버에서 어떤 업무에 따라서 자기가 일을 처리합니다.
그러면 주변 부서하고, 아니면 기본적으로 저장해서 중요한 데이터를 저장하는 DB 서버 쪽이랑 협조를 하면서 전체적인 일을 해주면서 어떤 사용자의 리퀘스트에 대응하고, 그걸 리스펀스를 주는 상태가 전형적인 데이터 센터에서 하는 어플레케이션의 서비스 형태입니다.
이 어플리케이션을 완전하게 쓰기 위해서 , 파이어월드 ,IDS ,IPS 같은 보조수단을 사용한다.
이 상태에서 보완 부분의 네트워크랑 다양한 부분을 연결해서 굉장히 복잡한 네트워크가 구성이 됩니다.
한 가지 추가적인 상황은
하나의 유저가 리퀘스트를 대면 어플리케이션 서버, DB 서버들이 대화하는 것들이 하나의 리퀘스트에서 수십 개의 기본적인 대화가 있어야지만 그것에 답변할 수 있습니다.
네트워킹이 내부에서는 외부의 리퀘스트 하나에 대해서 내부에서 수십 개의 트래픽이 발생한 다음에 리스펀스가 된다.
Data Center NetWorking
가장 worst case에서 트래픽까지도 감당할 수 있는 네트워크
코어(core), 어그리게이션(aggregation). 엑세스(access)라고 하는 계층을 통해서 나름대로 하이어라키(hierarchy)를 갖고 연결을 하는 기본 형태에서 좀 더 발전시켜서 저희가 스파인(spine), 리프(leaf)라고 해서
척추하고 스파인이라는 부분을 리프해서 그 상태에서 이 기본 구조를 더 하이어라키를 좀 더 위를 치밀하게 연결한 다음에 아래쪽에 있는 랙들에 있는 TR 스위치랑 연결해서 다시 접속시키는 형태로 만듭니다.
이런 형태를 변형하면 여러 가지 다양한 옵션들이 나오고, 그런 것들을 통해서 효과적이고 파워풀한 데이터 센터 네트워킹을 지원하도록 만들어 냅니다.
SoftWare Defined Data Center Network
데이터센터를 내가 원하는 상태로 소프트웨어적으로 정의해서 사용 하는것
소프트웨어적으로 데이터 센터에 있는 재료들을 어떤 하드에 있든 상관없이 내가 원하는 재료를 이만큼 네트워킹의 힘을 통해서 모아내서 한 덩어리를 만들어내고, 그걸 특정한 유저한테 할당을 한다.
저희가 배웠던 가상화의 개념이 여기에서 활용이 됩니다.
특정한 유저한테 ‘이거는 유저들을 위한 부분이야.’라고 특별하게 아이솔레이션 해서 virtualize하는 부분이고요.
데이터 센터는 크게 보면 얘가 하나의 굉장히 커다란 컴퓨터라고 생각할 수 있는 그런 개념으로 바뀝니다.
아주 거대한 데이터 센터는 10만 대의 머신이 있는데, 10만 대의 머신이 결국은 하나의 거대한 컴퓨터다.
저희가 데이터 센터에 한 머신이 있으면 버쳐라이제이션(virtualization) 기술은 어떤 걸 하냐면, 하나의 머신을 여러 개의 머신으로 잘게 나눌 수 있다.
스무 개 머신은 하나씩, 하나씩 ‘누가 이거 쓰는 거다.’ 할당을 해서 스태틱(static)하게 할당을 해서 같이 쓰게 됩니다.
어떤 순간에는 나눠 쓸 수 있지만 순간 순간에 어떤 사람한테 독점이 되는 구조가 되죠.
이런 구조를 탈피해서 조금 더 발전시키면 데이터 센터 전체 머신들이 커다란 하나의 거대 컴퓨터고,
그게 임의의 조각을 내가 필요한 만큼 나눠 쓸 수가 있다는 개념이 되면 훨씬 더 발전된 유연한 리소스를 공동으로 사용하는 개념이 나올 수 있습니다.
그래서 빅 컴퓨터라고 하는 부분은 지금 얘기했던 스태틱하게 나눠져서 조각을 하나 하나 할당하는 게 아니라
실제로 동적으로 쓰는 상태만큼 할당을 받고, 그 할당량이 전체 리소스의 크기를 넘지 않으면 효과적으로 사용할 수 있는 이런 상태로 만들 수 있으면 더 발전된 기술이겠죠.
※ 가상화 와 클라우드의 차이점
가상화는 단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술이고, 클라우드는 네트워크 전체에서 확장 가능한 리소스를 추상화하고 풀링하는 IT 환경입니다. 즉 가상화는 기술이고 클라우드는 환경이란 것이 두드러진 차이점입니다.
가상화를 사용하는 경우 하이퍼바이저라고 불리는 소프트웨어가 물리 하드웨어 최상위에 위치해 있으며 머신의 리소스를 추상화하고 이를 가상 머신이라는 가상 환경에서 사용할 수 있도록 만듭니다.
이러한 리소스는 원시 데이터 처리 기능, 스토리지 또는 모든 런타임 코드와 이를 배포하는 데 필요한 리소스가 포함된 클라우드 기반 애플리케이션이 될 수 있습니다.
프로세스가 여기서 끝난다면 클라우드가 아닌 가상화입니다.
가상 리소스가 중앙화된 풀에 할당되어야만 클라우드라고 볼 수 있습니다. 관리 소프트웨어 레이어를 추가하면 클라우드에서 사용될 인프라, 플랫폼, 애플리케이션, 데이터에 대한 관리 권한이 제공됩니다. 또한 자동화 레이어를 추가하는 경우 반복 가능한 명령 및 프로세스로 수작업을 대체하거나 줄일 수 있기 때문에 클라우드의 셀프 서비스 구성 요소가 갖춰집니다.
다음과 같은 IT 시스템을 설정한 경우 클라우드를 구축한 것입니다.
- 네트워크를 통해 다른 컴퓨터로 액세스 가능
- IT 리소스의 리포지토리 포함
- 신속하게 프로비저닝 및 확장 가능
클라우드가 제공하는 셀프 서비스 액세스, 자동 인프라 스케일링, 동적 리소스 풀이라는 추가적인 이점은 전통적인 가상화와의 가장 큰 차별점이 됩니다.
가상화를 사용하면 서버 통합과 우수한 하드웨어 활용률 덕분에 데이터 센터에 전력, 공간, 냉각 시설을 갖출 필요가 줄어드는 등 고유의 이점을 누릴 수 있습니다. 가상 머신 역시 격리된 환경이므로 새로운 애플리케이션을 테스트하거나 프로덕션 환경을 설정할 수 있다는 이점이 있습니다.
오메가 솔루션
데이터 센터 안에 있는 리소스를 컴퓨팅 하는 리소스, 저장하는 리소스, 네트워킹 하는 리소스를 갖다가 전체를 하나로 불러 모으고,
이 리소스를 동적으로 스케줄링을 해서 효율적으로 쓰는 사람들만큼 해서 골고루 잘 나눠 쓸 수 있도록 만들어서 마치 많은 사람들이 다양한 일을 하고 있지만 하나의 리소스를 최적으로 나눠 쓸 수 있는.
중요한 건 동적으로 나눠 쓸 수 있는 구조를 만들어 냈다.
클라우드 컴퓨팅
지구상에 도처에 퍼져 있는 거대한 데이터 센터들을 하나로 묶어서 리소스를 만들고, 이 리소스들을 효과적으로 다시 공유해서 나눠 쓸 수 있게 만들어 내는 이런 패러다임으로 가는 게 바로 클라우드 컴퓨팅 패러다임이라고 보시면 됩니다.
계속 수정중입니다.
자동화의 원리에 따라서 굉장히 효율적으로 운영되는 데이터 센터들을 하나가 아니라 그걸 전 세계 스케일로 다시 엮어내고, 그 엮어낸 스케일에 따라서 ‘리소스가 필요해? CPU가 필요해?’ 아니면 ‘스토리지가 필요해?’
이런 것에 따라서 나눠지는 인프라스트럭처 애즈 어 서비스(infrastructure as a service) 형태의 클라우드 서비스가 있고요.
자원을 가지고 원리는 데이터베이스 서버라든지 웹 서버라든지 여러 가지 서버 기능들을, 그걸 저희가 플랫폼 기능이라고 하는데, 플랫폼 기능을 하는 서버 기능을 가지고 있으면 서버 기능을 활용해라.
그래서 PaaS라고 부릅니다. 플랫폼 애즈 어 서비스(Platform as a Service).
클라우드를 이용하는 SaaS 서비스라고 합니다. 소프트 에즈 어 서비스(Soft as a Service) 형태로 해서 제공되는.
그래서 저희가 IaaS, PassS, SaaS 이런 다양한 서비스 계층을 가지고 다양한 서비스를 ∼ as a service이런 형태로 할 수 있게 만들어 주는 게 클라우드 컴퓨팅이다.
그래서 클라우드 컴퓨팅의 시대가 와서 클라우팅 방법 내에서 다시 가장 효율적으로 유틸라이제이션(utilization에서는 리소스 유틸라이저(resource utilizer)하고 에너지를 가장 최적으로 쓸 수 있는 그런 경제적인 솔루션을 뒤에 깔고, 규모의 경제를 깔고, 전 세계 어떤 컴퓨팅 니드를 커버하는 게 가장 효과적이다.
현재 시장현황입니다.
많이 알고 계시겠지만 아마존이라고 하는 쪽에서 AWS라는 클라우드 서비스를 갖고 있어서 전 세계 마켓 쉐어의 과반 이상을 점유하면서 리딩을 하고 있고요.이걸 마이크로소프트, 구글, 알리바바, 아이비엠 이런 회사들이 쫓아가면서 이 마켓을 경쟁하는 이 형태.
자료에서 그림을 보시면 기존의 데이터 센터는 점점 줄어들고, 클라우드를 베이스로 하는 데이터 센터들이 더 늘어납니다.
그리고 한 가지 더 구분해서 말씀을 드려야 될 건 아까 말씀드렸던 AWS, 마이크로소프트, ‘Azure’라고 정식 명칭은 이렇습니다.그 다음에 구글 클라우드 플랫폼 이런 것들은 기본적으로 퍼블릭 클라우드(public cloud)라고 합니다.
퍼블릭 클라우드는 내가 어떤 개인이 자기의 공간 안에 한다.
프라이빗 클라우드(private cloud) 아니면 온프레미스(On-premise) , 내 영역 안에서 구축한 클라우드다, 온프레미스 클라우드.
이런 프라이빗, 온프레미스 클라우드 부분을 가지고 하는 클라우드.
그래서 프라이빗 한, 온프레미스 한 클라우드하고 퍼블릭하게 남들하고 공동으로 하는 상업적인 클라우드를 믹스해서 클라우드가 점점 과반을 넘는 인프라를 커버하는 형태로 넘어가고 있다.
클라우드 확산이 굉장히 중요하고, 클라우드가 갖고 있는 경제성이 굉장히 효과적이고, 클라우드가 갖고 있는 융통성이나 스케일이 굉장히 크기 때문에 이 클라우드를 레버리지하는 인프라를 가지고 갈 수밖에 없고, 이걸 잘 활용할 수 있는 방법을 강구해서 대응을 해야 된다.
이런 클라우딩 인프라가 굉장히 대세고, 클라우드 서비스가 대세라는데 그러면 어떤 것들을 서비스 할 수 있느냐?
모든 종류의 상품이 클라우드에 다 있다고 말하고 있습니다.
물론 한 가지 숨어 있는 문제는 있습니다.
어떤 리소스를 내가 준비해서 직접 다 구축해서 쓰는 상태에 비해서 내가 리소스를 100퍼센트 쓴다면 클라우드는 아직은 비쌉니다.
그렇지만 내가 그걸 준비하는 과정이나 이런 부분들을 할 수 있는 힘이나 실력이나 능력이나 시간이나 이런 게 없을 때는 당연히 이게 대안이 될 거고요.
비용하고 이런 부분에서 어느 정도 포인트에서 균형점을 찾아야 되지만 전반적으로 온 디멘드로 동적으로 인프라 없이 내가 새로운 서비스를 펼쳐 보겠다는 사람들 입장에서는 클라우드가 굉장히 유용한 환경이 될 것 같습니다.
가상 머신을 활용해서 하는 것에서 먼저 시작이 됐다.가상 머신을 가지고 피지컬 머신을 가상 머신으로 나눠서 한 대를 스무 대로 나눠주는 이런 개념에서 먼저 시작됐고요.그렇지만 요즘은 점점 컨테이너를 활용한 클라우드 네이티브 방식, 서버 리스 방식으로 훨씬 더 유연하게 만들어서 그 서비스에 대응하는 방식으로 진화하면서 클라우드가 훨씬 더 유용성의 범위를 더 증가하는 상태로 진화하고 있다.
참조: www.edwith.org/computer-systems/lecture/40789/
참조 :www.redhat.com/ko/topics/cloud-computing/cloud-vs-virtualization