# OVERVIEW
저희 시스템 아키텍처는 다음과 같습니다. 클라우드 환경에서 Jenkins를 통해 CI/CD 파이프라인을 구축하고, AWS EKS를 활용해 Kubernetes로 배포 환경을 관리하고 있습니다.
• 프론트엔드는 React로 구성되어 S3에 정적 페이지 형태로 배포되었으며, CloudFront를 통해 안전하고 빠르게 제공될 예정입니다.
• 백엔드는 Spring Boot로 구축되었고, 데이터베이스는 AWS RDS를 통해 PostgreSQL로 관리, 쿠버네티스팟
• AI 서버는 FastAPI로 구축, 쿠버네티스팟
• 각 서버는 Nginx를 통해 서버 간의 요청을 라우팅하고 통신을 관리하여, 안정적인 트래픽과 보안을 관리할 예정입니다.
모든 서비스는 AWS EKS 클러스터 내에서 컨테이너화하여 배포되며, 이를 통해 확장성과 운영 효율성을 극대화하고자 합니다.
—----
1) 젠킨스: CICD 툴
코드의 변경 사항을 지속적으로 통합하고 자동화된 테스트와 배포 과정을 통해 신속하고 안정적으로 배포하도록 돕는다.
깃허브 액션보다 확장된 기능을 제공하기 때문에 젠킨스를 선택했다.
젠킨스 자체는 EC2 인스턴스로 생성된다.
깃허브 코드가 메인 브랜치로 푸쉬되면, 젠킨스가 자동으로 코드를 점검, 통합해주고 이미지로 만들어지고, 해당 이미지는 AWS ECR에 저장된다.
- EC2 인스턴스: 젠킨스가 실행
- ECR 저장소: 젠킨스가 자동 배포하는 백엔드, AI (이유: 시각적으로 보이지 않는 기능)
2) 프론트엔드
주요 구성 요소는 다음과 같다.
- S3(양동이 아이콘): 정적 페이지 호스팅 기능 → url 제공
- CloudFront(보라색 아이콘):
프론트엔드의 경우 AI와 백엔드와 다르게 S3를 통해 배포되었다. S3의 경우 정적 페이지를 호스팅하여 URL까지 제공해주기 때문에 매우 편리하다.
3) 쿠버네티스(+AI, 백엔드)
쿠버네티스는 컨테이너 오케스트레이션 툴이다. 마스터 노드, 워커 노드로 구성되어 마스터 노드가 워커 노드를 관리한다.
AWS EKS는 마스터 노드처럼 관리자 역할을한다. 그리고 워커 노드 그룹은 AI, 백엔드로 구성된다.
+) nginx: 서버이다.
- 보안을 위해 리버스 프록시 제공
- 리버스 프록시: 일반 URL --> "https:\\..."
'카카오AI 부트캠프' 카테고리의 다른 글
[KDT 해커톤] D-2 (6) | 2024.11.18 |
---|---|
[카부캠][가짜리뷰판별기] 중간 발표 (11) | 2024.11.13 |
[KDT 해커톤] 본선 진출 😃 (0) | 2024.11.09 |
[K-디지털 해커톤] 참가팀 합격 (0) | 2024.10.02 |
0717 이론 정리 (0) | 2024.07.17 |