[reinvent 2024] Dr. Werner Vogels Keynote_Part1
Summary
Dr. Werner Vogels는 리인벤트 2024의 Keynote Session에서 무슨 이야기를 했을까요?
AWS의 기본이지만 주요 서비스인 S3의 복잡성 관리할 수 있는 새로운 방향과 내용에 대해 메가존클라우드의 테크 블로그를 통해 함께 살펴보실까요?
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
그 사례로 아마존의 S3 서비스를 이야기 하고 있습니다. 많은 피자를 배달에서 얻은 경험을 기반으로, 두 개의 피자 팀 개념을 만들었으며, 기능적 계층 구조를 세분화하고 조직을 소규모 자율 팀으로 구성하여 혁신을 일궈낸 경험을 이야기 합니다. 또한, Vogels 박사의 20년간 AWS에 입사하여 계속 배움을 놓치 않았다는 부분은 인상깊었습니다.
복잡성 관리의 교훈
복잡성은 생성되거나 사라질 수 없으며, 단지 다른 곳으로 이동하는 것 뿐이며, 복잡성은 필연적이라고 합니다. 복잡성은 의도된 복잡성과 의도치 않는 복잡성을 가지고 있으며, 의도된 복잡성의 경우 시스템 확장, 새로운 기능 적응, 고객 요구 변화에 대응하기 위해 필요하고 명확한 목적을 가지고 있습니다.
반면에 의도되지 않는 복잡성은 아래 7가지를 야기한다고 합니다.
1. 기능 속도 감소
2. 잦은 문제
3. 오래 걸리는 디버깅
4. 과도한 코드 증가
5. 일관되지 않는 패턴
6. 종속성 증가
7. 차별화 되지 않는 업무
이런 복잡성은 피할 수 없으며 적절하게 관리를 해야 한다고 이야기 하였습니다.
Brendan Humphreys 강연 (CTO Canva)
Canva는 전 세계 누구나 디자인할 수 있도록 돕기 위해 설립되었으며, 현재 190개국에서 2억 2천만 명 이상의 사용자가 Canva를 사용하고 있습니다. 플랫폼은 초당 약 120만 건의 요청을 처리하고 있으며, 매일 230TB의 데이터를 추가 되고 있다고 합니다.
초기에는 소규모 팀에 모놀리스 구축을 하였고, 하나의 MySQL 인스턴스를 시작하여 필요에 따라 여러 인스턴스로 확장할 수 있다고 합니다. 서비스 규모가 커짐에 따라 MySQL 데이터베이스 한계를 부딪치게 되었고, DynamoDB로 이전을 준비하였다고 합니다. 여정은 쉽지 않았지만 결국 성공적으로 전환하여 930억 개의 항목을 관리하고 하고 있으며 매일 약 9천 만 개의 항목이 증가되고 있다고 합니다. 놀라운 것은 성능과 신뢰성을 얻었다고 합니다.
MySQL 인스턴스로만 고집을 하였다면 서비스 확장은 멈췄을 것이라 생각됩니다. 그렇게 Canva는 강력하고 일관된 추상화를 통해 확장성을 확보하고 있으며, API와 SDK를 통해 개발자들이 Canva 위에 기능을 구축할 수 있도록 지원할 수 있게 되었다고 합니다.
Lesson 1 : 진화 가능성을 필수 요건으로 삼기
변화는 끊임없이 일어나고 있으며, 소프트웨어에 새로운 기능을 추가하지 않으면 품질이 떨어진다고 이야기 합니다. 그래서 아마존에서는 아래의 내용을 가이드 합니다.
– 진화 가능성을 필수 요건으로 설정
– 아키텍처 선택을 주기적으로 검토
예로 S3를 들고 있습니다. S3는 초기 6개 정도의 마이크로 서비스에서 현재는 300개 이상으로 확장하였고, 이런 변화에도 고객에게 영향을 주지 않고 있다고 합니다. 그렇게 하기 위해서는 아래의 변화 과정을 이야기 합니다.
– 프론트 엔드 단순화
– 시스템 구성 원칙
– CloudWatch의 새로운 기능 추가
– 프로그래밍 언어의 변화 (C언어에서 Rust로 변경)
– 서비스 크기 결정
S3가 AWS의 대표 서비스인 만큼 오래되었고, 그만큼 안정적이고 고객에게 사랑 받는 서비스로 성장할 수 있었던 것은 계속 진화를 해왔기 때문이라고 생각합니다.
Lesson 2 : 복잡성 분산하기
마이크로서비스에서 새로운 기능을 추가할 때 기존 서비스를 확장하거나, 새로운 마이크로 서비스를 만드는 두가지 옵션을 이야기 합니다.
확장은 빠르고 코드 재사용을 가능하지만, 서비스가 너무 커지는 문제를 가지며, 새로운 서비스를 만드는 것은 관리하기 쉽지만 초기 노력이 많이 들어갑니다. 그래서 마이크로 서비스가 너무 커져서 엔지니어가 이해하기 힘든 경우를 경고 신호라고 이야기 합니다.
Andy Warfield 강연 (S3의 복잡성 관리)
복잡성과 두려움
– 성공적인 팀은 항상 잘못될까 봐 약간의 두려움을 가지고 있다고 합니다.
– 끊임없이 질문을 하고 개선을 하고 있다고 합니다.
주인의식
– 탬에게 문제를 해결할 수 있는 권한과 책임을 부여한다고 합니다.
– 훌륭한 리더는 팀 내에 주인의식을 가지게 하며, 동기부여를 느끼게 한다고 합니다.
Lesson 3 : 조직을 아키텍처에 맞게 조정
결론
특히, 끓는 물안의 개구리 처럼, 천천히 끊는 물 안에 안주를 하게 되면 서비스는 결국 퇴화 된다고 이야기 하는 부분이 인상적이었습니다.
계속적인 모놀리스에서 마이크로 서비스로 변화하는 것은 필수적인 흐름이며, 계속적인 복잡성을 가지게 되는 현재의 상황에 보겔스 박사님의 simplexity (단순 + 복잡성) 을 가져야 한다는 것은 매우 중요한 단어로 인식됩니다.