반응형
🧱 1. SaaS 아키텍처 설계
💡 구조 개요
┌────────────────────┐
│ 고객사 사용자 │
└────────┬───────────┘
▼
┌────────────┐
│ App Router │ ← 테넌트 라우팅 & 인증 (XSUAA 사용)
└────┬───────┘
▼
┌──────────────────────┐
│ SaaS Backend (API) │ ← Cloud Foundry or Kyma
└────┬────────────┬────┘
▼ ▼
DB per tenant Provisioning Service (Onboarding, Offboarding API)
🔑 구성 요소
구성 요소설명
App Router | HTML5 앱 라우팅 및 테넌트 식별 (?tenant=abc-corp 등) |
XSUAA 인증 | SAP 사용자 인증 및 테넌트별 Role 분리 |
SaaS Backend | Node.js/Java 기반 API 서버 (귀하의 기존 백엔드 이식) |
테넌트 DB | MariaDB or SAP HANA Cloud (테넌트 별 DB 또는 스키마 분리) |
SaaS Provisioning API | 테넌트 등록/해지/DB 초기화 관리 |
⚙️ 2. SAP BTP 설정 가이드 (요약)
1️⃣ 글로벌 계정 생성
- SAP BTP Cockpit → Global Account 생성 (Free Tier or CPEA)
2️⃣ 서브계정(Subaccount) 설정
- 환경: Cloud Foundry
- Region: Asia (Tokyo), Europe (Frankfurt) 등
3️⃣ Entitlement 설정
- 필요한 서비스 할당:
- Application Runtime
- XSUAA (Authorization & Trust)
- HTML5 Application Repository
- SAP HANA Cloud or 외부 DB
- SaaS Provisioning Service (Beta일 수 있음)
4️⃣ 서비스 인스턴스 생성
cf create-service xsuaa application my-xsuaa -c xs-security.json
cf create-service html5-apps-repo app-host my-html5
5️⃣ 환경 변수 설정 및 라우팅
- xs-app.json → AppRouter 라우팅 정의
- mta.yaml → SaaS 앱 디플로이 정의
💻 3. 샘플 SaaS 코드 예시
📂 샘플 구조
/saas-app
├── approuter/
│ └── xs-app.json
├── backend/
│ └── server.js (Node.js)
├── db/
│ └── tenant-db-init.sql
├── provisioning/
│ └── onboarding.js
├── mta.yaml
└── xs-security.json
📌 AppRouter 예시 (xs-app.json)
{
"welcomeFile": "/index.html",
"routes": [
{
"source": "^/app/(.*)$",
"target": "$1",
"authenticationType": "xsuaa",
"destination": "backend-api"
}
]
}
📌 SaaS Provisioning API 예시 (onboarding.js)
app.post('/callback/v1.0/tenants/*', async (req, res) => { const tenantId = req.body.subscribedSubdomain; await createTenantSchema(tenantId); // DB schema 생성 res.status(200).send(`Tenant ${tenantId} onboarded`); });
💰 4. 비용 계산 예시 (대략)
항목 | 단가 (예시, EUR) | 설명 |
Application Runtime | ~€0.041/hr per GB memory | Cloud Foundry 앱 실행 |
XSUAA (인증) | 기본 포함 (10K users/month 기준) | 테넌트 인증 |
HANA Cloud (Starter) | €40/Month | 기본 인메모리 DB |
AppRouter + HTML5 | 무료 (호스팅 포함) | 정적 파일 배포 |
SaaS API 트래픽 | (요금제에 따라 상이) | Outbound 트래픽 기준 청구 |
SAP 공식 가격 계산기에서 시뮬레이션 가능
✅ 요약 체크리스트
항목필요 여부설명
BTP 계정 생성 | ✅ | Free Tier로 시작 가능 |
백엔드 앱 이식 | ✅ | Node.js/Java 등 |
DB 이식 또는 마이그레이션 | ✅ | MariaDB는 외부 호스팅, HANA Cloud는 기본 제공 |
인증(XSUAA) 구성 | ✅ | 테넌트별 인증 체계 |
SaaS 관리 API 구축 | ✅ | 테넌트 온보딩/오프보딩 자동화 |
배포 자동화 (CI/CD) | ⬛ | 선택사항이지만 권장 |
반응형
'ERP' 카테고리의 다른 글
SAP BTP에서 가능한 것들 (SaaS 전환 시) (0) | 2025.04.30 |
---|---|
SAP BTP에서 말하는 리소스 프로바이더(Resource Provider)란? (0) | 2025.04.30 |
SAP BTP (Business Technology Platform)란? (0) | 2025.04.30 |