AWS SaaS Architecture Fundamentals White Paper 1

Overview

안녕하세요 🙂

AWS 인프라 환경에서 SaaS 서비스를 제공하기 위한 아키텍처 기초에 대한 백서를 제공하고 있습니다.

여기서는 SaaS에 대한 비즈니스 모델에 대한 내용과 기초 아키텍처 개념을 정리하려고 합니다.

이 글은 원문을 해석하는 데 오역 및 주관적인 관점이 포함 될 수 있음을 미리 말씀드립니다.

SaaS is a business model

SaaS는 비즈니스 모델이며, 비즈니스의 목표에 따라 딜리버리 모델에 직접적인 영향을 미칩니다.

여기서 주의해야 할 부분은 각 아이템은 개별적으로 영업 이익을 고려해야 하는 것입니다.

앞에서 언급한 대로 SaaS는 비즈니스 관점에서의 논의가 우선시되어야 한다. 기술적인 관점은 매우 중요하지만, 이는 비즈니스 목표에 포함되어 있어야 한다는 것이 중요합니다. 결과적으로, SaaS는 고객과 공급자에게 최고의 가치를 제공하는 모델이 될 것입니다.

SaaS 딜리버리 모델 채택을 위한 비즈니스 목표 키워드를 다음과 같이 정리합니다.

Agility

신속성

성공적인 SaaS 기업은 시장, 고객 및 경쟁에서 지속적으로 대응 가능해야 합니다.

새로운 가격 정책, 시장 수요 및 고객 요구 사항을 구조적으로 포용 할 수 있도록 해야 합니다.  

Operational efficiency

운영 효율성

SaaS 기업은 확장성과 신속성을 높이기 위하여 운영 효율성을 추구합니다.

운영 효율성은 신규 기능에 대한 신속한 배포를 위한 프로세스를 구축하는 데 중점을 둡니다.

또한 통합 환경에서 다양한 고객의 모든 환경에 대한 운영 관리 및 개발을 진행 할 수 있는 환경을 제공합니다.

Frictionless onboarding

원활한 온보딩

테넌트 고객 온보딩 프로세스가 필요하며, 이는 B2B, B2C 고객에게 적용됩니다.

고객 유형이 중요한 것이 아니라, 어떤 고객이라도 고객의 가치 창출 시간을 줄이는 것이 중요합니다.

서비스 중심 모델 전환에서 중요한 것은 고객 경험에 중점을 둔 반복성과 지속성을 제공 할 수 있는 Onboarding Lifecycle입니다. 

Innovation

혁신

SaaS 전환은 현재 고객의 요구사항을 해결하는 것이 아니라, 혁신을 위한 기반을 다지는 것입니다.

SaaS 모델은 신속성을 기반으로 고객에게 새로운 시장, 기회 및 효율을 제공 할 수 있는 미래 혁신을 추구합니다.

Market response

시장 반응

SaaS는 분기별 출시 전략, 2년 계획 전략과 같은 전통적인 개념과는 거리가 있습니다.

어떤 조직이 실시간으로 시장 유동성에 대응하기 위하여 필요한 역량은 민첩성이며, SaaS에 대한 투자는 신규 고객과 시장 유동성에 대응 할 수 있는 영업 전략을 전환을 할 수 있는 역량을 부여 할 수 있습니다. 

Growth

성장

SaaS는 성장 중심의 사업 전략입니다.

SaaS 조직에 신속성과 효율성이 부여된다면 자연적으로 성장 모델을 목표로 할 수 있습니다.

The initial motivation

SaaS 이해를 위하여 클래식한 패키지 소프트웨어의 관리 및 운영 방법을 먼저 분석합니다. 두 가지를 비교하여 SaaS의 필요성과 이해도를 높일 수 있습니다.

기존 패키지 솔루션에 대한 다이어그램은 다음과 같습니다.

패키지 소프트웨어를 구매한 여러 회사는 각각 독립적인 환경에서 실행됩니다.

개별적인 환경에서 고객사 별 다른 요구사항이 발생하며 이를 각각 지원하는 방식입니다.

따라서 잠재적으로 고객 요구 사항에 따라 버전이 책정 될 가능성이 있어, 제품의 파편화 현상이 발생 할 가능성이 매우 높습니다. 이러한 문제는 고객이 많아질수록 제품을 관리하기 힘들어진다는 것을 의미합니다.

공급자는 고객이 증가할수록 고객 전담 팀을 꾸려 이를 대응해야 하는 경우가 발생합니다.

전담 대응 팀을 꾸리고, 이를 운영하기 위한 비용은 증가합니다..

개별 고객의 인프라 환경에서 솔루션을 구축하는 것 또한 비용이 발생합니다.

인프라의 확장은 고객 별 다른 환경으로 인하여 결과적으로 단일 환경에서의 확장으로 제한됩니다.

단일 환경에서의 확장 경험은 결국 지속적인 경험으로 전환되기 쉽지 않습니다.

인프라 및 서비스 측면에서 고객사가 많아질수록 관리 및 운영 측면에서 부하가 발생하며, 이를 해결하기 위한 비용 투자 대비 이득을 얻기 힘든 구조가 될 것입니다.

새로운 기능을 추가하는 경우에도 문제가 발생합니다.

