AWS 기술 블로그

Vueron의 혁신적인 SaaS 전환기 – AWS SBT로 30일만에 이룬 성과

1. Vueron 소개

Vueron은 자율주행과 스마트 인프라를 위한 LiDAR 인지 소프트웨어와 AI 개발 플랫폼인 VueX 을 제공하는 기업입니다. Vueron은 북미, 아시아를 중심으로 다수의 글로벌 프로젝트를 수행해 왔으며, 정확성, 실시간성, 안전성을 핵심 가치로 삼아 OEM, Tier 1, 로보틱스, 스마트시티 분야 파트너들과 협력하고 있습니다. VueX는 데이터 수집부터 라벨링(가공), 학습, 검증, 배포 과정을 하나의 파이프라인으로 연결하여, 대규모 3D 데이터 기반 AI 개발을 표준화하고 있습니다. 이번 블로그에서는 Vueron이 AWS 에서 제공하는 오픈 소스 도구인 SaaS Builder Toolkit for AWS(SBT)를 활용하여 단 한달만에 빠르게 VueX를 SaaS 모델로 전환 구축한 사례를 소개합니다.

2. Vueron의 SaaS 구축 필요성

Vueron은 기존의 솔루션을 고객의 환경에서 설치형의 전통적인 방식으로 제공했으며, 이 때 다음과 같은 어려움을 겪었습니다:
프로젝트가 늘어날수록 고객사마다 다른 인프라, 권한, 보안 정책에 맞춰 설치작업을 반복하느라 온보딩이 지연되고, 고객사별 상이한 시스템 환경으로 인해 버그 재현과 패치, 배포 및 장애 대응이 비효율적이었습니다. LiDAR 특성상 PCD, 라벨, 모델 아티팩트가 테라바이트(Terabyte) 단위로 축적되면서 저장 및 보관 비용은 가파르게 증가했지만, 표준화되지 않은 데이터 경로와 정책 탓에 비용 예측과 최적화가 어렵고 처리 성능도 일정하지 않았습니다. 국가, 리전별 데이터 거버넌스 요구는 각각 따로 대응해야 했고, 고객사 네트워크/보안 차이로 배포 스크립트가 분기되어 배포 속도가 느렸고 품질 가시성이 떨어졌습니다.

Vueron은 이러한 반복적으로 발생하는 어려움에 소요되는 리소스를 최소화하고, 제품 개발에 더 많은 역량을 집중하기로 했습니다. 그 결과 Vueron은 SaaS 모델을 도입함으로써 고객 환경마다 반복되던 설치, 설정 부담을 줄이고, 신속한 온보딩과 배포 자동화가 가능해졌습니다. 또한 클라우드 기반 운영으로 데이터 관리 효율성과 보안, 확장성이 크게 향상되어, 고객에게 일관된 품질과 최신 기능을 제공할 수 있게 되었습니다.

3. SaaS Builder Toolkit for AWS(SBT)를 적용한 SaaS 구축 사례

Vueron은 AWS SBT를 활용하여 단 30일만에 VueX를 SaaS 형태로 구축하였습니다. 이번 장에서는 SBT가 무엇인지 소개하고, 어떻게 Vueron이 SBT를 적용했는지 설명하겠습니다.

3.1. SBT 소개

SBT는 AWS에서 효율적인 SaaS 개발을 위해 설계된 오픈소스 도구 모음입니다. SBT는 재사용 가능한 공통 구성 요소와 AWS 기반 SaaS 구축을 위한 모범 사례를 제공하며, AWS가 제공하는 IaC 도구인 CDK로 구축되어 유연한 구성이 가능합니다. 특히 선도적인 ISV 제품들과의 사전 구축된 연동을 제공하여 개발 프로세스를 간소화하고, SaaS를 구축하는 기업들이 SaaS 모델에 공통적으로 필요한 기본적인 인프라 구축 보다는 고객 가치 창출 개발에 더 집중할 수 있습니다. SBT는 신규 또는 기존 SaaS 제공업체 모두에게 효과적인 개발 가속화 도구로, 서비스 출시 시간을 단축하고 확장 가능한 SaaS 솔루션을 구축하는데 도움을 줍니다.

