핏파인더

YTN사이언스 관련영상

핏파인더는 2019.10 ~ 2020.10월까지 (주)예스나우 직장에 다니면서 구축한 서비스입니다.

핏파인더 소개

핏파인더는 사이즈 문제로 망설이는 고객을 구매까지 연결합니다
사이즈 문제 해결은 소비자가 본인의 치수를 제대로 아는 것에서 시작합니다
“옷은 예쁜데, 나에게 맞을까?”, “난 허벅지가 두꺼운 편인데…”
직접 입어볼 수 없어서 망설이게 되는 온라인 쇼핑몰의 한계. 핏파인더가 깨겠습니다.
핏파인더는 자체 개발한 AI 모델을 바탕으로 언제 어디서나 자신의 신체 사이즈를 확인할 수 있게 도와줍니다

피키피커 (2019.10 ~ 2019.01)

참고 URL

프로젝트 개발 환경

WEB
IDE: VsCode, putty, FileZilla
Server: AWS(Route53/EC2)
기술 스택 : Django(python), Nginx, uWSGI

APP
IDE: Xcode
기술스택: Facebook Pixel, swift

DB
DB: Maria DB
Tool: Hedisql

피키유즈드(Cafe24) (2020.01~2020.10)

참고 URL

프로젝트 개발 환경

WEB
IDE: VsCode, putty, FileZilla
Server: AWS(Route53/WAF/ALB/AutoScaling Group/EC2/RDS)
기술 스택 : Django(python), Docker, Nginx, Gunicorn, Celery&RabbitMq , CeleryBeat, GA
CICD: GITLAB + AWS CodeDeploy

DB
DB: Maria DB
Tool: Hedisql

AWS 인프라 구조

AWS

AWS Structure (API 서버 구성도)

Backend
Route53 > WAF > ALB > AutoScalingGroup > EC2 > RDS

Route53

DNS (Domain Name System)

www.도메인.com과 같이 도메인을 통해 컴퓨터 간 연결에 사용되는 숫자 IP 주소와 연결해주었습니다.

WAF

방화벽 ELB에 요청을 보내기 전 비상적 요청에 대한 사항을 차단합니다.
HTTP_REFERER / User-Agent / GEO_IP에 대해서는 내부서버(EC2)에서 처리하므로 초반 비정상적 트래픽을 관리하기 위해 Rule Based 규칙에 있는 5분동안 Source IP(IP주소)에서 N번의 요청을 보낼 시 차단하는 방화벽을 구성했습니다.

ALB(ELB)

ALB (Application LoadBalancer)
API 통신만 허용하기 때문에 Load Balancer 중 http/https만 허용하는 ALB를 사용했습니다.

AutoScaling Group

  • cf1) 통상적으로 Cpu Utilization이 50%가 넘는다면 증가 20%이하면 감소 하는 규칙을 구성했습니다.

기존 유지하는 ec2에 개수에 따라 달라질 수 있습니다.

  • cf2) 서버의 cpu 사용량은 40~60퍼로 유지하는것이 안정적입니다.

EC2

EC2의 보안규칙은 같은 VPC에 존재하는 로드밸런서에서 오는 요청만 처리하게 구성하고 iptables로 리눅스 자체의 방화벽을 강화해 DDoS요청을 방지했습니다.

RDS

Nosql을 사용하지 않고 Mysql 기반의 Maria DB를 사용했습니다.

Frontend
Route53 > CloudFront > S3

쇼핑몰 플랫폼에 종속되는 프론트 소스였기 때문에 JS로 소스를 구성했습니다.

CloudFront

CDN 구축을 위해 CloudFront를 연동했습니다.

S3

JS파일로 구성된 프론트 소스와 IMG들이 들어 있는 버킷을 구성했습니다.

CICD

세부설정확인URL

GITLAB

gitlab-ci.yml 파일을 통해 CI (Continuous Integration) 관리 및 테스트

AWS CodeDeploy

codeDeploy는 애플리케이션 > 배포설정 > 배포 3단계로 구성되어있으며 어플리케이션과 배포설정 부분에서 배포에 관한 전반적인 설정을 해놓고 GitLab CI를 통해 배포 요청을 보내 CodeDeploy를 실행합니다.