새로운 기능을 도입 할 때마다 개발 소요 시간보다 고객사 별 기능 및 적용 필요성, 가능성을 분석하는 데 더 큰 시간을 필요로 할 것입니다.

Moving to a unified experience

위와 같은 클래식한 딜레마를 해결하기 위하여 조직은 고객을 일괄적으로 관리 할 수 있는 통합 환경을 제공 할 수 있는 모델로 전환하기 시작합니다.

다음은 통합 환경에서 모든 고객을 관리하는 개념의 다이어그램입니다.

언뜻 보기에는 큰 차이가 없어 보이나, 이는 매우 중요한 차이임을 알 수 있습니다.

고객 환경이 테넌트로 변경됩니다.

단일 SaaS 환경에서 고객의 환경을 테넌트로 정의합니다.

고객은 테넌트에서 필요 리소스를 소비합니다.

테넌트는 회사 또는 개인이 될 수 있습니다.

SaaS 테넌트는 마치 아파트나 사무실 건물에 비유 할 수 있습니다. 공동 건물에서의 세입자를 테넌트로 볼 수 있으며, 테넌트에서 사용하는 리소스의 양은 다르지만 이를 SaaS 환경에서 일괄적으로 관리합니다.

SaaS 환경에서 제공하는 shared service도 포함되어 있습니다. 이는 모든 테넌트에 적용되는 사항입니다. 인증, 온보딩, 관리 모니터링, 비용 청구와 같은 서비스는 모든 테넌트에서 공통적으로 사용하게 됩니다.

또한 SaaS 환경에서의 애플리케이션 버전은 동일합니다. 고객사 별 커스터마이징은 제공하지 않지만 파편화와 같은 기존 소프트웨어 모델에서 발생하는 문제는 발생하지 않습니다.

이러한 모델에서는 기존 모델과는 다르게 신규 고객이 추가되는 것이 항상 운영 오버헤드를 발생하는 행위는 아니게 됩니다.. 

SaaS의 핵심은 애플리케이션 구현 및 구동 방식입니다. 세부 사항에 따라 서비스를 구축하고 제공하는 다양한 방법을 채택 할 수 있습니다. 테넌트 환경을 포괄하는 통합 환경을 구축하고 운영하는 경험은 지속 가능한 경험으로 전환 될 수 있습니다.

Control plane vs. application plane

이전 다이어그램은 핵심 SaaS 아키텍처 개념을 이야기하였습니다.

여기에서는 이를 좀 더 구체화하여 SaaS 환경의 계층을 다음과 같은 두 계층으로 구분합니다.

SaaS 환경은 애플리케이션 동작 환경과, 이를 제어하는 환경으로 구분 할 수 있으며, 아래는 이를 표현한 다이어그램입니다.

제어 계층은 멀티 테넌트 SaaS 모델의 기초이며, 통합 환경을 통해 테넌트를 관리하고 운영 할 수 있는 서비스가 포함됩니다.

제어 계층은 크게 두 가지로 구분하며, 코어 서비스라고하는 멀티 테넌트 환경을 운영하기 위한 서비스와 관리 애플리케이션으로 구분 할 수 있습니다.

제어 계층은 통합 관리를 위한 파트이므로, 멀티 테넌트 환경이 아닙니다.

코어 서비스는 모든 테넌트에게 공통적으로 제공됩니다. 

애플리케이션 계층은 SaaS 애플리케이션과 애플리케이션 서비스 계층으로 구분 할 수 있습니다.

SaaS 애플리케이션은 테넌트에 제공하는 인터페이스 역할을 하며, 서비스 영역은 백엔드 서비스로 마이크로서비스 또는 다른 서비스의 패키징일 수 있습니다.

SaaS 아키텍처를 두 개의 계층으로 구분하여 생각하면, 전체적인 환경에 대한 이해가 더 와닿을 수 있습니다.SaaS 서비스는 애플리케이션 서비스에서 제공하는 범위 밖에 있는, 제어 기능에 대한 필요성을 강조합니다.

Conclusion

비즈니스 관점에서의 SaaS 키워드 및 SaaS 핵심 아키텍처에 대한 간단한 소개를 하였습니다.

다음엔 위에서 이야기한 Control Plane에 대한 이야기를 좀 더 자세히 다뤄보려고 합니다.

Reference

AWS SaaS Architecture Fundamentals White Paper PDF

https://docs.aws.amazon.com/pdfs/whitepapers/latest/saas-architecture-fundamentals/saas-architecture-fundamentals.pdf

Appendix

일반적인 SaaS 정의

Software as a service (or SaaS) is a way of delivering applications over the Internet—as a service. SaaS applications are also known as Web-based software, on-demand software, or hosted software.

It is a cloud-based software delivery model that allows SaaS applications to run on SaaS providers’ servers instead of installing and maintaining software on-premises. The SaaS provider manages access to the application, including security, availability, and performance.
https://www.salesforce.com/in/saas/

Iaas vs PaaS vs SaaS

https://www.eginnovations.com/blog/saas-vs-paas-vs-iaas-examples-differences-how-to-choose/

감사합니다.

문의: info@bespinglobal.com | 대표번호: 02-1688-1280

1 thought on “AWS SaaS Architecture Fundamentals White Paper 1”

Leave a Comment