민첩성 향상을 위해 AWS의 컨테이너를 사용한 Bridestory

Bridestory

성장통

Bridestory는 2014년에 서비스를 시작한 원스톱 숍으로, 신부에게 결혼식에 대한 아이디어를 제공하고 관련 업체와의 연결을 주선합니다. Bridestory 앱은 인도네시아에 본사를 두고 있으며, 필리핀과 싱가포르의 사용자를 포함해 약 70만 명의 방문자를 보유할 정도로 빠르게 확장해 왔습니다. 하지만 출시 2년 후, 이 스타트업은 모놀리식 아키텍처로 인한 성장통을 겪게 됩니다. 느린 반복과 배포, 확장의 어려움은 가장 중요한 요소인 출시 기간에 지장을 주었습니다. Bridestory는 Amazon Web Services(AWS) 클라우드에 원본 아키텍처를 구축했고, 컨테이너 기반 인프라 마이그레이션에 대해 AWS 클라우드 아키텍트와 컨설팅을 시작했습니다.

"2018년 말부터 지표를 달성하기 시작했습니다. 이전에는 큰 기능을 하나 출시하는 데 평균 3주가 걸렸지만, 지금은 개발자들의 역량이 강화되면서 매일 소규모 출시를 해내고 있습니다. 게다가 실패율은 단 1%도 되지 않습니다."

Doni Hanafi, Bridestory 최고 기술 책임자

  • Bridestory 소개
  • Bridestory는 신부에게 아이디어를 제공하고 웨딩 업체와의 연결을 위해 개발된 웹 및 모바일 애플리케이션입니다. 매달 최대 70만 명이 방문하는 이 사이트는 인도네시아, 싱가포르 및 필리핀의 사용자를 포함해 점차 전 세계로 확장하고 있습니다. 

  • 장점
    • 3주 간격이었던 배포를 매일 수행
    • 1% 미만의 실패율 달성
    • 글로벌 사용자 기반 확장에 발맞추는 자동 확장
    • 3배 더 빨라진 새 브랜드 출시 시간
    • 생산성, 직원 업무 만족도 향상 및 이를 통한 직원 유지 강화
  • 사용된 AWS 서비스

모놀리식에서 마이크로서비스까지

Bridestory의 최고 기술 책임자인 Doni Hanafi는 팀과 협력하여 Amazon Elastic Container Service(Amazon ECS)를 통해 애플리케이션의 소규모 단위 서비스 분할과 Docker 컨테이너 설정을 시작했습니다. 출시 시간과 안정성이라는 주요 기준을 감안하여, Bridestory는 소규모 기능을 며칠에 한 번씩 배포하면서 실패율을 낮추는 것을 목표로 했습니다.

처음 3~4개월간은 여러 기술을 파악하며 자동 확장을 통해 민첩성을 향상할 수 있는 솔루션을 목표로 타겟 워크로드에 적합한 인프라를 찾는 데 주력했습니다. 그리고 Bridestory는 마이크로서비스 환경에 새 기능을 구축하는 것을 시작으로 점진적 결합 해제를 시작했습니다. Bridestory는 Amazon Relational Database Service(RDS)를 사용하여 모든 트랜잭션 데이터를 저장하며, 특히 AWS Database Migration Service(AWS DMS)가 마이그레이션 프로세스에 유용하다는 사실을 알았습니다. Hanafi는 다음과 같이 말합니다. "AWS DMS를 사용해 데이터를 실시간으로 복사하여, 모놀리식의 오래된 Amazon RDS 데이터베이스에서 새 마이크로서비스 데이터베이스로 동기화할 수 있습니다. 또한 BI 도구를 위해 많이 사용하는 Amazon RDS에서 쉽게 복제를 생성할 수 있습니다. 복제 과정은 매우 안정적이며 지금까지 중요한 데이터 문제는 한 번도 발생하지 않았습니다."

동일한 아키텍처, 다양한 브랜드

새로운 마이크로서비스 아키텍처는 운영에 혁신을 가져왔습니다. Hanafi는 다음과 같이 설명합니다. "2018년 말부터 지표를 달성하기 시작했습니다. 이전에는 큰 기능을 하나 출시하는 데 평균 3주가 걸렸지만, 지금은 개발자들의 역량이 강화되면서 매일 소규모 출시를 해내고 있습니다. 게다가 실패율은 단 1%도 되지 않습니다." 컨테이너식 인프라를 사용하여 Parentstory라는 새 앱을 출시하기도 했습니다. "새로운 멀티테넌시 마이크로서비스 모델에서는 격리가 핵심입니다."라고 Hanafi는 설명합니다. "우리는 동일한 소스 코드의 동일한 아키텍처를 통해 완전히 다른 브랜드, 다른 고객, 다른 데이터베이스를 창출하는 방법을 찾기 위해 AWS 아키텍트들과 끊임없이 탐구하고 있습니다." 이러한 '재활용' 접근 방식을 통해 Bridestory보다 약 3배 더 빠르게 Parentstory 앱을 출시할 수 있었습니다.

또한 AWS를 사용하면서 Hanafi 팀은 효율성도 높였습니다. Hanafi는 다음과 같은 말로 마무리했습니다. "지금 우리는 리소스 격리의 유연성을 높이는 Amazon Elastic Container Service for Kubernetes(Amazon EKS)로 전환하고 있습니다. 또한, AWS를 사용하여 새로운 학습 및 실험 방법을 발견하면서 엔지니어의 만족도와 직원 유지율이 높아졌습니다.”

아래 다이어그램을 통해 Bridestory 및 Parentstory의 AWS 인프라를 확인할 수 있습니다.

Bridestory 및 Parentstory의 AWS 인프라

자세히 알아보기

자세한 내용은 컨테이너를 참조하세요.