- 프로젝트 명: CoreNova(Kitcha.ver2)
- 기술 원칙: Microservices Architecture (MSA)
- 구성 기술: Spring Boot, Spring Cloud, Eureka, Config Server, AWS ECS, ECR, RDS, S3, Docker, Jenkins, GitHub
| 구조명 | 서비스명 | 설명 |
|---|---|---|
| Outer-Architecture | API Gateway | 개발자/회원 등에게 하나의 주소를 제공 |
| Eureka | 서비스 등록과 정보 검색을 제공 | |
| Config Server | GitHub에서개별 설정 파일을 가져와서 공유 | |
| Inner-Architecture | authentication | 회원 가입, 로그인, JWT 검사 |
| board | 게시판 CRUD | |
| article | 게시물 CRUD, S3 PDF upload | |
| Front-End | Web Page | S3를 통한 정적 웹 호스팅 |
-
의존 서비스 구성
서비스 의존 서비스 설명 authRDS (MySQL) 사용자 인증 정보 저장 boardRDS (MySQL), S3 게시글 및 PDF 파일 저장 모든 서비스 config-service,eureka-service설정 및 서비스 디스커버리 기능
Kitcha 프로젝트는 MSA 기반으로 구성되어 있으며, 클라이언트 요청부터 서비스 처리, 배포와 모니터링까지 다음과 같은 흐름으로 운영됩니다:
- 프론트엔드 웹사이트는 S3에 정적 호스팅되어 있으며, 사용자의 요청은 API Gateway를 거쳐 내부 마이크로서비스로 전달됩니다.
- Gateway는 Eureka를 통해 서비스 위치를 확인하고, ALB(Application Load Balancer) 의 DNS를 통해 ECS Fargate에서 동작 중인 마이크로서비스 태스크로 요청을 라우팅합니다.
- 각 마이크로서비스(
auth,board,article)는 Eureka에 등록되며, 필요에 따라 서로 통신하거나 RDS, S3 등 외부 리소스를 활용합니다. - CI/CD 파이프라인은 GitHub Webhook → Jenkins → Docker 이미지 빌드 및 ECR 푸시 → ECS 태스크 정의 등록 및 서비스 업데이트 순서로 자동화되어 있습니다.
- Fargate 기반 서비스는 개별 인스턴스에 접근할 수 없기 때문에, 로그는 AWS CloudWatch Logs를 통해 수집·모니터링합니다.
