Amazon S3에서 대규모 데이터 이전: 무중단 클라우드 엑시트 전략

Moving Mountains of Data off S3

작성자
발행일
2026년 01월 08일

핵심 요약

  • 1 37signals는 수십억 개의 파일과 5페타바이트 규모의 데이터를 Amazon S3에서 자체 인프라로 무중단 마이그레이션하는 데 성공했습니다.
  • 2 AWS의 높은 egress 비용과 대역폭 제한을 극복하기 위해 커스텀 Rails 애플리케이션, DuckDB, Rclone 등 최적화된 도구와 전략을 활용했습니다.
  • 3 데이터 이관의 복잡성을 관리하기 위해 엄격한 검증 절차, 이중화, 그리고 미래를 위한 재해 복구 시스템 구축에 집중했습니다.

도입

37signals는 클라우드 이탈 프로젝트의 가장 중요하고도 신경 쓰이는 부분이었던 Amazon S3에서 방대한 양의 데이터를 자체 인프라로 이전하는 과정을 성공적으로 완료했습니다. 수십억 개의 파일과 총 5페타바이트에 달하는 데이터를 무중단으로 마이그레이션하는 것은 복잡하고 위험한 작업이었습니다. Jeremy Daer 수석 프로그래머는 AWS의 대역폭 제한, 높은 비용 문제, 그리고 기존 상용 솔루션의 한계를 극복하기 위해 커스텀 도구를 구축하고 혁신적인 전략을 적용한 경험을 공유하며, 이 대규모 데이터 이관 프로젝트의 기술적, 심리적 어려움을 조명합니다.

대규모 S3 데이터 마이그레이션은 여러 가지 기술적 및 운영적 난관에 직면했습니다. 이 프로젝트의 핵심 도전 과제와 이를 해결하기 위한 전략은 다음과 같습니다.

주요 도전 과제

  • 비용 및 AWS 제약: S3의 높은 egress 비용과 API 요청 비용은 데이터를 외부로 옮기는 데 큰 장벽이었습니다. 또한, 버킷 파티션당 초당 5,500개의 GET 요청으로 제한되는 읽기 속도는 대량의 작은 객체를 처리할 때 병목 현상을 유발했습니다.

  • 데이터 규모: 약 50억 개의 객체와 5페타바이트에 달하는 데이터가 수백 개의 버킷에 분산되어 있어, 일반적인 파일 복사 도구로는 효율적인 처리가 불가능했습니다.

  • 시간 제약: AWS로부터 egress 비용 면제를 받기 위해 90일 이내에 모든 데이터를 옮겨야 하는 엄격한 계약 조건이 있었습니다.

핵심 기술 및 전략

  • 커스텀 Rails 애플리케이션 (Nostos): 마이그레이션 작업을 총괄하고 모니터링하기 위해 Rails 애플리케이션을 개발했습니다. ActiveJob과 Solid Queue를 활용하여 작업을 분산하고, 상태 추적, 오류 처리 및 재시도 로직을 구현하여 작업의 안정성을 높였습니다.

  • 데이터 인벤토리 및 분할: 대규모 버킷 목록을 효율적으로 가져오기 위해 S3 Inventory Reports를 활용했습니다. 이 보고서를 DuckDB와 결합하여, 대용량 데이터를 메모리에 올리지 않고도 Parquet 파일을 스트리밍 방식으로 처리하여 효율적으로 작업 배치로 분할했습니다. 이는 수작업으로 코드를 작성할 필요 없이 데이터 분할 작업을 자동화하는 데 결정적인 역할을 했습니다.

  • 고성능 스토리지 및 네트워크: 새로운 스토리지 시스템으로는 Pure Storage Flashblade를 도입하여 높은 쓰기 속도와 메타데이터 처리 성능을 확보했습니다. 또한, 데이터 센터에 100기가비트 전용 네트워크 연결을 구축하여 S3로부터의 데이터 전송에 대한 대역폭 병목 현상을 최소화했습니다.

  • Rclone: 실제 데이터 복사 작업의 핵심 도구로 오픈소스 Rclone을 사용했습니다. Rclone은 체크섬 검증, 대역폭 및 메타데이터 작업 효율성, 그리고 뛰어난 복원력을 제공하여 안정적인 데이터 전송을 가능하게 했습니다. 37signals는 Flashblade를 Rclone의 공식 목적지로 추가하는 데 기여했습니다.

  • 무중단 전략: 마이그레이션 기간 동안 S3와 새로운 스토리지 시스템에 동시에 데이터를 쓰는 듀얼 라이트(dual writes) 방식을 채택하여 서비스 중단 없이 데이터 일관성을 유지했습니다. 이어서 엄격한 검증 및 재조정(reconciliation) 절차를 통해 모든 데이터가 정확하게 복사되었는지 확인했습니다.

결론

37signals는 S3에서 자체 인프라로의 대규모 데이터 마이그레이션을 단 10일 만에 무중단으로 성공적으로 완료했습니다. 이 과정에서 커스텀 Rails 도구, DuckDB, Rclone, 그리고 Pure Storage Flashblade와 같은 최신 기술을 효과적으로 조합하여 복잡한 기술적 난제를 해결했습니다. 단순한 데이터 복사를 넘어선 엄격한 검증, 이중화, 그리고 재해 복구 계획 수립의 중요성을 재확인한 사례입니다. 향후 데이터 안정성 강화를 위해 MinIO와 같은 다른 벤더의 스토리지 솔루션을 포함한 3중 백업 전략을 고려 중이며, 이는 단일 벤더 종속성 및 잠재적 시스템 버그로부터 데이터를 보호하기 위함입니다. 본 프로젝트는 기술적 도전과제를 극복하고 안정적인 자체 인프라를 성공적으로 구축한 37signals의 뛰어난 역량을 명확히 보여줍니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!