AWS를 사용함으로써 글로벌 사용자를 위한 중복성과 복원력이 더 강화될 것입니다. 이는 미래 성장 측면에서 우리에게 완전히 새로운 세상을 열어줄 것입니다. 
Vijay Ramesh 리드 데이터 엔지니어

Change.org는 196개국에서 1억 3천만 명 이상이 사용하는 세계에서 가장 큰 사회적 혁신 플랫폼입니다. B-corporation(기업의 역량을 사회적 선을 위해 사용하는 새로운 유형의 기업) 인증을 받은 이 회사의 미션은 어디에서나 사람들이 자신이 원하는 변화를 만들 수 있도록 지원하는 것입니다. 개방형 플랫폼이므로 누구나 캠페인을 시작하고 즉시 현지에서 수백 명 또는 전 세계적으로 수십만 명의 사람을 동원하여 학교 폭력 방지에서부터 인도의 황산 테러 근절까지 변화를 일으킬 수 있습니다. Change.org는 샌프란시스코에 본사를 두고 있으며, Bill Gates, Richard Branson, Arianna Huffington과 LinkedIn, Yahoo, Twitter 및 eBay의 창립자가 투자자입니다. 

지난 몇 년간 Change.org가 특히 국제적으로 빠르게 성장함에 따라, 새로운 사이트 기능을 좀 더 정기적으로 배포하려고 노력했습니다. 하지만 이 조직에서 이러한 노력을 실현하기에는 이전에 사용하던 관리형 클라우드 인프라의 탄력성이 부족했습니다. "특히 데이터 과학 팀이 좀 더 빠르게 반복할 수 있길 원했습니다. 하지만 이전 환경에 문제가 좀 있었고 새로운 리소스를 신속하게 추가하기가 어려울 때가 있었습니다."라고 Change.org의 데이터 과학 부문 책임 데이터 엔지니어인 Vijay Ramesh는 말합니다. "우리는 또한 기계 학습을 위해 다양한 유형의 시스템 토폴로지를 사용하여 반복할 수 있는 민첩성이 필요했습니다. 예를 들어 다수의 코어가 장착된 시스템을 사용하면서 동시에 병렬 처리가 적용된 소규모 시스템도 사용하길 원했습니다."

또한, Change.org는 고품질 코드를 유지하는 데 지속적 통합(CI)에 크게 의존하고 있습니다. CI는 매일 여러 차례 코드를 리포지토리로 통합해야 하는 개발 사례입니다. 하지만 이 조직에서는 자체 개발 CI 시스템을 사용하고 있어 새로운 기능 릴리스가 지연되고 있었습니다. "각 CI 빌드를 완료하는 데 최대 1시간이 걸리고 있었습니다. 이는 너무 긴 시간입니다."라고 Ramesh는 말합니다. "이로 인해 새로운 기능을 신속하게 테스트하고 배포하기가 더 힘들었습니다." 게다가 이 시스템을 유지 관리하는 데 손이 너무 많이 갔습니다. "CI 시스템은 우리의 핵심 역량이 아님에도 불구하고 여러 명의 엔지니어가 하루에 몇 시간씩을 CI 워크플로를 유지 관리하는 데 소비했습니다."라고 Ramesh는 말합니다. "우리는 모든 시간을 새로운 기능을 개발하는 데 쏟고 싶습니다."

또한, 이 조직은 트래픽 스파이크를 처리하도록 웹 사이트 플랫폼을 좀 더 쉽게 확장할 수 있어야 했습니다. "예를 들어 언론에 우리가 언급되면 트래픽이 엄청나게 증가합니다. 하지만 이러한 증가를 지원하기 위해 서버 노드를 실시간으로 추가하기가 쉽지 않았습니다."라고 Ramesh는 말합니다. "우리가 수동으로 개입해야 했고 스파이크에 대응하여 새로운 리소스를 가동하고 프로덕션에 투입하는 데 보통 한 시간 이상이 걸렸습니다."

