Amazon Web Services 한국 블로그

AWS Telco Network Builder – 통신 네트워크 배포 및 관리 서비스 출시

100여 년의 시간 동안 통신 산업은 표준화되고 규제되었으며, 그 과정에서 메소드와 기술, 다양한 용어(흥미로운 두문자어로 가득 차 있음)가 개발되었습니다. 업계에서는 고객에게 최상의 음성 및 데이터 서비스를 제공한다는 명목으로 이 엄청난 유산을 존중하는 동시에 신기술을 활용해야 합니다.

오늘은 AWS Telco Network Builder (TNB)에 대한 이야기를 하려고 합니다. 이 새로운 서비스는 통신 서비스 공급자(CSP)가 AWS에서 공용 및 사설 통신 네트워크를 배포 및 관리할 수 있도록 설계되었습니다. 기존 표준, 관행 및 데이터 형식을 사용하므로 CSP가 AWS의 성능, 규모 및 유연성을 더 쉽게 활용할 수 있습니다.

오늘날 CSP는 종종 코드를 가상 머신에 배포합니다. 그러나 미래를 대비하면서 이들은 추가적인 유연성을 모색하고 있으며 컨테이너를 점점 더 많이 사용하고 있습니다. AWS TNB는 이러한 전환의 일환으로 패키징 및 배포를 위해 Kubernetes와 Amazon Elastic Kubernetes Service(EKS)를 사용합니다.

개념 및 용어
서비스에 대해 자세히 알아보기 전에 이 업계에서 고유하게 사용되고 AWS TNB와 관련된 몇 가지 개념과 용어를 살펴보겠습니다.

  • 유럽 통신 표준 협회(ETSI) – 전 세계적으로 사용하기에 적합한 사양을 정의하는 유럽 조직입니다. AWS TNBETSI SOL001 ~ ETSI SOL005ETSI SOL007 등 다양한 ETSI 사양을 지원합니다.
  • 통신 서비스 공급자(CSP) – 통신 서비스를 제공하는 조직입니다.
  • 클라우드 애플리케이션을 위한 토폴로지 및 오케스트레이션 사양(TOSCA) – 통신 애플리케이션의 서비스 템플릿을 설명하는 데 사용되는 표준화된 문법입니다.
  • 네트워크 기능(NF) – 통신 네트워크 내에서 특정 핵심 또는 부가 가치 기능을 수행하는 소프트웨어 구성 요소입니다.
  • 가상 네트워크 기능 설명자(VNFD) – 네트워크 기능을 온보딩하고 관리하는 데 필요한 메타데이터 사양입니다.
  • 클라우드 서비스 아카이브(CSAR) – VNFD, 네트워크 함수를 포함하는 컨테이너 이미지에 대한 참조, 네트워크 기능을 지원하고 관리하는 데 필요한 추가 파일이 포함된 ZIP 파일입니다.
  • 네트워크 서비스 설명자(NSD) – 네트워크 기능 집합에 대한 컴퓨팅, 스토리지, 네트워킹 및 위치 요구 사항 사양과 이를 조합하여 통신 네트워크를 형성하는 데 필요한 정보를 제공합니다.
  • 네트워크 코어 – 네트워크의 핵심. 컨트롤 플레인 및 데이터 평면 작업을 사용하여 인증, 권한 부여, 데이터 및 정책을 관리합니다.
  • 서비스 오케스트레이터(SO) – 외부의 고급 네트워크 관리 도구입니다.
  • 무선 액세스 네트워크(RAN) – 특정 지역에 무선 커버리지를 제공하는 구성 요소(기지국, 안테나 등).

AWS Telco Network Builder(TNB) 체험하기
저는 CSP가 아니지만 시작하는 과정을 안내해 드리기 위해 최선을 다하겠습니다! 기본 단계는 다음과 같습니다.

  1. CSAR을 업로드하여 각 네트워크 함수에 대한 함수 패키지를 생성합니다.
  2. 네트워크 서비스 설명자(NSD)를 업로드하여 네트워크용 네트워크 패키지를 생성합니다.
  3. NSD를 선택하고 인스턴스화하여 네트워크를 생성합니다.

시작하려면 AWS TNB 콘솔을 열고 시작하기(Get started)를 클릭합니다.

처음에는 네트워크, 함수 패키지 및 네트워크 패키지가 없습니다.

