초당 1억 건의 요청 S3 스케일의 스토리지 구축, 운영, 관리

초당 평균 1억 건의 요청이 발생하는 AWS S3를 구축, 운영 그리고 관리하면 어떤 점을 배울까요? 대용량 트래픽이 발생하고 그에 맞는 라지 스케일 시스템을 구현하고 관리하는 건 클래스를 들으며 배우는 데 한계가 있고 실무 경험이 아주 중요한 것 같습니다. 제가 AWS S3에서 일하며 배운 점을 선임이 쓰신 글에 잘 정리되어 있어서 간략하게 내용 정리해서 공유합니다. https://www.allthingsdistributed.com/2023/07/building-and-operating-a-pretty-big-storage-system.html 1️⃣ 소프트웨어 시스템에 대한 생각의 폭을 넓혀야 했다 라지 스케일의 시스템을 운영 및 관리하려면 수백 개의 마이크로서비스만 고려하는 게 아니라 그 수많은 마이크로서비스 코드를 구현하는 소프트웨어, 하드웨어 그리고 사람까지 모두 고려해야 한다. 2️⃣ 시스템을 이해하는 데 수년이 걸렸다 단순히 화이트보드에 시스템 설계를 그려 보면 '스케일(확장성)'을 명확하게 나타내지 않는다. 초당 1억 건의 요청이 발생하고 총 약 280 trillion 객체를 갖고 있는 S3 시스템을 이해하는 데 수년이 걸리고 현재까지도 큰 스케일에 가끔 놀랄 때가 있다(AWS S3 관련 추가 데이터는 원문에 있습니다). 3️⃣ 레플리케이션: 데이터 배치(Data Placement) 및 내구성 데이터 레플리케이션은 하드웨서 오류로부터 데이터를 보호하는 데 사용되지만 열(heat) 관리에도 도움 된다. 로드를 분산시켜서 핫 스팟(hot spot)을 방지한다. 서버 용량 입장에서 생각하면 레플리케션은 비싼 옵션이지만 I/O 관점에서 보면 굉장히 효율적인 옵션이다. 👉 원문에 살짝 언급되는 erasure coding은 알아 두면 좋은 개념입니다. 4️⃣ 규모가 데이터 배치 전략에 미치는 영향 새로운 객체의 배치를 여러 디스크에 넓게 확산하는 것이다. 각 객체는 수십 개의 드라이브에 걸쳐 인코딩될 수 있지만, 서로 다른 객체를 의도적으로 서로 다른 드라이브 세트에 배치해서 각 고객의 객체 액세스가 많은 수의 디스크에 분산되도록 한다. 5️⃣ 인적 요소 라지 스케일 시스템을 소유한 팀과 엔지니어들이 내구성(Durability)이 높은 스토리지를 제공하면서 빠르게 혁신할 수 있는 자신감을 갖도록 해야 한다. S3에서는 이를 위해 내구성 검토(Durability Review)라는 프로세스를 사용한다. 시스템을 구현할 때 내구성에 영향을 미칠 수 있는 리스크를 엔지니어가 스스로 미리 생각해 보고 검토하도록 하는 프로세스다. 이 과정은 보안 검토(Security Review)에서 Threat Model을 생각해 보는 것과 비슷하다. Threat Model처럼 리스크를 분석하고 이를 예방하는 가드레일이 충분히 있는지 검토한다. 👉 Threat Model에 관한 포스팅을 과거에 올린 적 있는데, 궁금하신 분은 예전 글을 참조해 주세요. https://careerly.co.kr/comments/73799 👉 원문에 살짝 언급되는 formal verification에 관해 좀 더 알아둬도 좋습니다. 6️⃣ 어려운 문제를 해결하는 건 오너쉽에서 시작하고 끝난다 빠르게 혁신하고 퀄리티가 높은 결과를 내기 위해서 오너쉽(Ownership)이 필요하다. 오너쉽에는 책임이 따르지만 믿음도 따른다. 한 개인이나 팀이 전적인 책임과 소유권을 갖도록 해서 스스로 의사 결정을 내릴 수 있도록 자율성도 함께 줘야 한다. 반대로 오너쉽이 없으면 부정적인 결과를 초래한다. 7️⃣ 다른 사람이 오너쉽을 갖도록 장려하기 회사의 선임으로써 문제를 해결할 솔루션을 제공하는 역할을 하는 게 아니라 서비스를 구축하고 운영하는 오너쉽을 가진 엔지니어나 팀이 스스로 여러가지 솔루션을 생각할 수 있도록 돕는다. 문제를 해결할 방법은 여러 가지가 있지만, 올바른 선택은 엔지니어가 스스로 솔루션은 찾도록 소유권을 갖도록 하는 것이다. 예를 들어, 필자가 캐나다 대학 교수 시절 가장 성공적이었던 연구는 필자가 낸 해결책이 아닌, 필자가 함께 일한 연구 학생들 덕분이었다. 연구하는 학생들에게 소유권을 갖도록 하면, 스스로 진화하고 자발적으로 일에 투자하도록 하며 좋은 결과를 내게 된다. 🪴 함께 읽으면 좋은 글 데이터 내구성을 보장하는 법 https://careerly.co.kr/comments/86427 체크섬에 대해 아직 모르시나요? https://careerly.co.kr/comments/86452

Building and operating a pretty big storage system called S3

www.allthingsdistributed.com

Building and operating a pretty big storage system called S3

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 8월 13일 오후 6:33

 • 

저장 211조회 9,936

댓글 0