IMJW
Projects

경기도 일자리재단 클라우드 운영자 과정 팀 프로젝트

Kickytime

풋살 매칭 플랫폼을 AWS 3-tier 아키텍처 위에 배포하고, ECS Fargate와 GitHub Actions 기반 CI/CD를 구성한 팀 프로젝트입니다.

2025.07 ~ 2025.08GitHub
Kickytime cover

Role.

  • AWS 3-tier 아키텍처 설계 및 구축
  • ECS Fargate 기반 컨테이너 배포
  • GitHub Actions CI/CD 파이프라인 구성
  • RDS, ALB, Target Group, 보안 그룹 구성

Architecture.

  • VPC 내부를 Public Subnet과 Private Subnet으로 분리했습니다.
  • ALB는 Public Subnet에 배치하고, 애플리케이션 컨테이너와 RDS는 Private 영역 중심으로 구성했습니다.
  • GitHub Actions에서 Docker 이미지를 빌드한 뒤 ECR에 푸시하고 ECS 서비스를 업데이트하는 흐름을 구성했습니다.
  • Terraform으로 반복 가능한 인프라 구성을 목표로 IaC 구조를 정리했습니다.

Gallery.

Kickytime AWS architecture
AWS 3-tier architecture
Kickytime deployment flow placeholder
CI/CD deployment flow

Key Work.

  • AWS 3-tier 아키텍처 설계 및 구축
  • VPC, Public/Private Subnet 분리
  • ECS Fargate 기반 컨테이너 배포 및 서비스 운영
  • ECR 이미지 빌드 후 ECS 자동 배포
  • ALB와 Target Group 구성으로 트래픽 분산 처리
  • RDS MySQL 프라이빗 서브넷 배포 및 보안 그룹 설정
  • Transit Gateway를 활용한 VPC 간 통신 설계 시도

Troubleshooting.

Problem

관리형 DB(Aiven) 연동 시 데이터베이스에 한국 시간보다 9시간 느린 UTC 기준으로 데이터가 저장되었습니다.

Root Cause

클라우드 데이터베이스 전역 설정과 Docker 컨테이너 내부 JVM 타임존이 기본값 UTC로 유지되어 발생한 문제였습니다.

Action

Aiven 전역 설정을 변경하고 Dockerfile에 TZ=Asia/Seoul 환경변수를 주입해 인프라 전반의 타임존 기준을 KST로 맞췄습니다.

Stack.

AWS ECS / ECR / ALB / RDS / VPC / NAT Gateway / Terraform / GitHub Actions / Docker / Spring Boot / MySQL

Learning.

  • 클라우드 배포에서 시간 기준은 애플리케이션, 컨테이너, DB 설정을 함께 맞춰야 합니다.
  • 팀 프로젝트에서도 인프라 변경 사항은 Terraform처럼 재현 가능한 형태로 남겨야 운영 리스크가 줄어듭니다.