☁️ 뭉게뭉게 클라우드

[Cloud | DeepDive] 2차 프로젝트 회고 | 클라우드 네이티브 엔지니어링 2회차

우주수첩 2025. 6. 28. 17:58
728x90

1. 프로젝트 개요 및 목표

📌 프로젝트 명

  • 클라우드 기반 자동 오류 감지 및 트랜잭션 무결성 보장 시스템 구축

 

📌 프로젝트 소개

  • 기간 : 25.04.18 ~ 25.05.19
  • 인원 : 2명 (진짜 살려주세요)
    • 목표
    1. 클라우드 네이티브 환경에서의 안정적 운영 구조 구현
      • ECS + Fargate 기반 무중단 서비스 구조 ( MSA )
      • API Gateway + Lambda 기반 인증 분리
    2. 트랜잭션 무결성 보장 : Redis 분산 락과 TTL을 활용한 중복 처리 방지
    3. CI/CD 파이프라인 구축 : Jenkins와 ArgoCD를 활용한 자동화된 배포 체계 구축
    4. 모니터링 및 비용 최적화
      • 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 파이프라인 구성 해 보고 싶네용

 

 

끗.

 

 

 

 

 

 

728x90