SaaS 기본 사항

SaaS는 Control Plane, Application Plane 두 가지 영역으로 나뉩니다. Control Plane은 멀티테넌트 SaaS 솔루션을 보다 단일되고 통합된 경험을 제공하기 위해 온보딩, 인증, 테넌트 관리, 운영 및 분석하는 데 사용되는 모든 기능과 서비스를 포함합니다. Application Plane은 애플리케이션의 멀티테넌트, 테넌트별 격리가 구현되는 영역입니다.

SBT는 CDK(Cloud Development Kit) 로 구축되었습니다. CDK는 코드를 사용하여 클라우드 인프라를 정의하고, AWS CloudFormation을 통해 이를 배포하는 오픈 소스 프레임워크입니다. SBT를 통해 Control Plane과 Application Plane을 쉽게 구축할 수 있습니다. CDK 응용 프로그램을 개발환경에 구성한 후, 아래와 같이 SBT 구성요소를 설치 할 수 있습니다.

npm install @cdklabs/sbt-aws

Control Plane

SBT 패키지 설치 후에, SaaS 서비스를 위해 아래와 같이 Control Plane을 구축하기 위한 파일을 생성합니다. 여기서, SaaS 서비스 관리자가 임시 비밀번호를 수신할 수 있는 실제 이메일 주소를 전달합니다.

import { CognitoAuth, ControlPlane } from '@cdklabs/sbt-aws';
import { Stack } from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class ControlPlaneStack extends Stack {
 public readonly regApiGatewayUrl: string;
 public readonly eventBusArn: string;

 constructor(scope: Construct, id: string, props: any) {
   super(scope, id, props);
   const cognitoAuth = new CognitoAuth(this, 'CognitoAuth', {
     idpName: 'COGNITO',
     systemAdminRoleName: 'SystemAdmin',
     systemAdminEmail: 'ENTER YOUR EMAIL HERE',
   });

   const controlPlane = new ControlPlane(this, 'ControlPlane', {
     auth: cognitoAuth,
   });
   this.eventBusArn = controlPlane.eventBusArn;
   this.regApiGatewayUrl = controlPlane.controlPlaneAPIGatewayUrl;
 }
}

이 예제에서는 “ControlPlaneStack”이라는 새로운 CDK 스택 을 만들고 있다는 점에 주목하세요. 이 스택에서 우리는 @cdklabs/sbt-aws 패키지를 import 해서 단일 ControlPlane Construct를 만들고 있습니다. 이 Construct는 다양한 프로퍼티들을 이용하여 생성되며, 대부분은 Amazon EventBridge 을 통한 통신을 설정하는 데 이용됩니다.

여기서 주목할 만한 또 하나의 중요한 개념은 플러그 접근 방식입니다. 참고로 여기에 구현 “cognitoAuth”라는 “auth” 컴포넌트는 SBT 코어 패키지에 정의된 IAuth 인터페이스를 구현합니다. 현재 IAuth를 Amazon Cognito로 구현했지만, 이 인터페이스를 구현한 어떤 아이덴티티 프로바이더라도 구현할 수 있도록 설계되었습니다.

Application Plane

Application Plane 구축의 핵심은 Control Plane과의 연결을 고성능 서버리스 EventBridge 기반으로 구현하는 매커니즘을 제공하는 데 있습니다.

export interface AppPlaneProps extends cdk.StackProps {
 eventManager: sbt.IEventManager;
}

