서버리스 기반 온라인 쇼핑몰 현대화로 650억 매출 달성기
리싱크는 기업의 재고 문제를 해결하기 위해 2019년도에 서비스를 시작함.
소비자에게 가성비 높은 제품을 판매
<1> 기존 인프라 환경의 한계점
<2> 서버리스 장점
<3> 서버리스로의 3 단계 마이그레이션
<4> 람다를 이용해 2가지를 처리했다.
<5> 성능개선은?
<6> 정리
<1> 기존 인프라 환경의 한계점
1
기존 환경?
사용자---- 로드밸런서------웹서버-----데이터베이스 서버
2
문제점?
트래픽 증가에 따른 대응의 어려움
물리 서버이다 보니 예상하지 못한 트래픽으로 인해 처리 지연으로 사용자 경험이 나빠지는 경우가 반복됨.
호스팅사의 클라우드 서버 옵션 사용했으나 응답 속도 느리고, 클라우드로 전환 시간도 느림
응답 시간이 최고 5배 이상 느려짐.
3
해결해야 문제?
스케일 아웃
속도 개선
서버리스 설루션으로 해결.
람다와 함께 사용할 서버리스 선택함.
<2> 서버리스 장점
1
장점?
고객이 필요한 시점에 결과를 내놓는 것이 중요하다.
기존에 나와 있는 설루션이나 모범사례로 구현하고, 고객의 문제 해결에 집중하는 게 중요했다.
서버리스를 도입한 이유이다.
2
아키텍처?
API Gateway가 받고 람다가 인보크 해 처리하는 형태이다.
요청 ------ Cloud Front -----API GATEWAY ----------- AWS LAMBDA ------ CloudSearch , S3 , Dynamo DB , Aurora Serverless , SQS
<3> 서버리스로의 3 단계 마이그레이션
1
S3로 마이그레이션
정적 웹페이지
람다를 활용한 온디맨드 이미지 리사이징
2
비즈니스 로직은 람다를 이용하여 REST API로 대체함.
비즈니스와 뷰를 한 번에 하면 문제 예상 , 비즈니스부터 진행
고객에게 임팩이 큰 것부터 진행함.
뷰는 온프라미스 서버가 담당
비즈니스 로직은 람다가 담당.
3
뷰 레이어를 AWS 람다를 이용해 구현함.
<4> 람다를 이용해 2가지를 처리했다.
1
사용자 요청에 대응하는 람다
API Gateway -------람다 처리
람다는 1개
요청받은 내용을 패턴 매칭을 통해 처리
1개인 모놀리스 람다 사용한다.
이점은? 하나의 람다만 관리, 람다가 콜드 스타드로 빠지는 것을 방지한다.
2
SQS에 대응되는 람다
<5> 성능개선은?
1
상품 Pool 구축
아마존 CloudSearch 사용해 해결
다양한 형태의 상품 카탈로그가 필요.
기존 RDB를 통해 구현. rdb 처리 복잡도가 높아짐. 쿼리 유지보수 비용, 쿼리 비용 발생하여 상품 pool구축.
인덱싱
구성?
이벤트(가격 변경, 재고 변경, 품절, 기타 이벤트)------------ SQS ------- 람다 ------- 클라우드 서치 인덱싱 -- 실패는 오로라로 예외처리.
2
상황에 맞는 캐시
다이나모 디비
CloudFront
람다-------------- 다이나모 디비, 클라우드 프런트 사용.
3
클라우드 프런트 캐시 처리법?
사용자----------클라우드 프런트----------람다-----클라우드 서치
캐시 무료화 사용하나 시차가 발생한다.
데이터의 일관성이 필요한 경우는 다이나모 디비나 레디스를 사용하라.
다이나모 디비, 클라우드 프런트 사용.
4
다이나모 디비로 캐시 처리법?
다이나모 디비는?
10ms 내 응답 속도
확장성 우수
스케일 아웃이 우수한 디비
스케일 아웃에 적합한 모델링
파티션 키가 필요하다.
데이터의 일관성이 필요한 경우
<6> 정리
1
스케일 아웃 해결은?
람다와 S3 이용해 해결함
2
퍼포먼스 향상은?
클라우드 프런트, 다이나모 디비, 오로라 서버리스로 해결함
응답속도는 6배 이상 향상됨
3
개발 생산성 증가 - 운영 업무가 줄어듦
추가 설루션 도입이 필요 없음. AWS 설루션으로 운영 가능
4
향상된 배포 프로세스?
자동화함
깃허브 저장소에 코드가 푸시되면 올라가면
깃허브 액션을 통해 정의된 스크립트들이 자동으로 실행되고 빌드하여 서비스를 배포하고 있다.
감사합니다.