Study/NCP

[NCP] Transit VPC와 SFC 에 대해 알아보자

Dream Amal 2024. 4. 16.

최근 NCP에서 SFC 라는 서비스가 민간/공공존에 신규로 런칭되었습니다.

현재 SA로 일하면서, NCP로 공공기관과 하고 있는 사업이 있었는데,

해당 사업에서도 Transit VPC와 SFC를 사용하게 되어 해당 서비스에 대해 더욱 자세히 알아보고,

실제로 사용해볼 수 있는 기회가 있었습니다.

NCP에서 주관한 SFC웨비나와 공식 가이드를 기반으로 Transit VPC와 SFC에 대하여 설명해보겠습니다.

 

SFC란?

SFC 출시 배경

우선, Service Function Chain (줄여서 SFC)의 컨셉에 대해 명확하게 알고 있어야, 

해당 서비스를 사용할 때에도 혼돈이 적을 것 같습니다.

(SFC 와 관련된 부가적인 NCP 서비스들이 굉장히 많기 때문입니다,)

 

2023년 1월, 국가 클라우드 컴퓨팅 보안 가이드라인이 새롭게 업데이트 되면서

정보보안관제체계에 대한 연계 요건이 명시 되었습니다.

해당 가이드가 배포되기 이전에는 민간 클라우드 시스템에 대한 보안 관제 요건의 정의가 없었기때문에

CSP나 MSP 또는 기관에서 직접 보안 시스템을 마련하여 관리하고 있었습니다.

그러나 해당 가이드라인이 개정되면서, 정부 보안 관제 체계를 연계할 수 있는 기반을 제공해야 한다는 것이 명시되어

국가/공공기관이 활용하는 민간 클라우드 영역에 대한 보안관제의 수행이 필요해졌습니다.

 

NCP의 Security Monitoring은 민간 공급영역의 윗단에서 managed service로 제공되어왔기 때문에

정부보안관제체계와의 연동이 불가능합니다.

 

해당 가이드라인을 좁은 의미로 해석하여 TMS, IDS 역할만 지원하는 것으로 한정 지을 경우에는

3rd party solution을 활용하려 구성은 가능하지만,

NCP server를 기반으로 TMS 솔루션을 설치하여 제공하게 되면, 무조건 Proxy를 사용해야 하기 때문에

여러 어려움이 있습니다.

또한, 넓은 의미에서 관제 외의 조치까지도 진행해야 한다고 한다면,

IPS, 방화벽 등은 NCP 내에서 server로 설치하여 사용할 수 없기때문

해당 needs를 해결하고자 SFC가 출시되었습니다.

 

SFC 개요

간단하게 SFC에 대해 정의하자면,

SFC는 네트워크의 흐름(경로)를 지정하는 서비스입니다.

클라우드에는 네트워크 가상화와 NFV(네트워크 기능 가상화) 등이 적용되어 있습니다.

특정 서비스를 위해 필요한 NFV를 선택하고, 이들 간의 적용 순서를 추상화 시켜

네트워크 데이터들이 정해진 경로를 거쳐 전달되도록 한 것이 SFC입니다.

또한, SFC는 단방향으로만 구성 가능하기 때문에, 네트워크 요청/응답 시 적용 순서를 반드시 고려해야 합니다.

SFC 적용을 위한 NCP 구성 요소

SFC 구현을 위해 필요한 NCP의 네트워크 상품들에 대해 알아보겠습니다.

Transit VPC

  • SFC를 구현하기 위한 VPC 입니다.
  • VPC-VPC | VPC-internet | VPC-온프렘 간의 네트워크 상호 연결을 위한 허브 역할을 수행합니다.
  • Transit VPC는 각 계정당 최대 1개까지 생성 가능합니다.