export class ApplicationPlaneStack extends Stack {
 constructor(scope: Construct, id: string, props: AppPlaneProps) {
   super(scope, id, props);

   const ProvisioningScriptJobProps: TenantLifecycleScriptJobProps = {
     eventManager,
     permissions: new PolicyDocument({
       statements: [
         new PolicyStatement({
           actions: ['*'],
           resources: ['*'],
           effect: Effect.ALLOW,
         }),
       ],
     }),
     script: fs.readFileSync('./scripts/Provisioning.sh', 'utf8'),
     environmentStringVariablesFromIncomingEvent: ['tenantId', 'tier', 'tenantName','email'],
     environmentVariablesToOutgoingEvent: {
       tenantData:['tenantS3Bucket', 'tenantConfig', 'prices', 'tenantName','email'],
       tenantRegistrationData: ['registrationStatus'],
     }
   };
   const ProvisioningScriptJob: ProvisioningScriptJob = new ProvisioningScriptJob(
     this,
     'ProvisioningScriptJob',
      ProvisioningScriptJobProps
   );
   new sbt.CoreApplicationPlane(this, 'CoreApplicationPlane', {
     eventManager: props.eventManager,
     scriptJobs: [ProvisioningScriptJobProps],
   });
 }
}

이 코드는 SBT의 Core Application Plane을 사용하여 EventBridge로 SaaS의 두 영역을 연결합니다. 또한, 온보딩 프로세스를 구현하기 위해 SBT의 TenantLifecycleScriptJobProps를 사용합니다. 이 기능을 통해 SaaS 구현 시 일반적으로 여러 컴포넌트와 단계에 걸쳐 복잡하게 구현되기 쉬운, 온보딩 프로세스를 단일 지점에서 통합적으로 처리할 수 있습니다. 이처럼, SBT를 이용하면 비즈니스 요구사항에 맞는 서비스들의 배포와 프로비저닝을 중앙화된 방식으로 효율적으로 구축할 수 있습니다. 자세한 사항은 핸즈온 워크숍을 통해 SBT의 전체적인 아키텍처를 경험해보실 수 있습니다.

3.2. VueX의 SaaS 아키텍처

VueX는 LiDAR AI 개발을 위한 데이터 수집, 라벨링, 학습, 검증, 배포까지 전 과정을 SaaS 서비스로 제공합니다. Vueron은 SBT를 기반으로 Control Plane과 Application Plane을 적용하고, 고객이 셀프 온보딩 후 바로 데이터를 업로드하고 AI 파이프라인을 실행할 수 있도록 설계 및 구현했습니다.

Control Plane 구성

Control Plane은 SaaS 서비스 운영을 위해 공통적으로 필요한, 온보딩/오프보딩, 테넌트 인증, 테넌트 등록, 사용자 관리의 기능을 SaaS 관리자에게 제공합니다. 이 영역은 SBT 를 이용해 구현되었으며, SBT를 통해 Control Plane 기능을 위해 필요한 Amazon API Gateway, Amazon EventBridge, AWS Step Functions, AWS CodeBuild, Amazon DynamoDB, Amazon Cognito를 자동으로 구성하고, 서비스를 위한 테넌트 관리, 사용자 관리, 온보딩 처리를 위한 Lambda 함수들이 프로비저닝 됩니다.

VueX를 구독하는 테넌트는 AWS Marketplace에서 VueX SaaS를 구독하거나 초대를 통해 가입합니다. Cognito가 사용자 인증과 권한 관리를 담당하고, SaaS 서비스의 API Gateway는 외부 요청을 받아 Control Plane과 Application Plane으로 전달합니다. Control Plane DB는 모든 테넌트 메타데이터를 저장하며, 이를 기반으로 Application Plane의 리소스가 프로비저닝됩니다.

Application Plane 구성

