ISV라는 것은 온프레미스에 구성해놓은 솔루션을 클라우드로 이전하여 판매 채널을 늘리는 것을 의미합니다. 즉, ISV on Cloud 라고 하는 것은 SaaS를 만드는 행위와 같습니다.
SaaS(Software as a Service)는 기존의 솔루션 판매 방식인 All-in-one 라이선스 판매 방식이 아닌,구독 기반으로 라이선스가 부여되고 중앙에서 호스팅됩니다. 이 형태는 ERP 및 메시징 소프트웨어, 관리 소프트웨어, 가상화 등을 포함한 많은 비즈니스 애플리케이션의 제공 모델이 될 수 있습니다.
초기의 인터넷 기반 소프트웨어는 SaaS 애플리케이션과는 다르게 온프레미스 애플리케이션과 유사한 기능을 가지고 있었습니다. 이 소프트웨어는 원래 단일 테넌트 애플리케이션으로 구축되었기 때문에 데이터 공유 기능이 제한적이었습니다. 하지만 SaaS 애플리케이션은 온프레미스 애플리케이션과 다르게 경쟁력 있는 기능이 다수 포함되어 제공하는 단일 인스턴스, 다중 테넌트 아키텍처입니다.
SaaS 제공업체는 애플리케이션과 데이터를 중앙에서 호스팅합니다. 패치나 확장, 업그레이드를 애플리케이션 환경에서 투명하게 운영하며 비즈니스 사용자가 사용함에 있어 불편함을 느끼지 않도록 만듭니다. 또한 이 SaaS 제공 업체는 비즈니스 사용자가 기능을 쉽게 확장할 수 있도록 OpenAPI를 제공합니다. 비즈니스 사용자는 OpenAPI를 통해 기업의 비즈니스 형태에 맞게 SaaS 기능을 커스터마이징 할 수 있습니다.
먼저 기존의 온프레미스 애플리케이션을 SaaS로 이전한다는 것은 애플리케이션의 Cloud Native로의 진화라고 이야기할 수 있습니다. 다양한 이점이 많은 클라우드 서비스를 제대로 사용하기 위해서는 아래와 같은 고려사항이 필요합니다.
여전히 많은 기업들은 모놀리식 아키텍처 접근 방식을 사용합니다. 모놀리식 애플리케이션도 3-tier 등으로 계층화하면 전체 애플리케이션에 영향을 주지 않고 빌드, 패치 또는 변경할 수 있습니다.
대규모 프로덕션 환경을 만들 계획이 아니라면 개발/관리가 쉬운 모놀리식 접근 방식을 사용하는 것이 좋습니다. 그러나 이 아키텍쳐는 변경하는 것이까다롭기 때문에 확장이나 많은 변화가 예상되는 경우 마이크로서비스 아키텍처를 선택해야 합니다.
마이크로서비스 아키텍처는 서비스를 단위별로 쪼개서 각각 독립적이고 분리된 프로세스와 아키텍쳐를 만드는 것으로, 각 서비스를 독립적으로 개발, 배포, 테스트 및 패치할 수 있습니다.
또한 각 마이크로서비스를 단일 비즈니스 오퍼링에 집중할 수 있습니다. 가장 성공적인 마이크로서비스 아키텍쳐인 스트리밍 서비스를 예로 들어 보겠습니다. Netflix는 청구, 영화 추천을 위한 시청 기록 분석, 시청 경험을 최적화하기 위한 장치 식별, 모든 파일에 저작권 표시 추가를 위해 다양한 마이크로서비스를 사용합니다. 심지어 Netflix는 그들의 개발, 운영 방식을 오픈소스로 만들어 다른 기업에서 쉽게 마이크로서비스를 운영할 수 있도록 제공하고 있습니다.
마이크로서비스를 사용하여 여러 팀에서 독립적인 서비스를 관리하고, 각각 다른 언어로 코딩하고, 서로 다른 인프라에 배포할 수 있습니다. 이러한 이유로 마이크로서비스 아키텍처를 사용하면 전체 애플리케이션을 변경하거나 문제를 해결하기 위해 전체 서비스를 중단하지 않고도 확장성, CI/CD운영 및 트러블 슈팅을 수행할 수 있습니다.
SaaS 솔루션을 운영하는 기업 사용자는 이 애플리케이션을 스스로 관리할 수 있으며 전문가를 고용하지 않아도 됩니다. 또한 운영자가 코드를 작성하지 않고도 자신의 필요에 따라 SaaS 솔루션을 커스터마이징 할 수 있도록 해야 합니다.
SaaS는 사용자가 플랫폼을 보다 유연하게 커스터마이징 할 수 있도록 아키텍처에서 사용하기 쉬운 API를 제공합니다. 또한 이 API를 사용할 수 있도록 메뉴얼을 반드시 제공해야합니다. 이미 사용 중이거나 사용하려는 3rd party도구를 통합할 수 있도록 함으로써 SaaS 아키텍처에서 더 많은 가치를 얻을 수 있습니다.
Multi-tenant 아키텍쳐를 이용하여 여러 사용자가 애플리케이션을 운영할 경우 리소스를 효율적으로 사용할 수 있습니다.
워크로드가 리소스의 대부분을 차지하는 헤비 사용자가 있다고 가정합니다. 이러한 사용자는 멀티 테넌트 환경에서 다른 테넌트의 사용자 경험을 저하시킬 수 있습니다.
위와 같은 좋지 않은 상황이 발생하기 전에 SaaS 환경에서 리소스를 컨트롤 할 수 있도록 모니터링과 로깅 시스템을 반드시 구성해야 합니다.
대부분의 기업은 데이터에 보안을 우려하여 온프레미스 아키텍처를 선택합니다. 데이터 보안는 최근 다수의 사고로 기업에서 가장 많은 비용을 투자하는 영역입니다. 우리는 이 데이터의 보호를 위해 타이트한 서비스를 제공해야 합니다.
RBAC(역할 기반 액세스 제어)를 SaaS 아키텍처의 핵심 구성 요소로 만드는 것은 데이터 보안을 강화하는 데 도움이 될 수 있습니다. RBAC는 다른 사용자가 조직에서 자신의 역할과 직접 관련이 없는 데이터에 액세스하고 변경하는 것을 방지하는 기능으로 사용할 수 있습니다.
특정 산업에 대한 애플리케이션을 제공하는 경우, 기본적인 컴플라이언스가 적용된 SaaS 애플리케이션을 구축해야 합니다. 컴플라이언스는 산업별로 다르지만 GDPR(일반 데이터 보호 규정)과 같은 정책은 전반적으로 적용됩니다.
우리는 애플리케이션을 구성할 때 반드시 GDPR을 포함한 컴플라이언스가 고려된 인프라스트럭쳐를 선택해야 합니다.
SaaS로 비즈니스 애플리케이션이 혁신되었다면 우리의 비즈니스 채널은 기존에 오프라인 단일 채널로 구성했던 것에 비해서 고객 접점으로 가까워 질 수 있습니다. 우리는 SaaS의 환경을 애플리케이션의 인기가 높아짐에 따라 확장할 수 있어야 합니다.
이를 위해서는 SaaS 아키텍처를 설계하여 쉽게 자동 확장하고 성능 저하 없이 증가하는 로드를 처리해야 합니다. SaaS 아키텍처가 원활한 수평 및 수직 확장을 지원하도록 하여 이를 달성할 수 있습니다.
우리는 고가용성을 갖춘 SaaS 솔루션을 구성해야합니다. SaaS 사용자는 서비스 중지 시간을 거의 용납하지 않습니다. 우리는 장기간의 서비스 중단이 고객 만족도를 감소시켜 고객, 비즈니스 및 경쟁 우위를 잃게 된다는 것을 초래한다는 것을 알아야합니다.
우리는 이 고가용성을 갖추기 위해 네트워크, 인스턴스, 데이터베이스 레벨에서 모두 다중화 구성을 갖출 필요가 있습니다.
SaaS로 애플리케이션을 변화한다는 것은 우리의 비즈니스 모델이 서브스크립션 혹은 Pay as you go로 변화한다는 것을 의미합니다.
우리는 고객이 애플리케이션을 사용하는 사용량을 파악하기 위해 리소스에 대한 모니터링과 로깅 시스템을 세밀하게 분석해야 합니다. 또한 고객의 접근이 급속도로 늘어나는 시점을 예상하여 미리 확장을 대비한다면 서비스의 품질을 강화할 수도 있습니다.
기존 온프레미스 환경에 구성되어있는 애플리케이션은 Private Network를 통해 데이터를 통신하기 때문에 네트워크 품질을 고민할 필요가 없었습니다.
하지만 클라우드 환경에 서비스가 구성되게 되면 메인 서버와의 통신, DR 서버와의 통신, 해외 유저들의 접속 등 네트워크 레이턴시가 증가될 요소들이 많이 생기게 됩니다.
우리는 서비스의 품질을 높이기 위하여 네트워크 통신 가속화에 대한 고려가 반드시 필요합니다.
알리바바 클라우드는 위와 같은 9가지 SaaS Architecture 요구사항을 만족시키기 위해 다양한 서비스를 제공합니다.
위 섹션에서 설명한 알리바바 클라우드 서비스들을 이용하여 온프레미스 애플리케이션을 비용 효율적으로, 안전하게, 쉽게 SaaS로 혁신할 수 있습니다. 그에 대한 예시 아키텍처는 아래와 같습니다.
위 아키텍처에 표현된 서비스 로직을 총 5개로 구분하고 왜 서비스가 이러한 형태로 배치되었는지에 대한 설명을 아래에서 참조하실 수 있습니다.
먼저 온프레미스 애플리케이션을 클라우드로 이전할 때 첫번째로 고민해야할 사항은 애플리케이션 그 차제에 대한 마이그레이션입니다. 클라우드 환경에서는 이미 기업이 지는 환경의 모든 것을 가지고 있고 우리는 서비스 형태에 맞게 적절히 서비스를 선택할 수 있습니다.
1. Public Subnet (NAT, SLB)
대부분의 엔터프라이즈 환경은 폐쇄망 환경에서 구성됩니다. 클라우드 환경에서도 폐쇄망 네트워크를 유지할 수 있도록 서브넷을 나눌 수 있습니다. 이 환경에서 인터넷 연결이 필요한 모듈이나, 고객이 서버에 접속할 수 있도록 하는 Ingress Router 역할을 하는 서비스가 필요합니다.
우리는 이러한 제한된 네트워크 환경에서 퍼블릭 네트워크와 연결을 도와주는 NAT와 SLB 서비스를 이용하여 확장성과 보안성 모두를 만족시킬 수 있는 아키텍처를 구성할 수 있습니다.
2. Function Compute
때때로 우리는 마이크로서비스를 구성하였을 때, 모듈 중 서버를 24시간 유지할 필요가 없는 서비스(로그인, 로그아웃 등)를 운영할 때도 있습니다. 이러한 케이스에서 Serverless 형태의 서비스 구현을 고려할 수 있습니다.
우리는 FC 서비스를 이용하여 Serverless 를 쉽게 구현할 수 있습니다. 이 서비스는 고객의 확장성 및 비용 효율성을 증가시킬 수 있습니다.
3. ACK, ASK
최근 구현되는 많은 애플리케이션 중 확장성을 중시하는 모듈은 대부분 컨테이너 환경으로 구현됩니다. 알리바바 클라우드에서는 컨테이너를 효율적으로 관리할 수 있는 Kubernetes 환경을 ACK 서비스에서 제공합니다. 우리는 ACK의 기반을 CPU, GPU, High Memory 등 다양한 형태의 인스턴스를 이용하여 효율적으로 구성할 수 있습니다.
4. ECS
만약 애플리케이션이 Serverless나 컨테이너 환경으로 고려되어있지 않은 레거시 환경에 가장 적합한 아키텍처를 가졌다면, Instance 환경 그대로 이전을 고려할 수 있습니다.
알리바바 클라우드는 ECS 인스턴스 환경에서 가장 빠르고, 가장 높은 수준의 SLA를 지닌 가상 머신을 제공하여 비용 효율적인 인스턴스 마이그레이션을 수행할 수 있습니다.
레거시 애플리케이션을 클라우드로 이전할 때 가장 어려운 부분은 데이터의 마이그레이션입니다. 알리바바 클라우드는 각 데이터 형태에 맞는 다양한 DBMS와 스토리지 서비스를 제공하고 있어 데이터의 큰 변화 없이 보다 쉬운 마이그레이션을 수행할 수 있습니다.
1. Polar DB / RDS
기업에서 제공하는 서비스 애플리케이션의 데이터를 관리하는 데이터베이스의 가장 보편적인 구성 형태는 관계형 데이터베이스입니다. 똑같은 관계형 데이터베이스이더라도 벤더/오픈 소스 프로젝트의 종류에 따라 각각 다른 형태의 데이터 구조를 지니고 있습니다. 이 이유 때문에 데이터베이스의 마이그레이션이 가장 어려운 마이그레이션 프로세스로 여겨지고 있습니다.
알리바바 클라우드는 보편적으로 사용되는 다양한 종류의 RDBMS 기반 서비스를 제공하고 있습니다. 또한 데이터 마이그레이션을 보다 쉽고 빠르게 수행할 수 있도록 도와주는 마이그레이션 서비스를 제공하고 있습니다.
우리는 이 서비스들을 이용하여 가장 어려운 단계로 여겨지는 데이터의 이전을 이슈없이 수행할 수 있습니다.
2. OSS / NAS
기업용 SaaS 애플리케이션은 데이터를 효율적으로 저장하는 프로세스를 고려해야합니다. 또한 데이터가 저장되는 속성에 따라 데이터 레이크, 공유 스토리지 등 형태에 맞는 스토리지 구성이 필요합니다.
이러한 경우, 우리는 알리바바 클라우드의 다양한 스토리지 서비스 중 대표적으로 OSS와 NAS를 이용할 수 있습니다. OSS는 오브젝트 스토리지를 제공하는 서비스로 오브젝트 스토리지, 파일 시스템 등 다양한 데이터를 비용 효율적으로 저장하고 활용할 수 있습니다. 또한 공유 스토리지가 필요한 경우, 네트워크와 스토리지 최적화가 적용된 NAS를 이용하여 보다 빠르게 데이터를 저장, 활용할 수 있습니다.
우리는 레거시 환경에서 애플리케이션 구성할 때 North-South bound 네트워크만 고려하면 되었습니다. 하지만 애플리케이션이 클라우드 환경으로 이전하게 되면 모든 내부 통신(East-West bound)도 반드시 고려해야하는 점이 생깁니다.
우리는 아래와 같은 알리바바 클라우드의 네트워크 서비스를 이용하여 다양한 형태의 채널에서 발생하는 네트워크 이슈를 해결할 수 있습니다.
1. DCDN
만약 제공하는 서비스가 큰 용량을 지닌 컨텐츠(사진, 그림, 동영상)를 주로 제공하는 형태라면, 고객이 컨텐츠를 이용하는 데 있어서 네트워크 지연은 비즈니스에 치명적으로 작용될 것입니다. 이러한 케이스에서 가장 필요한 서비스는 바로 CDN입니다.
알리바바 클라우드는 CDN서비스를 비용 효율적으로 제공하며 특히 정적 컨텐츠와 동적 컨텐츠를 모두 처리할 수 있는 DCDN을 장점으로 가지고 있습니다. 또한 아시아 지역에서 가장 많은 CDN PoP을 가지고 있어 대형 컨텐츠를 보다 빠르게 고객에게 전달할 수 있습니다.
2. Global Accelerator
해외에 지사가 있는 고객이 우리의 SaaS를 사용한다면 반드시 국경간의 데이터 통신이 고려되어야 합니다. 특히 중국-한국간 퍼블릭 네트워크는 많은 레이턴시와 Jitter가 발생할 수 있습니다. 이러한 케이스에서 알리바바 클라우드의 GA 서비스를 이용하면 보다 빠르고 안정적으로 데이터 통신을 할 수 있습니다.
3. API Gateway
우리는 위의 단계에서 SaaS의 고객에 맞는 커스터마이징을 위해 API를 제공해야한다는 이야기를 했습니다. 이렇게 오픈된 API에 대해 관리가 필요합니다.
우리는 API를 관리하기 위해 API Gateway 서비스를 이용할 수 있습니다. API Gateway는 API에 대한 버전, 권한을 관리할 수 있으며 전체 트래픽에 대한 모니터링을 수행할 수 있습니다.
4. VPN
만약 기업에서 안전하게 보호된 환경(VPC)에 접속을 하기위해서는 퍼블릭 네트워크가 아닌 보호된 네트워크를 사용해야할 필요가 있습니다. 또한 이렇게 격리된 프라이빗 네트워크는 운영자의 역할에 따라 접속 가불 여부를 결정해야합니다.
우리는 이런 케이스를 VPN 서비스로 연결할 수 있습니다. VPN 서비스를 사용하면 보다 안전한 VPC로의 연결이 가능해져 운영에 있어 보안을 강화할 수 있습니다.
5. Express Connect
어떠한 ISV 애플리케이션은 클라이언트만 클라우드에 배포하고 메인 서버는 로컬 IDC에 유지하는 경우가 있습니다. 이 관점에서는 클라이언트 – 서버간 데이터 통신에서 안정적으로 빠른 통신이 반드시 요구됩니다.
우리는 이런 케이스에서 Express Connect서비스를 이용할 수 있습니다. 만약 EC를 이용하면 비싼 전용선을 구축할 필요 없이, 알리바바 클라우드에서 제공하는 전용 라인을 이용하여 안정적이고 빠른 네트워크 망을 구성할 수 있습니다.
6. CEN
기업에서 DR을 구성하는 방식은 Hot, Warm, Cold 형태같이 다양하게 이용할 수 있습니다. 특히 클라우드 환경에서의 DR은 운영VPC와 DR VPC를 프라이빗 네트워크로 연결하여 데이터와 서비스 싱크를 맞추는 로직으로 구성합니다.
이렇게 서로 다른 VPC간 네트워크를 프라이빗 네트워크로 구성하기 위해서 CEN 서비스를 이용할 수 있습니다.
우리의 애플리케이션을 클라우드로 이전했을 때 가장 쉽게 누릴 수 있는 이점은 바로 보안관련 서비스 통합입니다. 사실 온프레미즈 환경에서 보안은 우리의 비용이 가장 많이 투자되는 영역입니다. 이렇게 대규모 투자가 필요한 보안을 클라우드 서비스로 대체함으로써 초기 투자 비용을 대폭 절감할 수 있습니다.
1. Anti-DDoS, WAF, Cloud Firewall
우리의 애플리케이션이 클라우드로 이전되었다면, 첫번째로 고려해야할 보안 사항은 네트워크 관련 보안 강화입니다.
알리바바 클라우드의 네트워크 보안 서비스인 Anti-DDoS는 세계 각지에서 일어나는 DDoS 공격을 효율적으로 방어합니다. 또한 애플리케이션 레이어에서의 보안 공격은 WAF에서 봇을 이용하여 방어하며 네트워크 레이어에서의 공격은 Cloud Firewall을 이용하여 방어할 수 있습니다. 우리는 이 3가지 서비스를 이용하여 SaaS를 안전하게 보호할 수 있습니다.
2. Security Center
Security Center는 보안 위협을 동적으로 식별 및 분석하고 위협이 감지되면 경고를 생성하는 중앙 집중식 보안 관리 시스템입니다. Security Center는 데이터 센터의 클라우드 리소스 및 서버 보안을 보장하기 위해 여러 기능을 제공합니다. 기능에는 랜섬웨어 방지, 바이러스 백신, 웹 변조 방지, 컨테이너 이미지 스캔 및 규정 준수 검사가 포함됩니다. 이를 통해 보안 운영, 대응 및 위협 추적을 자동화하고 규정 준수 요구 사항을 충족할 수 있습니다.
3. SSL Certification
만약 웹기반 SaaS를 제공하는 서비스라면 HTTPS 프로토콜을 구성할 필요가 있습니다. HTTPS 프로토콜을 반드시 SSL Certificate 관리가 필요합니다. 이러한 SSL 인증서 관리를 위해 알리바바 클라우드의 SSL Certification 서비스를 이용할 수 있습니다.
4. RAM
RAM을 사용하면 계정을 생성 및 관리할 수 있으며 단일 계정 또는 그룹에 다양한 권한을 부여할 수 있습니다. 이러한 방식으로 다른 ID에 다른 Alibaba Cloud 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. 이 서비스를 이용하여 우리는 RBAC 기반의 사용자 계정과 서비스 관리를 수행할 수 있습니다.
지금까지 우리는 레거시 애플리케이션을 ISV on Cloud 만드는 과정, 즉 SaaS를 구성할 때 도움을 받을 수 있는 알리바바 클라우드의 서비스와 아키텍처를 알아보았습니다.
우리는 이 서비스들을 이용하여 애플리케이션을 클라우드로 마이그레이션 할 때 비용 효율적이며 빠르고 안전하게 비즈니스를 혁신할 수 있습니다.
본 아키텍쳐에 대한 궁금한 점이 있거나 컨설팅을 원하신다면 cloudkorea@list.alibaba-inc.com으로 메일 주시기 바랍니다.
Junho Lee - June 15, 2023
JJ Lim - December 3, 2021
JJ Lim - January 11, 2022
Edwin Tack - May 13, 2024
Edwin Tack - February 21, 2024
Edwin Tack - February 21, 2024
Make identity management a painless experience and eliminate Identity Silos
Learn MoreA convenient and secure cloud-based Desktop-as-a-Service (DaaS) solution
Learn MoreBaaS provides an enterprise-level platform service based on leading blockchain technologies, which helps you build a trusted cloud infrastructure.
Learn MoreA fully-managed Apache Kafka service to help you quickly build data pipelines for your big data analytics.
Learn MoreMore Posts by JJ Lim