-
SDN과 NFV개발/클라우드컴퓨팅 2019. 4. 21. 13:28
SDN (Software Defined Network)
SDN은 "네트워크 자원을 소프트웨어적으로 가상화해서 운영하는 기술이다" 라고 한줄만 가지고 이해하기 모호하니 딱 정의하기에 앞서 이 기술이 나오게 된 배경부터 주목해보자. 지금과 같이 인터넷이 크게 발달하기 전에는 트래픽의 양이 많지 않았고 트래픽의 패턴도 서버와 클라이언트에게 주고받는 데이터 정도로 단순했다. 그런데 스마트폰의 시대가 시작되면서 트래픽의 양이 급격히 증가하기 시작했고 패턴도 단순히 클라이언트와 주고 받는 것이 아니라 다른 서버의 데이터베이스에 접근하는 경우가 생기기 시작했다. 이전보다 네트워크 관리 하는 것이 훨씬 복잡해졌다.
과거에는 네트워크 장비들이 모두 하드웨어로만 조작 할 수 있었다. 트래픽이 감당 할 수 없을 정도로 많아진 경우에는 서버를 더 사야했고 다른 서버로 연결 할 때는 연결시 필요한 방화벽, 스위치 등등도 추가로 구매해야 했다. 이런 경우들은 비용문제도 있을 뿐만 아니라 기존 서버에 새로운 하드웨어를 증설하는 일이 꽤나 시간도 오래 걸리고 번거롭다는 문제가 있었다. 가상화 기술이 나오면서 네트워크 장치들도 소프트웨어적으로 해결해 관리를 편하게 하려는 움직임이 있었는데 이런 요구사항으로 나오게 된 것이 SDN이다.
출처: 주니퍼
SDN을 사용하면 서버를 여러대를 살 필요 없이 한번에 성능 좋은 서버를 산후 여러개의 VM을 돌려서 복수의 서비스를 돌릴 수 있다. 특정 서비스에 트래픽이 몰리면 이전처럼 서버를 추가로 증설할 필요 없이 트래픽이 몰리는 VM에 하드웨어 자원을 더 많이 할당해서 해결 할 수 있다. 예전처럼 하드웨어적으로 처리할 필요가 없어 관리하기가 쉬우며 놀고 있는 다른 VM의 자원들을 끌어다가 사용할 수 있기 때문에 비용적으로도 효율적이다.
NFV (Network Function Virtualization)
NFV는 앞서 설명한 SDN을 소프트웨어적으로 구현할 수 있는 기술이다. 구체적으로 설명하면 switch, firewall 같은 표준화된 네트워크 장비들을 소프트웨어적으로 만들수 있으며 서버에 설치된 네트워크, 스토리지, CPU 등 컴퓨팅 리소스의 orchestration을 담당하는 컴포넌트다. SDN이 NFV를 포함하는 기술이라고 보면 될 것 같다. 사실은 거의 전부라고 생각되긴 하지만.
출처: 주니퍼
세세하게 들어가면 끝도 없으니 위 그림의 컴포넌트들에 대해서 짤막하게만 알아두고 가자.
VNF (Virtualized Network Functions)
가상화 해서 만든 네트워크 장비들이다. 가상의 방화벽, 스위치, 로드밸런서 등등이 이에 해당한다. 필요에 따라서 여러 개를 만들 수 있다. 클라우드 환경에서 돌아가고 있는 서비스들이 바라보는 네트워크 장비이기도 하다.
NFVI (NFV Infrastructure)
앞서 설명한 VNF와 실제 하드웨어 장비간의 인터페이스를 담당한다. Virtualization Layer를 통해서 물리 장비에 매핑 할 수 있는 컴포넌트다. API라고 생각하면 좋을 것 같다.
NFV MANO(Management and Orchestration)
가상의 네트워크 장비(VNF)를 NFV 인프라스트럭처 (NFVI)를 이용해 실제 하드웨어에 매핑하고 NFV에서 자원 할당 문제로 번번히 언급되는 VNF 스케줄링, VNF 연결문제(Chain Composition) 등등을 다루는 핵심 컴포넌트다.
'개발 > 클라우드컴퓨팅' 카테고리의 다른 글
Kubernetes 소개 (0) 2018.06.23 오픈스택 구조 분석 (0) 2017.03.07 오픈스택이란? (0) 2017.03.07 클라우드 가상화와 Docker (2) 2017.03.05 클라우드 컴퓨팅(Cloud Computing) (0) 2017.02.25