SFC subnet

  • SFC 설정 시 SFC Subnet을 생성하여야만 구현이 가능합니다.
  • SFC subnet은 Public 으로만 생성이 가능합니다.
  • 해당 서브넷 생성시 자동으로 만들어지는 routing table은 조회만 가능할 뿐, 수정은 불가능합니다.
    • SFC 서비스를 통해서만 네트워크 제어가 가능하기 때문입니다.
  • 각각의 보안 서비스 용도별로 SFC subnet을 생성하는 것이, 추 후 관리에 용이할 것 같습니다.

Transit VPC Connect

  • 일반 VPC (normal VPC)와 Transit VPC 간의 통신을 위해 필요한 구성요소입니다.
  • Transit VPC Connect를 활용해 일반 VPC와 Transit VPC는 1:1로 연동됩니다.
    • 따라서, 하나의 Transit VPC에 여러개의 일반 VPC를 연결하려면
      일반 VPC 갯수만큼 Transit VPC Connect를 생성해야합니다.
  • 동작은 Peering 보다 VGW(Virtual Private Gateway)와 유사합니다.
    • VGW처럼, 상호 통신 할 VPC 사이에 1개만 생성하여도 통신이 가능합니다.

Endpoint Routing Table

개인적으로 제가 SFC를 구성할 때, 가장 헷갈렸던 부분이 Endpoint Routing Table 을 이해하는 부분이었습니다.

  • Endpoint로 들어오는 트래픽에 대해 Ingress Routing 설정이 가능합니다.
  • Transit VPC에 생성된 Endpoint만 적용이 가능한데,
    때문에 Endpoint Routing Table을 구성할 때에는 반드시 Transit VPC를 기준으로 Routing을 잡아주어야 합니다.
  • 적용 가능한 Endpoint
    • IGW (Internet Gateway)
    • VGW (Virtual Gateway)
      • VGW의 경우,
        VGW Group까지 생성해주어야,
        해당 설정 시 확인이 가능합니다.
    • Transit VPC Connect
      • VGW로 트래픽을 전달하기 위해서는
        라우트 전파 설정을 반드시 해주어야 합니다.

 

Inline LoadBalancer

  • 네트워크 패킷을 변조 없이 전달해야 하는 Inline 방식으로 동작하는 Load Balancer 입니다.
  • 주로 Inline 방식으로 동작하는 보안 어플라이언스들의 Network Interface들을 Cluster 형태로 구성할 때 사용합니다.
    • NIC를 target group으로 지정하여 생성할 수 있습니다.
  • 공인 IP 생성은 불가능합니다.

Service Function Chain (SFC)

  • 구성하고자 하는 트래픽의 최종 목적지를 기준으로 네트워크 경로를 지정합니다.
    • Transit VPC 내에 생성된 Endpoint 및 SFC Subnet의 네트워크 흐름(Chain)을
      사용자가 직접 custom 할 수 있다고 할 수 있습니다.
  • 단방향성의 특징을 가집니다.
    • ingress에 대한 흐름을 정의했다면,
      egress에 대한 흐름도 함께 정의해야 합니다.
  • 흐름 정의가 가능한 Transit VPC 내의 리소스
    • Endpoint : IGW, VGW, Transit VPC Connect
    • Private LB Subnet에 생성된
      Inline Load Balancer
    • SFC Subnet에 생성된
      Virtual Appliance의 특정 NIC

Public IP

  • Transit VPC와 연결된 일반 VPC 내의 LB, 또는 Server의 Public IP를 통해 인입되는 네트워크 트래픽에 대해
    SFC를 적용하고 싶다면 해당 Public IP는 Transit VPC로 우회하도록 설정이 필요합니다.
  • Public IP를 Transit VPC에 위임하여 사용할 수 있습니다.

SFC 구성 방법

