1. 프로젝트 개요 및 목표
📌 프로젝트 명
- 클라우드 기반 자동 오류 감지 및 트랜잭션 무결성 보장 시스템 구축
📌 프로젝트 소개
- 기간 : 25.04.18 ~ 25.05.19
- 인원 : 2명 (진짜 살려주세요)
- 목표
- 클라우드 네이티브 환경에서의 안정적 운영 구조 구현
- ECS + Fargate 기반 무중단 서비스 구조 ( MSA )
- API Gateway + Lambda 기반 인증 분리
- 트랜잭션 무결성 보장 : Redis 분산 락과 TTL을 활용한 중복 처리 방지
- CI/CD 파이프라인 구축 : Jenkins와 ArgoCD를 활용한 자동화된 배포 체계 구축
- 모니터링 및 비용 최적화
- CloudWatch + SNS + Discord를 통한 장애 실시간 감지
- AWS Budgets, Compute Optimizer 기반 비용 관리
📌 주요 키워드
항목 | 내용 |
MSA 마이그레이션 | - AWS Fargate (서버리스 인프라) - Docker 이미지: ECR, Docker Hub |
트랜잭션 무결성 관리 | - 단일 서비스: @Transactional + RDB - Redis Lock : 동시 트랜잭션 Lock |
CI/CD 자동화 | - Jenkins: 코드 변경 감지 → Maven 빌드 → Docker 이미지 빌드 및 푸시 - ArgoCD: GitOps 기반 배포 (이미지 태그 변경 감지 후 EKS 배포) |
클라우드 보안 | - CloudFront Functions + Lambda@Edge: XSS 등 응답 헤더 기반 보안 설정 - Compute Optimizer, Trusted Advisor로 보안 및 리소스 상태 점검 |
비용 최적화 | - AWS Cost Explorer: 상세 비용 분석 리포트 - AWS Budgets: 예산 설정 및 초과 시 알림 |
📌 역할
분야 | 구현 내용 |
팀장 | 프로젝트 아키텍처 설계 및 운영 방향 주도 |
MSA 마이그레이션 | ECS, Fargate, ECR을 활용한 컨테이너 기반 인프라 구성 |
인증 시스템 구축 | API Gateway + Lambda 조합으로 JWT 인증 처리, Lambda 2.0 대응 |
CORS 처리 | OPTIONS 메서드 처리용 Lambda 구성으로 CORS 오류 해결 |
모니터링/알림 | CloudWatch + SNS + Discord 연동으로 실시간 장애 감지 체계 구성 |
비용 최적화 | AWS Budgets, Cost Explorer, Compute Optimizer 활용 비용 분석 및 절감 전략 |
보안 대응 | ZAP 분석 기반 CSP 설정 등 응답 헤더 보안 적용 |
2. 클라우드 인프라 구성
📌 아키텍처
📌 서비스/ 기능 사용 이유
구현 항목 | 사용 기술 / 서비스 | 구현 이유 및 목적 |
MSA 기반 서비스 분리 | Spring-Maven | 인증과 비즈니스 로직을 분리해 확장성과 유지보수 용이성 확보 |
JWT 인증 시스템 구현 | API Gateway, Lambda | 서버리스 환경에서 인증 로직 분리 및 트래픽 분산과 보안 강화 |
컨테이너 기반 운영 마이그레이션 | ECS, Fargate, ECR | 서버 관리 부담 없이 고가용성 보장 소수 인원 운영에 적합한 서버리스 인프라 구성 -> 부담 최소화 ECR 연동으로 빠르고 안전한 이미지 배포 |
트랜잭션 무결성 보장 | Redis (Key Expire, Lock) | 중복 요청 방지 및 트랜잭션 간섭 최소화로 데이터 무결성 확보 |
CI/CD 자동화 파이프라인 | Jenkins, ArgoCD | 수동 배포 오류 제거, 안정적인 배포 프로세스 구축 (GitOps 기반) |
모니터링 및 장애 감지 | CloudWatch, SNS, Lambda, Discord |
로그 및 메트릭 기반의 실시간 이상 탐지 및 자동 알림 체계 구성 팀 소통을 위해 사용하는 Discord에 알림 bot을 생성하여 실시간 대응 환경 구성 |
비용 분석 및 예산 관리 | AWS Cost Explorer, Budgets | 서비스/태그 단위 비용 추적, 예산 초과 방지 및 비용 투명성 확보 |
자원 최적화 | Compute Optimizer, Trusted Advisor |
사용률 낮은 리소스 식별 및 다운사이징 → 불필요한 비용 제거 및 성능 최적화 |
3. 트러블슈팅
1. API GW JWT Lambda 함수적용
구분 | 내용 |
문제점 | - Lambda 최신 버전에 맞지 않는 구조로 코드 작성됨 - 인증 로직이 정상 작동하지 않음 |
해결 방안 | - Lambda 2.0 구조에 맞게 코드 수정 - isAuthorized: true 삽입 |
결과 | 서버리스 기반 토큰 인증 서비스 구현, 운영 효율성 확보 |
2. API GW CORS 오류 해결
구분 | 내용 |
문제점 | - API Gateway에서 경로별 CORS Options 처리 미비 - 브라우저 CORS 오류 발생 |
해결 방안 | - CORS 처리용 Lambda 함수 구성 - OPTIONS 요청 처리 및 허용 도메인 설정 |
결과 | 통신 정상화, CORS 오류 해결 |
3. ECS 서비스 구축 중 통신 오류 발생
구분 | 내용 |
문제점 | - ECS 클러스터의 서비스가 생성되지 않음 - Task OS와 VPC 서브넷 설정 불일치 |
해결 방안 | - Task 정의 시 서브넷 설정 재정비 및 OS 매칭 - 네트워크 설정 점검 및 수정 |
결과 | ECS 클러스터 생성 및 컨테이너 기반 환경 구축 완료 |
4. 회고 및 느낀 점
백엔드 개발을 조금 해봤으면 다들 마음 한 켠에 MSA 품고 살지 않나
라고 현직 백엔드 개발자가 말했습니다.
사실 백엔드 서비스 몇 번 구현하다 보면,
서비스별로 나누어 배포하고, 운영하기도 쉽고, 코드를 보거나 이해하거나, 구조를 파악하기도 쉬운
MSA를 할 수 있는 경험을 마다할 이유가 없다고 생각한단 말이죠.
비록 아주 아주 작고 귀여운 서비스지만, 직접 MSA를 적용해 볼 수 있었다는 경험 자체가 너무 뜻깊었습니다.
서비스가 아주 작아서 2개로만 분리해서 진행하긴 했지만, 그래도 잘 작동하는 걸 보고 진짜 뿌듯했어요.
그리고 각 컨테이너들이 통신하기 위해 ALB, API Gateway 등을 설정하고,
서비스별로 독립적인 기능을 구성해볼 수 있었다는 점도 정말 좋은 경험이었습니다.
사실 팀원이 한 분 더 나가셔서.... ㅠ 많이 걱정했는데 그래도 어째 저째 끝내긴 해서 신기하네요
개인적으로 Fargate너무 신기했습니다.
이게 딸깍의 힘인가...? 너무 쉽게 인프라가 구성 되고 운영되는게 아주 만족스럽더라구요.
가장 힘들었던 건 API Gateway + Lambda 조합으로 JWT 인증 처리하는 거였는데요.
아 쉽지 않더래요. 그치만 이겼습니다.
야호야호후.
아 그리고 CI/CD 진짜 신세계라고 생각했어요. 다들 왜 이렇게 자동화를 노래 부르나 했는데 노래 부를 만 했던 것 같습니다.
다음에는 제가 직접 CI/CD 파이프라인 구성 해 보고 싶네용
끗.
'☁️ 뭉게뭉게 클라우드' 카테고리의 다른 글
[AWS | Cloud] ECS Fargate기반 실행 | ECR (0) | 2025.07.03 |
---|---|
[AWS | Cloud] API Gateway , Lambda-JWT 인증 적용 (3) | 2025.07.03 |
[Cloud | DeepDive] ZAP 을 사용한 취약점 분석 및 설명 (0) | 2025.06.28 |
[Cloud | DeepDive] 1차 프로젝트 취약점 분석 | ZAP (0) | 2025.06.28 |
[Cloud | Deepdive| 트러블슈팅] 1차 프로젝트에서 겪은 험한 것 Deepdive (2) | 2025.06.27 |