📍 0. 과제 목표
CGV 패스트오더 인프라를 퍼블릭 클라우드(AWS) 상 설계하고 구현하려고 한다.
대규모 사용자가 동시에 이용하기에 문제 없는 환경을 만들어야 한다.
보안, 백업 요소도 고려해야 한다.
프로젝트 기간 : 2주 (2023.08)
필자의 메인 담당 업무 : 아키텍처 설계, 백업과 DR
🎬 1. 서비스 시나리오
오는 추석 황금 연휴, 영화관에 많은 고객들이 몰릴 것을 예상하고 있다. CGV 어플 패스트오더를 통해 로그인 후 팝콘 원격 주문이 가능하다. 주문의 편리성을 높이고 현장의 혼잡도도 완화할 수 있다.
고객사인 CGV와 실사용자인 어플 이용자를 구분한다.
① 어플에서 메뉴 주문
② 매장 키오스크에 주문 접수
③ 메뉴 준비 완료
④ 어플에 푸시 알림 전송
💡 2. 메인 아키텍처
A. DEV
B. STG / PROD
✔ Web - Was - DB의 3-Tier 구조
✔ NAT-Gateway가 있는 하나의 Public 서브넷과 이외의 Private 서브넷
✔ ALB 로 트래픽 분산
✔ 멀티 AZ가 오토스케일링 그룹으로 묶여 확장성
🌊 3. 트래픽 플로우
A. Web
B. App
C. CI/CD
✔ 프라이빗한 gitlab 서버
✔ 개발자들은 서버에 VPN으로만 접근 가능
🔒 4. 보안
✔ VPN, WAF, Security Group, Deep Security 사용
✔ 계층적 보안
🔄 5. 백업 & DR (재해복구)
✔ 멀티 리전 (Main : 서울, DR : 싱가포르)
✔ DB는 실시간 동기화, EC2 스냅샷, 볼륨은 하루에 1번 백업
✔ Pilot Light 전략
✨ 6. 테라폼
✔ 테라폼 Apply 로 기본적인 네트워크 자동 구성
✔ 모듈화 성공으로 재사용성 향상
✔ terraform.tfstate 파일을 S3에 백업
🔎 7. 모니터링
✔ Cloudwatch로 로그, 리소스 사용 모니터링
✔ 보안 이슈 발생 시 Slack으로 알람 전송
💲 8. 비용 절감
A. 밤~ 아침 DEV / STG 리소스 다운
✔ EventBridge 로 자동화
B. Infracost
✔ 테라폼으로 작성한 인프라의 비용을 자동 산정
✔ 대시보드로 비용 그래프 확인
✔ 비용 초과 위험 시 Infracost Guardrail 에서 메일 자동 전송