SFC를 활용하는 예상 시나리오

  • Public LB, Public IP와 외부 통신 시 보안서비스(SFC) 적용
  • Private IB, Private Server와 온프레미스 통신 시 보안 서비스 적용
  • VPC간 통신시 보안 서비스 적용
  • 같은 VPC 내 서브넷이 다른 Server 간 통신시 보안 서비스 적용
  • 여러 VPC의 인터넷 서비스를 하나의 보안서비스 존 내 관제 및 차단
  • 여러 계정의 VPC에 있는 인터넷 서비스를 하나의 보안서비스 존 내 관제 및 차단

위의 모든 시나리오가 SFC와 Transit VPC를 활용하여 구성할 수 있습니다.

SFC & Transit VPC 구성 방법

❗실제로 제가 Transit VPC와 SFC를 구성해보는 과정에서 생긴 몇가지 TIP을 먼저 말씀드리겠습니다.

1. 트래픽 흐름 단위로 나누어 flow Chart 그려보기 
2. 네이밍 잘하기
3. 핵심 구성 요소들은 미리 정리해, 콘솔 작업시 함께 볼 수 있도록 준비해두기 

하나의 SFC 구성을 위해 사용되는 구성요소가 약 7~10개정도 됩니다.
한 번에 알아볼 수 있는 네이밍은 필수입니다.
또한 반드시.. 초반부터 트래픽 흐름을 명확하게 해두시는 것이 도움이 많이 됩니다.

 

SFC와 보안어플라이언스를 이용한 보안계층구성

 

시나리오 5. SFC 구성

 

guide-gov.ncloud-docs.com

 

  • SFC 구성 시 Server를 생성하게 되면, 3rd partty에 최적화 된 서버 spec이 자동적으로 선택됩니다.
  • 스토리지 또한 기존에 생성되는 스토리지 크기보다 적으면 생성 시 어려움을 겪을 수 있습니다.
  • VM 하나 당 NIC이 3개 필요합니다,
  • SFC 는 목적지 대역을 지정해서 트래픽의 방향을 설정하고 NFV 순서를 지정하여 네트워크 흐름을 제어하는 기능을 합니다.
  • SFC 설정 후, 반드시 VGW, IGW, TVC의 endpoint route table을 설정해주어야 합니다.
    • 개별 endpoint를 통해서 TransitVPC로 인입되는 트래픽에 대해 ingress routing 설정을 위해 필요합니다.
    • 용도별로 개별 endpoint routing table을 설정해주어야 합니다.
  • Transit VPC Connect에서 VPG (Virtual Private Gateway)로 트래픽을 전달하기 위해서는 Transit VPC Connect의 Endpoint Routing Table에서 라우트 전파 설정을 반드시 해주어야 합니다.

 

 

추가적으로, Transit VPC에 대한 API가 아직 없기때문에 Terraform으로는 작업할 수 없습니다.

또한, 저는 반드시 SFC 구성 후에는 ICMP를 활용해 양방향 통신이 가능한지 test하는 과정을 거칩니다.

NAT 또한 공인 IP가 있기때문에, Transit VPC에 해당 공인IP를 위임하여 Transit VPC를 허브로 test해볼 수도 있습니다.

 

Transit VPC가 아직 나온지 얼마 되지 않은 서비스이고,
실제로 Transit VPC에 Server를 올려 test해보고 싶으시더라도, 3rd party 라이센스가 없으면,
서버생성 조차 되지 않는 상황이라 설명만으로 이해가 잘 되실지 모르겠습니다.

 

만약 SFC와 부가적인 서비스에 관심이 있으시다면, 라이센스가 없더라도

우선 Transit VPC Connect 와 Endpoint Routing Table을 활용해 Transit VPC를 Hub로써 사용하는 법을

먼저 익혀보시는 것도 추천드립니다.

 

추 후에 관련하여 참고하실 수 있을만한 정보를 또 한번 공유해보겠습니다.

728x90

'Study > NCP' 카테고리의 다른 글

[NCP] Sub Account 로 계정 관리하기  (1) 2024.05.09
[NCP] 간편한 VIP 관리를 위한 NCP CLI 스크립트  (0) 2024.04.19

댓글