843255971531ap-northeast-2(서울). CloudFront용 인증서만 us-east-1docs/operations/deployment-architecture.md| 환경 | 브랜치 | 프론트엔드 | 백엔드 |
|---|---|---|---|
| prod | main |
https://www.jachwi-sunbae.kr | https://api.jachwi-sunbae.kr |
| dev | develop |
https://dev.jachwi-sunbae.kr | https://dev-api.jachwi-sunbae.kr |
작업 브랜치는 develop에서 분기하고, 운영 배포는 develop에서 main으로 PR로 승격한다.
flowchart LR
W["작업 브랜치"] -->|"PR"| D["develop"]
D -->|"PR 승격"| M["main"]
D -.->|"자동 배포"| DE["dev 환경"]
M -.->|"자동 배포"| PE["prod 환경"]
프론트엔드와 백엔드가 서로 다른 경로로 사용자에게 도달한다. 파이프라인은 환경 2 × 대상 2 = 넷이다.
flowchart TB
U["사용자 브라우저"]
subgraph DNS["가비아 DNS · CNAME 8개"]
W["www"]
DW["dev"]
A["api"]
DA["dev-api"]
end
subgraph CF["CloudFront"]
CFP["prod E3LI41UZ24V9WD<br/>origin path /jachwi-sunbae/web"]
CFD["dev ETE1HH7V9K0PO<br/>origin path /jachwi-sunbae/web-dev"]
end
WAF["WAF techcourse-project-waf"]
ALB["ALB jachwi-sunbae-alb<br/>443 · 호스트 규칙으로 분기"]
subgraph EC2S["EC2"]
EP["prod t4g.small<br/>Spring Boot :80"]
ED["dev t4g.micro<br/>Spring Boot :80"]
end
subgraph DATA["공유 데이터 저장소"]
RDS["RDS jachwi-sunbae-db<br/>스키마 2개"]
S3["S3 techcourse-project-2026<br/>접두사로 분리"]
end
U --> W --> CFP --> S3
U --> DW --> CFD --> S3
U --> A --> WAF
U --> DA --> WAF
WAF --> ALB
ALB -->|"기본"| EP
ALB -->|"Host = dev-api"| ED
EP --> RDS
ED --> RDS
EP --> S3
ED --> S3
새로 만든 것은 EC2 한 대와 CloudFront 하나뿐이다. RDS·ALB·WAF·S3는 두 환경이 공유한다. 따로 만들면 RDS 월 +$15, ALB 월 +$17이 더 든다.
"dev와 prod가 나뉘어 있다"는 말로는 부족하다. 무엇이 나누는지를 알아야 새 리소스를 만들 때 빠뜨리지 않는다.
flowchart TB
subgraph L["격리 계층 6개"]
direction TB
A["배포 대상<br/>EC2 태그 DeployTarget"]
B["요청 라우팅<br/>ALB 호스트 헤더 규칙"]
C["데이터<br/>RDS 스키마"]
D["사진<br/>S3 접두사"]
E["프론트 정적 파일<br/>CloudFront origin path"]
F["토큰<br/>JWT_SECRET_BASE64"]
end
| 계층 | prod | dev |
|---|---|---|
| EC2 태그 | DeployTarget=jachwi-sunbae-prod |
DeployTarget=jachwi-sunbae-dev |
| ALB 라우팅 | 기본 동작 | Host = dev-api.jachwi-sunbae.kr |
| RDS 스키마 | jachwi_sunbae |
jachwi_sunbae_dev |
| DB 계정 | jachwi_app |
jachwi_dev |
| 사진 접두사 | jachwi-sunbae/ |
jachwi-sunbae/dev/ |
| 프론트 경로 | jachwi-sunbae/web/ |
jachwi-sunbae/web-dev/ |
| JWT 시크릿 | 서로 다른 값 | 서로 다른 값 |