동료들이 이 블로그 게시물에 사용할 샘플 CSAR과 NSD를 제공했습니다(네트워크 기능은 Free 5G Core에서 제공).

각 CSAR은 내부에 VNFD 및 기타 항목이 포함된 매우 간단한 ZIP 파일입니다. 예를 들어 Free 5G Core 세션 관리 기능(smf)의 VNFD는 다음과 같습니다.

tosca_definitions_version: tnb_simple_yaml_1_0

topology_template:

  node_templates:

    Free5gcSMF:
      type: tosca.nodes.AWS.VNF
      properties:
        descriptor_id: "4b2abab6-c82a-479d-ab87-4ccd516bf141"
        descriptor_version: "1.0.0"
        descriptor_name: "Free5gc SMF 1.0.0"
        provider: "Free5gc"
      requirements:
        helm: HelmImage

    HelmImage:
      type: tosca.nodes.AWS.Artifacts.Helm
      properties:
        implementation: "./free5gc-smf"

VNFD의 마지막 섹션(HelmImage)은 구현을 정의하는 Kubernetes 차트 Helm을 가리킵니다.

콘솔에서 함수 패키지(Function packages)를 클릭한 다음 함수 패키지 만들기(Create function package)를 클릭합니다. 그런 다음 첫 번째 CSAR을 업로드하고 다음(Next)을 클릭합니다.

세부 정보를 검토하고 함수 패키지 만들기(Create function package)를 클릭합니다(각 VNFD에는 특정 배포에 특정한 값으로 덮어쓸 수 있는 기본값을 가진 파라미트 세트가 포함될 수 있음).

나머지 9개의 CSAR에 대해 이 프로세스를 반복하면 10개의 함수 패키지를 모두 사용할 수 있습니다.

이제 네트워크 패키지를 만들 준비가 되었습니다. 네트워크 서비스 설명자도 매우 간단하며 몇 가지를 발췌하여 보여 드리겠습니다. 먼저 NSD는 각 네트워크 함수에 대해 descriptor_id에서 namespace로의 매핑을 설정하여 함수를 이름으로 참조할 수 있도록 합니다.

vnfds:
  - descriptor_id: "aa97cf70-59db-4b13-ae1e-0942081cc9ce"
    namespace: "amf"
  - descriptor_id: "86bd1730-427f-480a-a718-8ae9dcf3f531"
    namespace: "ausf"
...

그런 다음 기본값을 포함한 입력 변수를 정의합니다(이것은 AWS CloudFormation 템플릿을 떠올리게 합니다).

  inputs:
    vpc_cidr_block:
      type: String
      description: "CIDR Block for Free5GCVPC"
      default: "10.100.0.0/16"

    eni_subnet_01_cidr_block:
      type: String
      description: "CIDR Block for Free5GCENISubnet01"
      default: "10.100.50.0/24"
...

다음으로 변수를 사용하여 원하는 AWS 리소스(이 경우 VPC 및 서브넷)에 대한 매핑을 생성합니다.

   Free5GCVPC:
      type: tosca.nodes.AWS.Networking.VPC
      properties:
        cidr_block: { get_input: vpc_cidr_block }
        dns_support: true

    Free5GCENISubnet01:
      type: tosca.nodes.AWS.Networking.Subnet
      properties:
        type: "PUBLIC"
        availability_zone: { get_input: subnet_01_az }
        cidr_block: { get_input: eni_subnet_01_cidr_block }
      requirements:
        route_table: Free5GCRouteTable
        vpc: Free5GCVPC

그런 다음 VPC 내에 AWS 인터넷 게이트웨이를 정의합니다.

    Free5GCIGW:
      type: tosca.nodes.AWS.Networking.InternetGateway
      capabilities:
        routing:
          properties:
            dest_cidr: { get_input: igw_dest_cidr }
      requirements:
        route_table: Free5GCRouteTable
        vpc: Free5GCVPC