좀 더 민첩성과 확장성이 뛰어난 웹 플랫폼을 찾기로 결심한 Change.org 데이터 과학 팀은 기계 학습 리소스 일부를 Amazon Web Services(AWS)로 이전하기로 했습니다. "우리는 AWS의 유연성과 확장성을 좋아했습니다."라고 Ramesh는 말합니다. 데이터 과학 팀은 이메일 타겟팅과 배치 파이프라인 작업용 프로덕션에 Amazon Elastic Compute Cloud(EC2) 인스턴스를 사용하기 시작했습니다.

그런 다음 Change.org는 각각 16테라바이트 규모의 Amazon Redshift 클러스터 2개를 구성했습니다. 두 클러스터에는 자사의 모든 관계형 및 이벤트 데이터가 담겨 있습니다. 첫 번째는 고객 데이터를 MySQL 데이터베이스에서 Redshift로 스트리밍하는 프로덕션 비즈니스 인텔리전스(BI) 클러스터입니다. 두 번째 클러스터는 오프라인 분석에 사용되며 R&D는 Amazon Simple Storage Service(S3)에서 실험 및 로그 이벤트 데이터를 수집하여 Redshift로 업로드합니다. 이 클러스터는 AWS Data Pipeline 서비스를 통해 최신 상태로 유지됩니다. "우리는 새로운 기능과 변경 사항을 사이트에 적용할 때 실험을 상당히 많이 합니다. 그래서 엔지니어가 프로덕션 환경에 영향을 줄까 걱정하지 않고 원하는 작업을 마음껏 할 수 있는 시스템을 구성했습니다."라고 Ramesh는 말합니다. 또한, 이 조직의 비즈니스 애널리스트는 Redshift의 이벤트 스트림 데이터를 분석하기 위한 실행 대시보드와 보고서를 생성할 수 있습니다. 조직의 이메일 도구 대부분이 Redshift를 쿼리합니다.

Change.org가 여전히 일부 리소스를 온프레미스 환경에 유지하고 있지만, 온디맨드 AWS 리소스를 사용하는 비중이 점점 늘어나고 있으며 전체 프로덕션 환경을 AWS로 마이그레이션하는 중입니다.

또한, Change.org는 호스팅된 CI 솔루션으로 Solano CI를 선택했습니다. Solano CI는 전적으로 AWS에서 실행되며 Elastic Load Balancing을 사용하여 수신되는 트래픽을 라우팅하고, Amazon S3를 데이터 스토리지에 사용하며, Amazon Relational Database Service(RDS)를 사용하여 데이터베이스를 실행합니다. Solano CI는 CI 시스템을 유지 관리하는 부담을 덜고 AWS 인스턴스 사용을 최적화하여 TCO를 대폭 절감하면서 개발자가 테스트하는 시간을 줄일 수 있도록 설계된 확장 가능한 시스템입니다. "Solano CI를 구현한 이후로 자체 개발 CI 시스템을 완전히 종료할 수 있었습니다."라고 Ramesh는 말합니다.  

AWS의 온디맨드 탄력성을 활용함으로써 Change.org는 새로운 기능을 좀 더 빠르게 개발할 수 있습니다. "데이터 과학 팀은 AWS의 탄력성 덕분에 매우 빠르게 반복할 수 있습니다."라고 Ramesh는 말합니다. "예를 들어 추천 엔진을 구축하는 경우, 컴퓨팅 수요는 사용하는 알고리즘의 유형이나 관련된 데이터 양에 따라 차이가 크게 납니다. 하지만 AWS에서는 해당 프로젝트에서 수행하고 있는 작업이 무엇이냐에 따라 필요한 리소스만 사용하여 바로 진행할 수 있습니다. 따라서 서버를 요청하거나 미리 계획을 세울 필요가 없습니다."

또한, 이 조직은 Solano CI 자동화 테스트 환경을 사용하여 테스트 시간을 줄이고 새로운 기능을 프로덕션 환경에 더 빨리 배포할 수 있습니다. Solano CI로 전환한 이후로 이 조직은 Solano CI의 자동 병렬화 기능을 통해 평균 빌드 시간을 1시간에서 15분으로 단축했습니다. "우리는 매일 더 많은 CI 빌드를 배포할 수 있습니다. 다시 말해 매일 더 많은 변경 사항을 사이트로 푸시할 수 있습니다."라고 Ramesh는 말합니다. "Solano CI 덕분에 최종 사용자에게 가치를 더 빠르게 제공하고 있습니다." 그뿐만 아니라 Change.org는 Solano CI를 통해 더 많은 테스트를 수행하므로 결함을 더 빨리 파악할 수 있습니다. 그는 "결함을 더 빨리 탐지함으로써 뛰어난 코드 품질을 보장하고 궁극적으로 더 좋은 기능을 제공할 수 있습니다."라고 말합니다.

