๋ณธ ํ๋ก์ ํธ๋ CJ OliveNetworks์ CloudWave 3๊ธฐ ์ธํด์ญ์ ์ผํ์ผ๋ก ์ ์๋ ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ํ ์๋งค ํ๋ซํผ์ ๋๋ค. ์ธ๊ธฐ ์ํ ๊ฐ๋ด ๋ฐ ํน์ ์๊ฐ๋์ ๊ธ์ฆํ๋ ํธ๋ํฝ์ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
๋ณธ ํ๋ซํผ์ ๋ ๊ฐ์ AWS ๋ฆฌ์ (์์ธ, ์ฑ๊ฐํฌ๋ฅด)์ ๊ฑธ์ณ ์ธ ๊ฐ์ง ์ฃผ์ VPC๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Dev VPC (์์ธ ๋ฆฌ์ ): ๊ฐ๋ฐ ํ๊ฒฝ ๋ฐ CI/CD ๊ตฌ์ถ
- Prod VPC (์์ธ ๋ฆฌ์ ): ์ด์ ์๋น์ค ์ ๊ณต, ์คํ ์ค์ผ์ผ๋ง ๋ฐ ํธ๋ํฝ ๊ด๋ฆฌ
- DR VPC (์ฑ๊ฐํฌ๋ฅด ๋ฆฌ์ ): ๊ณ ๊ฐ์ฉ์ฑ ์ฌํด๋ณต๊ตฌ(Hot Standby) ํ๊ฒฝ ๊ตฌ์ฑ
- GitHub Actions๋ฅผ ์ฌ์ฉํ ์ฝ๋ ๋น๋ ๋ฐ ๋ณด์ ์ทจ์ฝ์ ๊ฒ์ฌ
- Amazon ECR์ Docker ์ด๋ฏธ์ง ํธ์
- ArgoCD๋ฅผ ํตํ Amazon EKS ๋ฐฐํฌ ์๋ํ (GitOps ๋ฐฉ์)
- main ๋ฐ argocd ๋ธ๋์น ๋ณ๊ฒฝ ์ ์๋ ๋ฐฐํฌ ํธ๋ฆฌ๊ฑฐ
- Amazon EKS๋ฅผ ํ์ฉํ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ๊ตฌ์ถ
- Karpenter๋ฅผ ํตํ ๋ ธ๋ ์์ค ์๋ ํ์ฅ
- HPA (Horizontal Pod Autoscaler)๋ฅผ ํตํ ํ๋ ์์ค ์๋ ํ์ฅ
- ์ฑ๊ฐํฌ๋ฅด ๋ฆฌ์ ์ Hot Standby ๊ธฐ๋ฐ DR ๊ตฌ์ถ
- Redis๋ฅผ ์ด์ฉํ ๊ณ ๋์์ฑ ์์ฝ ์์ฒญ ์ฒ๋ฆฌ ๋ฐ ๋ ์ด์ค ์ปจ๋์ ๋ฐฉ์ง
- RabbitMQ๋ฅผ ํ์ฉํ ๊ฒฐ์ ํ์ธ ๋ฐ ์ด๋ฉ์ผ ์๋ฆผ ๋ฑ ๋น๋๊ธฐ ์์ ์ฒ๋ฆฌ
- Savings Plan ํ์ฉํ์ฌ EC2 ์ธ์คํด์ค ๋น์ฉ ์ต๋ 49% ์ ๊ฐ
- CI/CD ๊ณผ์ ์ค SonarQube๋ฅผ Spot ์ธ์คํด์ค๋ก ์ด์ํ์ฌ ์ต๋ 70% ๋น์ฉ ์ ๊ฐ
This project was developed as part of the CJ OliveNetworks CloudWave 3rd Cohort Internship, aiming to provide a robust and scalable movie ticketing platform capable of handling high volumes of traffic during movie releases and special events.
The platform consists of three primary VPCs across two AWS regions:
- Dev VPC (Seoul Region): Development environment and CI/CD setup
- Prod VPC (Seoul Region): Production-grade services with auto-scaling and traffic management
- DR VPC (Singapore Region): High availability disaster recovery (Hot Standby)
- Automated build and security vulnerability scanning with GitHub Actions
- Docker image push to Amazon ECR
- GitOps-based automated deployments to Amazon EKS via ArgoCD
- Automatic deployment triggered by changes in
mainandargocdbranches
- Containerized microservices deployed on Amazon EKS
- Node-level auto-scaling with Karpenter
- Pod-level auto-scaling via Horizontal Pod Autoscaler (HPA)
- Cross-region Hot Standby disaster recovery setup in Singapore
- Redis utilized for handling high concurrency reservation requests and preventing race conditions
- RabbitMQ employed for asynchronous processing such as payment handling and email notifications
- Savings Plan to reduce EC2 instance costs by up to 49%
- Deploying SonarQube on Spot Instances to reduce CI/CD costs by up to 70%

