[reinvent 2024] 모던 어플리케이션 및 데이터베이스 현대화의 여정
Summary
확장성, 가용성, 보안, 운영 복잡성 등의 문제를 극복하고 클라우드로 나아간 우아한형제들의 10년 여정에 대해 알아보세요. 최신 아키텍처와 새로운 기술을 수용하여 비즈니스 효율성을 향상시키면서 오라클에서 아마존 오로라 포스트그레SQL 호환 에디션으로 성공적으로 마이그레이션하고 EKS에서 마이크로서비스 아키텍처를 채택한 GS SHOP의 이야기를 들어보세요. 이 세션에서는 현재 진행 중인 아키텍처 재설계 과정에서 얻은 클라우드 아키텍처 현대화를 위한 모범 사례와 교훈을 설명합니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
이 세션에서는 전통적인 이커머스 기업인 GS SHOP과 클라우드 네이티브 기업인 우아한형제들의 클라우드 여정에 대해 소개합니다. GS SHOP이 시스템을 클라우드로 마이그레이션하면서 어떤 고민을 했는지, 어떤 문제를 어떻게 해결했는지 알아볼 수 있습니다. 또한 기존에 클라우드를 잘 쓰고 있던 우아한형제들이 클라우드를 사용하면서 마주쳤던 도전 과제와 그에 대한 해결책에 대해 설명하고, 향후 어떤 것을을 계획하고 있는지에 대해 설명합니다. 이 세션을 통해 아직 클라우드를 사용하지 않는 고객과 클라우드를 사용하고 있는 고객 모두 클라우드의 장점과 고려해야 할 부분들에 대해 알아볼 수 있었으면 좋겠습니다.
이커머스 플랫폼의 특성 및 클라우드 도입 주요 전략
이커머스 플랫폼은 민첩성, 다양한 디바이스와 채널의 융합, 사용자 경험이 중요합니다. 이로 인해, 전통적인 레거시 환경에서 운영하는 것으로는 선두 주자가 되기가 쉽지 않습니다. 따라서 민첩성을 높이기 위해 클라우드 네이티브, 마이크로 서비스 아키텍처를 적용하고, 기업이 보유한 데이터를 기반으로 개인 맞춤화를 잘 구현하는 것이 이커머스 현대화의 주요 전략이라고 합니다.
AWS에서는 이러한 이커머스 플랫폼의 니즈에 맞춰 여러가지 서비스를 제공하고 있습니다.
GS SHOP의 클라우드 여정과 전략
GS SHOP의 클라우드 전환 전략은 크게 다섯 가지로 분류할 수 있습니다.
- 인프라 유연성 확보
- 아키텍처의 현대화
- 비용 구조 최적화
- 데이터베이스의 혁신
- 개발/배포 혁신
GS SHOP은 클라우드로 전환을 할 때, 모놀리식 시스템에서 서비스를 하나씩 분리하면서 전환을 했습니다. 이렇게 서비스를 분리할 때, 이벤트 중심 아키텍처를 적용하여 이벤트 프로세싱이 가능하게 구현하였고, 모니터링과 알람 시스템을 개선하였다고 합니다.
이벤트 중심 아키텍처를 적용하기 이전에는 주문에 대한 통계 데이터를 작성할 때, 일정 주기로 집계 작업을 하였는데, 이는 민첩하지 못 할 뿐만 아니라 시스템에 부하도 많이 일으켰다고 합니다. 이벤트 중심 아키텍처를 적용함으로써 주문이 생성될 때마다 해당 주문에 대한 부분을 통계에 실시간으로 반영할 수 있었고, 이를 처리하는 비용도 이전에 비해 줄어들었다고 합니다.
발생되는 로그는 오픈서치와 데이터독을 같이 이용하여 처리했고, 사내 메신저로 사용하는 팀즈와 연동하여 얼럿 시스템을 구축했다고 합니다. 과거에는 모니터링 시스템을 구축할 때, 시스템에 대한 메트릭만을 이용하는 경우가 많았는데, 로그를 기반으로 모니터링을 구축함으로써 비즈니스적인 지표(예: 어떤 주문이 너무 많이 일어나고 있다)들도 모니터링할 수 있었다고 합니다.
GS SHOP은 클라우드 마이그레이션 과정 중에 가장 어려운 부분으로 데이터베이스 마이그레이션을 꼽았습니다. GS SHOP은 데이터베이스 마이그레이션을 위해 여러 옵션들을 테스트해보고 가장 접합한 방식을 선택했다고 합니다. 결론적으로 대규모 오라클 디비 중 두 개는 새로운 IDC로 그대로 이동을 하였고, 한 개는 오픈소스 PostgreSQL로 마이그레이션 했다고 합니다. 그 외의 자잘한 데이터베이스들은 RDS로 마이그레이션 했다고 합니다.
클라우드로 전환을 하고 난 이후로는 주문량에 따라서 유연하게 인프라를 확장/축소하여 운영할 수 있었고, 누적 판매량과 같은 집계 정보를 실시간으로 확인할 수 있었다고 합니다. 또한 어플리케이션에 변화를 주는 과정이 빨라졌고, 새로운 테크를 접목하는 일이 매우 쉬워졌다고 합니다.
클라우드 네이티브 기업들의 운영관리에 대한 고민
클라우드를 오랫동안 사용해온 많은 고객들이 최근에는 투자보다는 운영 비용의 효율화에 고민을 많이 하고 있습니다. 회사의 규모가 작을 때는 분산형 관리 인프라의 형태로 운영하는 경우가 많지만 회사가 커짐에 따라 DevOps, SRE, 인프라 조직이 커지게 되고 중앙 집중형 관리 방식으로 변화하게 된다고 합니다.
클라우드 환경에서 어플리케이션을 배포할 때, 개발팀과 인프라/운영 팀이 서로 다른 영역을 관리하지만 이 두 팀간의 협업이 매우 중요합니다. 하지만 프로세스나 툴을 이용하여 이를 달성하는 일은 쉬운 일이 아닙니다. 최근에는 플랫폼 엔지니어링과 IDP(내부 개발 플랫폼)가 이러한 협업을 위한 방안으로 많이 대두되고 있습니다. IDP를 잘 구현하면 위 이미지에서 볼 수 있는 많은 장점들을 누릴 수 있습니다.
우아한형제들의 클라우드 여정과 미래
배달 서비스의 특성 상, 트래픽이 일부 시간에 몰리는 패턴을 보입니다. 이렇게 급변하는 트래픽을 유연하게 처리할 수 있도록 기존에 모놀리식 아키텍처였던 어플리케이션을 쪼개어 마이크로서비스 아키텍처로 변경했다고 합니다.
또한 기존 어플리케이션은 한 곳에서 발생한 장애가 다른 서비스로 장애를 전파하는 경우가 많았다고 합니다. 이를 해결하기 위해 이벤트 기반 아키텍처를 적용하여 서비스 간의 결합도를 줄였다고 합니다.
비즈니스가 급격하게 성장함에 따라 비용이 너무 많이 나오는 이슈가 발생했습니다. 이를 해결하기 위해 Graviton 사용량 확대, SPOT 인스턴스 활용, 인스턴스 Right 사이징 등등의 여러 방법들을 적용하였습니다.
이를 통해 주문 당 발생하던 비용의 증가를 낮출 수 있었다고 합니다.
이 밖에도 사내 인프라의 표준을 만들고, 표준을 고도화하기 위한 인하우스 도구를 개발했습니다. 또한 IaC를 도입하고 고도화하였으며 데이터 스토어도 통합했다고 합니다.
우아한 형제들은 향후 기술 과제로 서버리스와 내부 개발자 플랫폼을 고려하고 있다고 합니다. 급변하는 트래픽에 더욱 탄력적으로 반응할 수 있는 방법이 서버리스라고 생각하여 서버리스를 확대 적용하려고 하고,약 800명 가량의 개발자들의 생산성을 향상시키기 위해서 내부 개발자 플랫폼을 구현하여 개발자가 인프라/운영에 무언가를 요청하고 처리하는 작업을 자동화 할 수 있도록 하려고 계획하고 있다고 합니다.
결론
이 세션에서는 GS SHOP과 우아한형제들의 사례를 통해 클라우드 마이그레이션과 운영에 대해 고려해야 할 부분을 알아보고, 두 회사가 어떻게 문제를 해결했는지 알아볼 수 있었습니다. GS SHOP가 성공적으로 클라우드로 마이그레이션한 사례를 보면서 아직 클라우드를 사용하지 않는 기업들이 클라우드의 장점이 무엇인지 알아보고, 클라우드를 도입하려면 어떤 것들에 신경을 써야 하는지에 대해서도 인지하는 기회가 될 것 같습니다. 또한 우아한형제들의 사례를 통해 클라우드 사용을 시작하고 난 뒤에, 더 효율적으로 사용하기 위해서 어떤 문제를 해결해야 하는지에 대해서도 알아볼 수 있는 계기가 될 것 같습니다.