4. 개발팀 도전
4
기술 도전 명제
▪ 커머스/물류 서비스는 50배 성장하는 사업 속도를 안정적으로 뒷받침
기술 도전 분야
4
성능
(유연한 확장성)
보안
(Network)
속도
(서비스 구축)
비용
(CAPEX/인력)
5. 개발팀 현실
5
스타트업으로서 맞닥뜨린 난제
▪ 외부 솔루션 기반 서비스의 SW 구조적 제약
▪ IDC 투자를 통한 인프라 적시 확충 어려움
▪ 개발/운영 인력 확보 어려움
5
IDC내 Monolithic 구조 개발/인프라
인력 부족
DB Procedure/Trigger
기반 Biz Logic 구현
6. Why AWS
6
IDC 투자 vs Public Cloud (AWS)
6
분류 IDC AWS
성능 Elastic Scale Up/Out 불가
(서버, 스위치, 로드밸런서)
EC2, RDS
AutoScaler
보안 WAF
ACL
WAF
VPC (Public, Private)
Security Group
KMS
속도 오픈소스/자체 개발 Managed Service 활용
- Redis, ElasticSearch, S3, Lambda
- AWS Aurora (MySQL, PostgreSQL, DocumentDB)
비용 서버 HW 구매 (이중화)
스위치 구매 (이중화)
서버 가상화
서버/네트워크 운영
Elastic/On Demanding
- ELB, EC2, Aurora
MSP
Enterprise Support
7. 컬리 서비스 구조
77
IDC AWS
Aurora
MySQL
TMS
Oracle DB
(IDC)
WMS
Aurora
MySQL
파트너
포탈
Aurora
MySQL
3PL
AWS MQ
Aurora MySQL
쇼핑몰
(Web)
쿠폰 MSA
CMS
검색 MSA
주문 MSA 회원 MSA
커머스
서비스
Spring Cloud
대사 MSA
물류 서비스
공통 데이터 플랫폼
8. 데이터 플랫폼 구조
8
Apache Kafka
오픈소
스
자체개
발
AWS
Logstash
Embulk
(대규모 적재)
커머스
물류
S3
Kafka Stream
AWS Glue
AWS EMR
AWS
Athena
(Query
Engine)
Elastic
Search
(XPACK)
Kibana
QuickSight
Kafka
REST
Proxy
데이터 소스 데이터 수집/라우팅 데이터 저장/가공 데이터 서비스
Cassandra/
Zipkin
Redshift
9. DevOps 환경
소스 코드 관리: GitHub
지속적인 통합: Jenkins
서비스 빌드: Docker 컨테이너
코드 배포: Code Deploy
9
10. 커머스 서비스 이관 고려 사항
1010
마케팅 고도화에 따른 사용자 트래픽 급격한 변화
▪ TV CF, Push 기반 홍보, 각종 SNS 광고
서비스 가용성 확보
▪ 잦은 장애에 따른 매출 손실 및 운영 비용 증가
ISMS 인증 수준 보안 강화
▪ Public, Private 망 분리
▪ 서비스별 접근 제어
▪ 개인정보 처리망 분리
11. 커머스 서비스 이관 방식: 단계별
이관
11
1단계 (완료)
▪ AWS 얕은 통합
▪ AWS Compute 기반 기존 쇼핑몰의 안정적 이관 및 구동
2단계 (진행형)
▪ AWS 깊은 통합
▪ 스케일 아웃 구조 변경
▪ 다양한 AWS 관리형 서비스 활용
3단계 (진행형)
▪ 서비스 자체 구조 변경
▪ 레거시 쇼핑몰의 마이크로 서비스 구조 이관 개발 11
12. 커머스 서비스 이관: 1단계
12
AWS 얕은 통합
▪ AWS 관리형 서비스
▪ EC2: 서비스 성능별 타입 최적화
▪ ELB: 서비스 이중화
▪ ElasticCache: 세션 클러스터링 및 캐슁
▪ RDS: Aurora MySQL이관
▪ CodeDeploy: 빌드 이미지 배포
▪ 오픈소스
▪ Docker
▪ Jenkins
12
13. 커머스 서비스 이관: 2단계
13
AWS 깊은 통합
▪ AWS 관리형 서비스
▪ AWS Glue, AWS Athena, AWS Redshift: 데이터 적재/보관/분석
▪ KMS (Key Management System): 개인정보 암호화
▪ AWS DocumentDB: NoSQL
▪ P Type, AWS SageMaker: ML/AI
▪ 오픈소스 활용
▪ 설정 관리: Hashicorp Consul
▪ 데이터 적재 파이프라인: filebeat, logstash, Kafka
▪ 분산 트레이싱: Zipkin/Cassandra
▪ 로그분석: ElasticSearch/XPACK
▪ 부하테스트: nGrinder
13
14. 커머스 서비스 이관: 3단계
14
Monolithic 구조에서 마이크로 서비스 구조로 변경
개발
▪ 점진적 이관 개발 전략
▪ Micro Bigbang
▪ Spring Cloud 기반 서비스 통합
▪ Spring Cloud Gateway, Eureka, Ribbon, Hystrix
▪ Ployglot 프로그래밍
▪ Java 및 PHP 기반 서비스 통합
14
15. 물류 서비스 이관 방식: 단계별
이관
15
1단계 (완료)
▪ WAS 분리 및 이관
▪ WMS/TMS 기능 분리 및 AWS 이관
2단계 (진행)
▪ 분리 서비스간 결합도 낮추기
▪ DB 이관
▪ Oracle DB의 Aurora MySQL 이관 및 안정화
3단계 (진행)
▪ 서비스 구조 변경
▪ Monolithic/DB 트리거 방식에서 WAS중심 마이크로 서비스 구조로 이관 15
16. 물류 서비스 이관: 2단계
16
서비스 결합도 낮추기: DB2DB 연동 제거
▪ AWS MQ 기반 서비스 연동
▪ Kafka 기반 물류 생산 시스템 연동
DB 이관
▪ TMS Aurora MySQL 이관
▪ 오라클 Aurora MySQL 로 이관
▪ 쿼리 성능 최적화
16
17. 물류 서비스 이관: 2단계
17
DB 이관
▪ Mission-Critical WMS 오라클 이관 전략
▪ Aurora Oracle 이관 검토
▪ 라이센스 검토: BYOL
▪ 성능 검증: IDC 대비 일부 연산 향상
▪ 오라클 호환성 높은 PostgreSQL DB 이관 검토 (AWS DB 컨설팅)
▪ Oracle Procedure, SQL 쿼리 호환성 높음 (80% 이상)
▪ 주요 Biz Logic이 DB Procedure 및 Trigger로 수행 됨에 따른 한계 극복
어려움
▪ 서비스 구조 리팩토링 후 이관하기로 결론
17
18. 물류 서비스 이관: 3단계
18
Monolithic 구조에서 마이크로 서비스로 구조 변경 개발
▪ 1단계
▪ DB 트리거/프로시져 기반 Biz Logic의 WAS로 이관
▪ DB는 데이터 저장 및 Transaction 처리
▪ 2단계
▪ Biz Domain 별 서비스 분리
▪ 입고 관리, 출하 관리, 재고관리
▪ 3단계
▪ 오라클 DB의 Aurora MySQL 변경
18
19. 비용 관리
19
AWS 비용 추이
▪ 지난 1년 동안 4배이상 증가
비용 최적화
▪ 1단계 (완료)
▪ 적정 인스턴스 타입 사용
▪ Auto Scaling: EC2, RDS
▪ 2단계 (진행중)
▪ 동적 컨텐츠 캐슁 (Type 변경)
▪ RI 인스턴스 전환
▪ Spot 인스턴스 활용
19
35.9% (RDS)32.2% (EC2)
20. Next Step
20
MSA 전환 개발 및 안정화
▪ AWS EKS 이관
MI/AL 기반 서비스 고도화
▪ 데이터 플랫폼 활용
▪ AWS EMR, AWS Redshift
▪ 오픈소스 Kafka Stream
20