마지막으로 EKS 클러스터에 네트워크 함수를 배포하도록 지정합니다. 함수는 지정된 순서로 배포됩니다.

    Free5GCHelmDeploy:
      type: tosca.nodes.AWS.Deployment.VNFDeployment
      requirements:
        cluster: Free5GCEKS
        deployment: Free5GCNRFHelmDeploy
        vnfs:
          - amf.Free5gcAMF
          - ausf.Free5gcAUSF
          - nssf.Free5gcNSSF
          - pcf.Free5gcPCF
          - smf.Free5gcSMF
          - udm.Free5gcUDM
          - udr.Free5gcUDR
          - upf.Free5gcUPF
          - webui.Free5gcWEBUI
      interfaces:
        Hook:
          pre_create: Free5gcSimpleHook

네트워크 패키지 생성(Create network package)을 클릭하고 NSD를 선택한 후 다음(Next)을 클릭하여 계속 진행합니다. AWS TNB에서 함수 패키지 목록과 NSD 파라미터를 검토하도록 요청합니다. 그런 다음 네트워크 패키지 만들기기(Create network package)를 클릭합니다.

내 네트워크 패키지가 생성되어 몇 초 안에 사용할 수 있습니다.

이제 네트워크 인스턴스를 만들 준비가 되었습니다! 네트워크 패키지를 선택하고 작업(Actions) 메뉴에서 네트워크 인스턴스 생성(Create network instance)을 선택합니다.

네트워크 이름과 설명을 입력하고 다음(Next)을 클릭합니다.

원하는 네트워크 패키지를 선택했는지 확인하고 배포할 함수 패키지 목록을 검토한 후 다음(Next)을 클릭합니다.

그런 다음 최종 검토를 수행하고 네트워크 인스턴스 생성(Create network instance)을 클릭합니다.

새 네트워크 인스턴스를 선택하고 작업(Actions) 메뉴에서 인스턴스화(Instantiate)를 선택합니다.

파라미터를 검토하고 원하는 재정의를 입력한 다음 네트워크 인스턴스화(Instantiate network)를 클릭합니다.

AWS Telco Network Builder(TNB)가 네트워크를 인스턴스화하기 시작합니다. 이 서비스는 백그라운드에서 AWS CloudFormation 템플릿을 생성하고, 템플릿을 사용하여 스택을 생성하고, 차트 Helm 및 사용자 지정 스크립트를 비롯한 다른 작업을 실행합니다. 인스턴스화 단계가 완료되면 네트워크를 사용할 준비가 된 것입니다. 네트워크를 인스턴스화하면 배포가 생성되고 동일한 네트워크(일부 파라미터가 재정의되었을 수 있음)를 두 번 이상 배포할 수 있습니다. 모든 배포를 한 눈에 볼 수 있습니다.

대시보드로 돌아가서 네트워크, 함수 패키지, 네트워크 패키지 및 최근 배포를 확인할 수 있습니다.

AWS TNB 배포 내부
배포 내부를 간단히 살펴보겠습니다. AWS TNB가 설정한 내용은 다음과 같습니다.

네트워크 – 서브넷 3개, 라우팅 테이블, 경로 및 인터넷 게이트웨이가 있는 Amazon Virtual Private Cloud(Amazon VPC).

컴퓨팅Amazon Elastic Kubernetes Service(EKS) 클러스터입니다.

CI/CD – 클러스터에 노드가 추가될 때마다 트리거되는 AWS CodeBuild 프로젝트입니다.

알아야 할 사항
다음은 AWS Telco Network Builder(TNB)에 대해 알아야 할 몇 가지 사항입니다.

액세스 – 위에서 보여드린 콘솔 액세스 외에도 AWS Command Line Interface(AWS CLI)AWS SDKs에서 AWS TNB에 액세스할 수 있습니다.

배포 옵션 – 단일 AWS 리전의 여러 가용 영역을 아우르는 네트워크를 생성할 수 있는 기능을 출시하고 있습니다. 시간이 지남에 따라 로컬 영역 및 Outposts와 같은 추가 배치 옵션을 추가할 예정입니다.

요금 – 요금은 AWS TNB에서 관리하는 네트워크 함수의 수와 AWS TNB API에 대한 호출을 기준으로 책정되지만, 각 AWS 지역에서 처음 월간 45,000개의 API 요청에 대해서는 요금이 부과되지 않습니다. 배포의 일부로 생성된 AWS 리소스에 대한 추가 요금도 있습니다. 자세히 알아보려면 TNB 요금 페이지를 읽어보세요.

시작하기
자세히 알아보고 시작하려면 AWS Telco Network Builder (TNB) 홈 페이지를 방문하세요.

Jeff;