GN⁺: Supabase Storage, 이제 S3 프로토콜 지원
(supabase.com)Supabase Storage의 S3 호환성과 Resumable Uploads의 정식 출시
- Supabase Storage가 이제 S3 호환 스토리지 제공자가 되었음. 이는 가장 많이 요청된 기능 중 하나이며 현재 공개 알파 버전으로 사용 가능함.
- Resumable Uploads도 베타 버전에서 정식 버전으로 전환되었음.
- Supabase Storage 엔진은 완전한 오픈소스이며, 파일 관리를 위해 3가지 상호 운용 가능한 프로토콜을 제공하는 몇 안 되는 스토리지 솔루션 중 하나임.
- Standard uploads: 시작하기 쉬움
- Resumable uploads: 대용량 업로드를 위한 재개 가능한 업로드
- S3 uploads: 다양한 도구와의 호환성을 위함
S3 호환성
- Supabase는 항상 업계 표준을 채택하기 위해 노력함. 표준을 지원하면 워크로드를 이식할 수 있게 되어 주요 제품 원칙이 됨.
- S3 API는 의심할 여지 없이 스토리지 표준이며, 우리는 이를 다양한 경험 수준의 개발자들이 사용할 수 있도록 만들고 있음.
- S3 프로토콜은 다른 API와 이전 버전과 호환됨. 이미 REST 또는 TUS API를 통해 Storage를 사용하고 있다면, 오늘부터 S3 클라이언트를 사용하여 버킷 및 파일과 상호 작용할 수 있음: TUS로 업로드하고, REST로 제공하며, S3 프로토콜로 관리함.
- 이 프로토콜은 클라우드, 로컬 개발 및 자체 호스팅에서 작동함. 문서에서 API 호환성을 확인하세요.
Supabase S3 인증
- Supabase S3로 인증하려면 2가지 옵션이 있음:
- 표준
access_key
및secret_key
자격 증명. 스토리지 설정 페이지에서 생성할 수 있음. 이 인증 방법은 S3 프로토콜을 지원하는 도구와 널리 호환됨. Storage 리소스에 대한 모든 액세스 권한을 제공하므로 서버 측에서만 사용하도록 설계되었음.- 향후 특정 버킷에 대한 액세스 권한을 가질 수 있는 범위가 지정된 액세스 키 자격 증명을 추가할 예정임.
- RLS가 있는 사용자 범위 자격 증명. 이는 모든 Supabase 서비스에서 잘 채택된 개념인 Row Level Security를 활용함. 기존 RLS 정책을 존중하면서 특정 인증된 사용자 또는 역할에 스토리지 작업을 범위를 지정하여 S3 프로토콜과 상호 작용할 수 있음. 이 방법은 S3 프로토콜이 지원하는 Session 토큰 헤더를 사용하여 가능함. Session 토큰 메커니즘을 사용하는 방법에 대한 자세한 내용은 문서에서 확인할 수 있음.
- 표준
S3 호환 통합
- S3 프로토콜을 지원함에 따라 이제 Supabase Storage를 많은 타사 도구 및 서비스에 연결할 수 있음. 언제든지 취소할 수 있는 자격 증명 쌍을 제공하면 됨.
- AWS CLI, rclone, Cyberduck 등 백업 및 마이그레이션을 위한 인기 있는 도구를 사용할 수 있음.
- Cyberduck 가이드를 확인하세요.
데이터 엔지니어를 위한 S3
- S3 호환성은 데이터 엔지니어를 위한 좋은 기본 요소를 제공함. ClickHouse와 같은 데이터 웨어하우스, DuckDB, Spark, Trino, Snowflake External Table과 같은 쿼리 엔진, Fivetran & Airbyte와 같은 데이터 로더 등 많은 인기 도구와 함께 사용할 수 있음.
- 예제에서 우리의 놀라운 데이터 분석가인 Tyler는 Supabase Storage에 Parquet 파일을 저장하고 DuckDB를 사용하여 직접 쿼리하는 방법을 보여줌.
S3의 멀티파트 업로드
- 표준 업로드 및 재개 가능한 업로드 외에도 이제 S3 프로토콜을 통한 멀티파트 업로드를 지원함. 이를 통해 청크를 병렬로 업로드하여 업로드 처리량을 최대화할 수 있으며, 끝에서 연결됨.
Resumable Uploads의 정식 출시
- 플랫폼 GA 발표와 함께 Resumable Uploads도 정식 출시되었다는 소식을 전하게 되어 기쁨.
- Resumable Uploads는 TUS 프로토콜에 의해 구동됨. 이 과정은 TUS 팀과 긴밀히 협력하여 매우 보람 있었음. TUS 프로토콜 관리자인 @murderlon과 @acconut에게 오픈 소스에 대한 협력적인 접근 방식에 대해 큰 감사를 표함.
Supabase의 기여
- Supabase는 분산 잠금, 최대 파일 크기, 만료 확장 및 수많은 버그 수정을 포함하여 TUS 사양의 Node 구현에서 일부 고급 기능을 기여했음.
- 이러한 기능은 Supabase에 필수적이었으며 TUS 노드 서버가 오픈 소스이기 때문에 사용할 수 있음. 이는 또 다른 핵심 원칙임: 가능한 경우 처음부터 개발하는 대신 기존 도구를 사용하고 지원함.
기타 개선 사항
- 버킷 간 전송: 이전에는 동일한 Supabase 버킷 내에서만 수행할 수 있었던 작업을 이제 버킷 간에 객체를 복사하고 이동할 수 있음.
- 표준화된 오류 코드: 오류 코드가 Storage 서버 전체에서 표준화되었으며 이제 특정 오류에 대한 분기 로직을 훨씬 쉽게 사용할 수 있음.
- 멀티테넌트 마이그레이션: 모든 테넌트에서 실행 중인 마이그레이션을 크게 개선했음. 이로 인해 전체 플릿에서 마이그레이션 오류가 감소했으며 장기 실행 마이그레이션을 비동기 방식으로 실행할 수 있음.
- 종속성 분리: Storage가 다른 Supabase 제품과 완전히 분리되어 Storage를 독립 실행형 서비스로 실행할 수 있음. docker-compose 파일로 시작하세요.
시작하기
- 문서에서 S3 API 호환성 확인
- S3 인증에 대해 알아보기
- Cyberduck으로 S3 사용해 보기: 통합 가이드 따라하기
- DuckDB로 S3 사용해 보기: YouTube의 가이드 따라하기
GN⁺의 의견
- S3 호환성은 Supabase Storage를 클라우드 스토리지 표준에 한 걸음 더 가까이 다가가게 해줌. 많은 기업에서 이미 S3를 사용하고 있기에 Supabase로의 전환이 매우 쉬워짐.
- 하지만 S3는 원래 AWS의 서비스이기에 장기적으로는 Supabase만의 고유한 프로토콜을 개발하는 것도 고려해볼만함. 아마존에 종속되는 상황은 피해야할 것임.
- Resumable Upload의 정식 출시로 대용량 파일 전송이 한결 수월해질 것으로 보임. 기존 방식의 한계를 극복하고 사용성을 높인 점이 돋보임.
- S3를 활용한 데이터 엔지니어링 파이프라인 구축은 매력적인 사례임. 이를 잘 활용한다면 기업 데이터 인프라의 현대화에 도움이 될 것임.
- Supabase가 TUS 프로토콜 개선에 직접 기여한 점, 그리고 그것이 다시 오픈소스 생태계로 환원되는 선순환 구조가 인상적임. 단순한 오픈소스 사용자가 아닌 공헌자로서의 역할을 충실히 해내고 있음.
Hacker News 의견
-
Supabase의 CEO가 새로운 Storage 제품 업데이트에 대해 소개함. 이 제품은 대용량 파일을 저장하고, S3 호환성을 추가해 수천 개의 기존 도구와 함께 사용할 수 있게 됨. 특히 데이터 과학자/엔지니어를 위한 가능성에 주목함.
-
한 사용자는 S3를 지원하는 CDN 제공업체를 활용할 수 있게 된 것을 반기면서도, Supabase에는 아직 개선이 필요한 부분이 있다고 지적함. 전반적으로는 Supabase의 발전 방향을 긍정적으로 평가함.
-
DuckDB가 이제 S3 프로토콜을 지원하는 Supabase Storage에서 직접 parquet 파일을 쿼리할 수 있게 된 예시가 공유됨.
-
PostgreSQL의 Large Object 저장 방식을 선호하는 사용자의 의견도 있음.
-
Supabase의 셀프 호스팅 용이성에 대한 질문이 제기됨. 비용 문제로 셀프 호스팅으로 전환하는 것이 얼마나 쉬운지 궁금해 함.
-
Supabase가 Oriole 팀을 영입한 소식과 함께, Cloudflare R2와의 연동을 고려 중인 사용자의 의견도 있음.
-
Supabase Storage의 구현 방식, 특히 PostgreSQL에 실제로 데이터가 저장되는지, 트랜잭션 업데이트를 지원하는지 등에 대한 질문이 있음.
-
Supabase에 대한 신뢰와 애착을 표현하며, 인수되어 망가지지 않기를 바라는 사용자의 바람이 전달됨.
-
AWS S3의 독점 API가 사실상 업계 표준이 된 것에 대한 의아함을 표현한 의견도 있음.
-
사전 서명된 URL(pre-signed URL) 지원 여부에 대한 질문도 제기됨.