고객 데이터와 AI 워크로드는 Application Plane에서 실행됩니다. VueX의 여러 테넌트들을 위한 서비스를 진행하기 위해, AWS의 관리형 Kubernetes 서비스인 Amazon Elastic Kubernetes Service(EKS) 를 사용하며, EKS는 SaaS 서비스를 구축하는 최적의 환경을 제공합니다. 각 테넌트 워크로드와 관련 테넌트 관련 오브젝트들은 Namespace 단위로 격리됩니다. 테넌트에 대한 리소스는 티어(구독 플랜)에 따라 다른 방식으로 할당되며, 각 티어별 리소스는 Auto Scaling Group과 GPU 노드를 통해 라벨링/추론 워크로드를 수평 확장됩니다.

  • Free 티어 (Pool): 여러 테넌트가 하나의 클러스터와 리소스를 공유합니다. 리소스를 공유하므로 비용 효율적으로 이용할 수 있습니다.
  • Standard 티어 (Less Pool): 테넌트별로 네임스페이스는 분리하되 일부 리소스를 공유합니다. 성능과 격리 수준의 균형을 제공합니다.
  • Premium 티어 (Silo): 특정 테넌트가 전용 리소스를 할당받습니다. Amazon RDS, Amazon Simple Queue Service(Amazon SQS), Amazon ElastiCache(Redis) 까지 모두 전용으로 제공되어 높은 보안과 성능이 요구되는 엔터프라이즈 환경에 적합합니다.

데이터 경로와 보안 설계

VueX는 AI Annotation 기능을 제공하며 대규모 3D Point Cloud 데이터를 안전하고 효율적으로 처리하도록 설계되었습니다. 테넌트별 Point Cloud Data(PCD)는 Amazon S3에 저장되며, 내부 GPU 학습 노드 등은 S3 Gateway Endpoint를 통해 VPC 내에서 직접 접근합니다. 이 아키텍처는 데이터를 외부 인터넷으로 노출시키지 않으므로 데이터 전송 비용을 절감하고 보안을 극대화합니다.

데이터 시각화를 위해 Amazon CloudFront로 PCD를 사용자에게 전달하며, 이때 Lambda@Edge를 활용해 테넌트 간 데이터 접근을 완벽하게 격리합니다. Lambda@Edge는 오리진(S3)으로 요청이 도달하기 전에 사용자의 접근 권한을 동적으로 검증하여, 오직 인가된 사용자만이 자신의 데이터에 접근하도록 보장합니다.

운영 자동화 및 확장성

VueX 아키텍처는 멀티테넌트 SaaS 환경에서 운영 편의성과 확장성을 확보하기 위해 설계되었습니다. 각 고객사별 리소스 논리적 분리를 기반으로, 시스템은 특정 테넌트의 리소스 사용 현황을 실시간으로 수집하고 모니터링합니다. 이를 통해 리소스를 자동으로 확장 및 축소하고, 문제가 발생한 테넌트에만 선별적으로 핫픽스 배포가 가능하도록 제어 체계를 구축했습니다.

주요 구현 사항으로는, SBT를 활용한 테넌트 온보딩 자동화를 통해 신규 고객이 계약 직후 1시간 이내에 서비스를 이용할 수 있도록 했으며, 중앙 집중식 프로세스를 통해 인프라 프로비저닝과 보안 정책 적용, 권한 설정까지 일관되고 신속하게 처리됩니다. 또한, EKS 클러스터에서 Karpenter 기반 자동 확장을 도입해 GPU 노드를 필요에 따라 동적으로 배치함으로써 비용과 성능을 최적화했습니다. 이러한 구조는 멀티 테넌트 환경의 수요 변동에도 유연하게 대응하며, SaaS 운영 효율성을 크게 향상시킵니다.

뿐만 아니라, 공유 리소스 기반의 Pool 모델과 독립 환경의 Silo 모델을 함께 지원하여 고객별 요구와 보안 수준에 맞는 다양한 운영 옵션을 구현하였습니다.

4. Vueron의 SaaSification 결과

Vueron은 VueX를 SaaS 형태로 제공하여, 고객이 회원가입만 하면 계정 생성 → 데이터 업로드 → 결과 확인을 즉시 스스로 진행할 수 있습니다. 복잡한 설정이나 대기 시간이 사라져 전체 과정이 단순하고 직관적으로 연결됩니다. 이에 따라 고객은 제품을 처음 접하는 순간부터 가치를 빠르게 체감(Time-to-Value) 하고 만족도가 크게 높아지고 있습니다.