Change.org는 트래픽 스파이크를 지원하는 데 필요한 확장성도 확보했습니다. "AWS를 사용함으로써 웹 사이트의 트래픽 급증에 훨씬 더 쉽게 대응할 수 있습니다."라고 Ramesh는 말합니다. "트래픽이 증가하면 새로운 백그라운드 서버가 자동으로 시작됩니다. 트래픽이 진정되면 해당 서버는 다시 종료됩니다. 매우 안정적이고 빠릅니다. 엔지니어가 개입할 필요가 없으므로 새로운 리소스를 가동하는 데 전처럼 한 시간씩 걸리지 않고 즉시 가동됩니다."

또한, Solano CI 환경은 확장할 수 있도록 설계되어 Change.org는 테스트 빌드 요구 사항의 증가도 더 잘 지원할 수 있습니다. "때로는 주요 기능 릴리스를 앞두고 마감 시간이 다가오면 평소보다 훨씬 많은 수의 빌드를 실행해야 할 때가 있습니다."라고 Ramesh는 말합니다. "Solano CI는 AWS의 확장성을 활용하므로 이러한 수요를 지원하도록 확장될 수 있습니다."

CI 시스템이 이제 클라우드를 기반으로 하므로 Change.org 개발자는 더 이상 유지 관리 작업에 시간을 쓸 필요가 없습니다. Solano CI는 테스트를 지능적 및 자동으로 최적화하므로 Change.org 개발자는 CI 시스템 관리하고 가상 머신을 구성하거나, CI 노드가 올바로 작동하는지 확인할 필요가 없습니다. "우리 개발자는 CI 시스템의 유지 관리를 걱정하느라 시간을 소비할 필요가 없습니다."라고 Ramesh는 말합니다. "Solano CI가 알아서 처리하도록 믿고 맡길 수 있으므로 그 대신 자신이 가장 잘하는 일, 즉 전 세계 최종 사용자에게 더 많은 가치를 제공하는 웹 사이트가 되도록 훌륭한 도구를 구축하는 데 집중할 수 있습니다."

Change.org는 AWS 환경으로의 마이그레이션을 완료하고 나면 AWS 사용을 대폭 확장할 계획입니다. "AWS가 전 세계에 여러 리전 및 가용 영역을 운영한다는 것이 상당히 고무적입니다. 이전 솔루션에는 없던 혜택입니다."라고 Ramesh는 말합니다. "글로벌 트래픽에 대응하도록 웹 사이트 아키텍처를 구축할 수 있다는 점은 우리에게 상당한 이점으로 작용할 것입니다. 지난 몇 년간 국제적으로 많은 성장을 해왔습니다. AWS를 사용함으로써 이를 더욱 가속화할 수 있을 것입니다. 글로벌 사용자를 위한 중복성과 복원력이 더 강화되고 이는 미래 성장 측면에서 우리에게 완전히 새로운 세상을 열어줄 것입니다."

solano-labs-logo

AWS 데브옵스 컴피턴시를 보유한 AWS 파트너 네트워크(APN) 어드밴스 기술 파트너. Solano Labs는 지속적 통합(CI) 및 지속적 배포(CD)를 위한 강력하고 확장 가능한 시스템을 제공합니다. 이를 통해 소프트웨어 개발자는 엔지니어링 효율성과 품질을 높이면서 비용은 절감할 수 있습니다.

귀사에서 AWS 환경을 구축 및 관리하는 데 Solano Labs가 어떻게 도움을 줄 수 있는지 자세히 알아보려면 AWS 파트너 디렉터리에서 Solano Lab 목록을 참조하십시오.
 

귀사의 웹 사이트를 관리하는 데 AWS가 어떻게 도움을 줄 수 있는지 자세히 알아보려면 AWS 웹 사이트 및 웹 사이트 호스팅 세부 정보 페이지를 참조하십시오.