올해는 머신러닝이다.
SaaS에서 유저가 도메인 입력하는 건 어떻게 개발되나 본문
SaaS 형태의 플랫폼에서 유저가 자신의 도메인을 사용할 수 있도록(DNS 설정을 받아서 연결) 하려면, 다음과 같은 주요 개념과 기술을 이해하고 적용해야 합니다.
1. 유저 도메인 연결 방식
SaaS에서 유저가 자신의 도메인을 연결하는 방식은 크게 두 가지로 나뉩니다.
✅ CNAME 방식 (권장)
- 사용자가 자신의 도메인을 CNAME 레코드를 통해 SaaS의 서브도메인(예: user.your-saas.com)에 매핑.
- 일반적인 방법이며, 클라우드 기반 SaaS에서 널리 사용됨.
- 단, 루트 도메인(Apex 도메인, 예: example.com)에는 CNAME을 사용할 수 없다는 제한이 있음.
설정 예시
blog.example.com CNAME user.your-saas.com
이 설정을 하면 blog.example.com으로 접속 시 user.your-saas.com의 서비스를 이용 가능.
✅ A 레코드 방식
- 사용자가 자신의 루트 도메인(example.com)을 SaaS 서비스의 고정 IP(A 레코드)로 설정.
- SaaS 서버에서 해당 IP 요청을 해당 유저의 서비스로 매핑해야 함.
- 클라우드 서비스 (AWS, GCP, Cloudflare 등)를 사용할 경우, 로드 밸런싱과 함께 적용 가능.
설정 예시
example.com A 192.0.2.1
2. DNS 설정 관리
유저가 도메인을 연결할 때, SaaS 플랫폼에서 다음을 고려해야 합니다.
✅ SSL 인증서 자동 발급
- 유저가 자신의 도메인을 연결하면 자동으로 SSL(TLS) 인증서를 발급해야 함.
- Let's Encrypt + Certbot 또는 Cloudflare SSL 등을 활용 가능.
- 예제: AWS Certificate Manager (ACM), Let's Encrypt 사용.
✅ 도메인 소유권 검증
- 사용자가 SaaS 서비스에서 도메인을 연결했을 때, 그 도메인의 실제 소유자인지 검증해야 함.
- 일반적인 방식:
- DNS TXT 레코드 검증
- SaaS에서 제공하는 특정 값을 사용자가 자신의 도메인 DNS 설정에 추가하면 확인 가능.
- HTTP 파일 검증
- 사용자가 자신의 도메인 웹 루트에 특정 파일을 업로드하면 검증 가능.
- DNS TXT 레코드 검증
✅ 서브도메인 와일드카드 지원
- 다수의 유저가 동일한 루트 도메인 내에서 개별 서브도메인을 사용할 경우 필요.
- 예: *.your-saas.com → user1.your-saas.com, user2.your-saas.com
- Cloudflare, AWS Route 53, GCP Cloud DNS 등에서 지원.
3. 개발해야 할 구성 요소
✅ 1) 유저가 도메인을 설정하는 관리 UI
- 유저가 자신의 도메인을 추가하고, SaaS에서 이를 설정하는 UI 필요.
- DNS 설정 가이드를 제공.
✅ 2) SaaS 서버에서 도메인 매핑 처리
- 요청된 도메인이 SaaS 내부에서 어떤 유저의 서비스인지 매핑.
- 이를 위해 Reverse Proxy (예: Nginx, Traefik, Caddy) 또는 Custom Routing Logic 필요.
✅ 3) SSL 인증서 자동화
- Let's Encrypt + Certbot을 이용하여 자동으로 SSL 인증서 발급.
- AWS, Cloudflare 등의 SSL 서비스를 활용할 수도 있음.
✅ 4) CDN 및 캐싱 처리
- 유저 도메인이 빠르게 로딩되도록 Cloudflare, AWS CloudFront, GCP CDN 등을 활용.
4. 구현 예제
✅ Nginx를 이용한 도메인 매핑
nginx.conf 예제:
server {
listen 80;
server_name ~^(?<subdomain>.+)\.your-saas\.com$;
location / {
proxy_pass http://backend/$subdomain;
}
}
- 위 설정을 이용하면 user1.your-saas.com은 backend/user1로 연결.
✅ Let's Encrypt로 SSL 인증서 자동 발급
sudo certbot --nginx -d user.example.com
- 유저가 도메인을 추가하면 자동으로 SSL 발급.
✅ Cloudflare를 이용한 설정 자동화
Cloudflare API를 이용하여 CNAME을 자동 설정할 수도 있음.
curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records" \
-H "Authorization: Bearer {API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"type": "CNAME",
"name": "user.example.com",
"content": "your-saas.com"
}'
5. 정리: SaaS 유저 도메인 연결을 위한 핵심 체크리스트
✅ CNAME 방식 또는 A 레코드 방식 선택
✅ DNS 소유권 검증 (TXT 또는 HTTP 방식)
✅ SSL 인증서 자동 발급 (Let's Encrypt 또는 Cloudflare SSL)
✅ 도메인 매핑을 위한 Reverse Proxy 설정 (Nginx, Traefik 등)
✅ CDN 및 성능 최적화 (Cloudflare, AWS CloudFront 등)
✅ 도메인 연결 UI 제공 및 관리 자동화 (Cloudflare API 등 활용 가능)
....
다음은 직접 Node express로 사용자 정의 도메인을 세팅하는 걸 알아보자
'스터디' 카테고리의 다른 글
MkDocs란 무엇인가 (0) | 2025.02.13 |
---|---|
SaaS에서 유저 도메인 설정 테스트 (0) | 2025.02.13 |
NestJS에서의 Fail2Ban란 (0) | 2025.02.12 |
Cursor AI Rule에 대해 기초 정리 (0) | 2025.02.12 |
Access Token과 Refresh Token에 대한 이해 (0) | 2025.02.12 |