1. 온보딩 속도의 혁신

이전에는 새로운 고객이 파일럿을 시작하기까지 계정 설정, 프로젝트 생성, 버킷 생성 및 권한 할당을 엔지니어가 수동으로 처리해야 했으며, 평균적으로 약 4~6시간이 소요되었습니다. 이제는 고객이 VueX에 가입하면 엔지니어가 수동으로 처리했던 작업과 프로비저닝이 모두 자동화되어, 고객은 구독 직후 1시간 이내에 데이터 업로드와 Viewer 확인까지 스스로 완료할 수 있습니다. 이를 통해 고객이 서비스를 처음 경험하는 과정이 크게 개선되어, 서비스에 대한 첫인상과 가치 인식(Time-to-Value)이 획기적으로 향상되었습니다.

2. 운영 일관성과 안정성 확보

AWS SBT의 Control Plane을 적용하면서 테넌트 관리, 사용자 권한, 과금, 메트릭 수집이 표준화된 API와 워크플로로 통일되었습니다. 이로 인해 테넌트가 늘어나도 운영 복잡도를 효과적으로 억제할 수 있으며, 버전 릴리스와 보안 정책을 모든 고객에게 동시에 적용할 수 있게 되었습니다. 또한, 일관된 환경에서 장애 대응과 버그 재현이 가능해져 운영 효율성이 크게 향상되었습니다.

3. 성능과 비용의 균형

VueX의 핵심 워크로드인 오토라벨링과 추론 작업은 GPU 자원이 필요합니다. SBT 기반 멀티테넌트 모델에 EKS 오토스케일링을 적용해 GPU 노드가 워크로드에 따라 자동으로 확장되면서, 배치 처리량은 약 3.5배 향상되고 처리 지연은 30% 이상 감소했습니다. 또한 S3 Intelligent-Tiering과 GPU 스팟 인스턴스 활용을 통해 월 인프라 비용을 약 25% 절감할 수 있었습니다.

4. 보안과 거버넌스 내재화

이전에는 고객별 요구사항에 따라 보안 정책을 따로 관리했지만, 이제는 IRSA(IAM Roles for Service Accounts) 최소 권한, AWS Key Management Service(KMS) 기반 암호화, 사전서명 URL을 통한 안전 업로드가 기본값으로 적용됩니다. 리전별 데이터 거버넌스 요구도 Control Plane에서 정책 기반으로 관리되어, 엔터프라이즈 고객이 요구하는 규제 준수, 감사 추적을 손쉽게 충족할 수 있습니다.

5. 고객층 확장 가능성

SBT를 통해 VueX는 다양한 고객층을 위한 유연한 Pool/Silo 모델을 운영할 수 있게 되었습니다. 스타트업 고객은 저비용의 공유형(Pool)에서 빠르게 시작할 수 있고, 엔터프라이즈 고객은 전용형(Silo)으로 보안과 성능을 보장받을 수 있습니다. 이러한 아키텍처는 OEM부터 스타트업까지 다양한 고객 요구를 충족하면서, Vueron의 SaaS를 글로벌 시장으로 확장할 수 있는 기반이 되었습니다.

5. Vueron의 AWS SBT를 통한 SaaSification 후기

멀티테넌트, SaaS 서비스 아키텍처를 설계하는 과정은 수많은 고민과 어려운 결정의 연속이었습니다. 특히 어떤 요소를 필수로 포함해야 하고, 어떤 방향으로 아키텍처를 설계해야 하는지 판단하는 일은 쉽지 않았습니다. 이 과정에서 SaaS Builder Toolkit for AWS(SBT)는 Well-Architected 프레임워크에 기반한 효과적인 도구로서 큰 도움을 주었습니다.

SBT가 가장 유용했던 점은 프로비저닝 파이프라인 자동화였습니다. 아키텍처 설계 단계에서 반드시 고민해야 할 많은 요소들이 이미 준비되어 있었기 때문에, 저희는 AWS CDK를 통해 배포만 하면 곧바로 활용할 수 있는 수준으로 시작할 수 있었습니다. 덕분에 단기간에 기초적인 구조를 설계하고 구현할 수 있었습니다.

SBT가 많은 부분에서 유용했지만, 세부적인 기능이나 내부 동작을 완전히 이해하기 위해서는 코드를 직접 분석하고 학습하는 과정이 필요했습니다. 예를 들어, EventBridge를 통한 프로비저닝 데이터 처리 부분은 코드와 스크립트를 살펴보며 세심하게 파악해야 했습니다. 또한, 실제 서비스 환경의 비즈니스 요구사항을 반영하기 위해 SBT의 내부 구조와 흐름을 충분히 이해하고 필요한 부분을 커스터마이징하는 작업이 필수적이었습니다.

결국 멀티테넌트 SaaS 아키텍처 구축에서 프로비저닝과 인증 로직은 가장 필수적인 출발점이며, 어떠한 아키텍처를 구상하더라도 반드시 첫 번째로 다루어야 할 과제라는 점을 다시금 확인할 수 있었습니다. Vueron은 SBT를 통해 이와 관련된 핵심 정보를 얻고 빠르게 기초 아키텍처를 구현할 수 있었으며, 이는 SaaS 서비스 구축에 있어 매우 중요한 경험이 되었습니다.

이제혁

CDN, 클라우드, 블록체인 등 20년간 다양한 플랫폼의 설계 및 개발 업무를 진행해 왔으며, 현재는 Vueron 테크놀로지에서 인지소프트웨어 플랫폼과 VueX SaaS 서비스 개발을 총괄하고 있습니다. 특히 개발 연속성을 유지하고 개발자 온보딩 시간을 최소화하는 환경을 구축하여 생산성 높은 조직을 만드는 데 노력을 기울이고 있습니다.

김도형

Vueron에서 근무중인 9년차 백엔드 개발자로, 게임, 블록체인, 일반 웹 서비스 등 다양한 도메인의 프로젝트를 담당해왔습니다. 이번 SaaS 플랫폼 구축 프로젝트에서는 백엔드 아키텍처 설계와 클라우드 인프라 구현을 맡았습니다.

박혜민

Vueron에서 글로벌 사업을 담당하며 AWS와의 협력을 통해 다양한 지역에서 파트너십을 강화하고 있습니다. OEM 및 Tier 1 기업과의 공동 프로젝트와 PoC를 주도하며, 클라우드 기반 AI 플랫폼이 모빌리티, 로보틱스, 스마트 인프라 등 여러 산업 분야에 적용될 수 있도록 지원하고 있습니다. 또한 CES를 비롯한 주요 국제 전시회와 컨퍼런스에서 Vueron의 기술과 성과를 소개하며, 글로벌 고객 및 파트너와의 협력을 지속적으로 확대하고 있습니다.

Jinah Kim

Jinah Kim

김진아 솔루션즈 아키텍트는 스타트업 고객이 효율적이고 안정적인 서비스를 운영할 수 있도록 아키텍처 설계 가이드를 드리고 기술을 지원하는 역할을 수행하고 있습니다.

Hoseong Seo

Hoseong Seo

서호성 파트너 솔루션즈 아키텍트는 AWS 위에 SaaS 솔루션을 구축하고자 하는 파트너 고객에게 SaaS 아키텍처를 컨설팅해주고, 기술적인 전략 수립을 도와 성공적인 SaaS Journey를 함께 하고 있습니다.

Jessie Lee

Jessie Lee

이제시 어카운트 매니저는 초기 스타트업 또는 AWS를 처음 도입하는 스타트업 고객에게 AWS 클라우드를 이용해서 비즈니스와 연관된 문제를 해결하고 AWS 서비스를 쉽고 빠르게 도입할 수 있도록 안내하고 있습니다. 이전에는 제조, 물류 등 다양한 산업군의 고객분들이 클라우드로 전환하고 가속화 하실 수 있도록 지원한 경험이 있습니다.