Nice programing

Amazon S3 버킷을 로컬 디렉터리로 탑재하는 s3fs의 안정성

nicepro 2020. 11. 11. 20:37
반응형

Amazon S3 버킷을 로컬 디렉터리로 탑재하는 s3fs의 안정성


s3fs가 Amazon S3 버킷을 Linux의 로컬 디렉터리로 마운트하는 데 얼마나 안정적인가요? 수요가 많은 생산 환경에 권장 / 안정적입니까?

더 나은 / 유사한 솔루션이 있습니까?

업데이트 : EBS를 사용하고 NFS를 통해 다른 모든 AMI에 마운트하는 것이 더 낫습니까?


여기 s3fs에 대한 좋은 기사가 있는데 , 읽은 후 EBS 공유에 의지했습니다.

s3fs를 사용할 때, 즉 S3의 고유 한 제한과 관련된 몇 가지 중요한 고려 사항을 강조합니다.

  • 5GB를 초과 할 수없는 파일
  • 파일을 부분적으로 업데이트 할 수 없으므로 단일 바이트를 변경하면 전체 파일이 다시 업로드됩니다.
  • 많은 작은 파일에 대한 작업은 매우 효율적이지만 (각각은 결국 별도의 S3 객체 임) 큰 파일은 매우 비효율적입니다.
  • S3는 부분 / 청크 다운로드를 지원하지만 s3fs는이를 활용하지 않으므로 1GB 파일의 1 바이트 만 읽으려면 전체 GB를 다운로드해야합니다.

따라서 s3fs가 실행 가능한 옵션인지 여부는 저장 대상에 따라 다릅니다. 예를 들어 전체 파일을 쓰거나 전체 파일을 읽고 싶은 사진을 저장하는 경우 파일을 점진적으로 변경하지 마십시오. 이렇게하면 S3를 사용하지 않는 것이 좋습니다. API 직접?

응용 프로그램 데이터 (예 : 데이터베이스 파일, 로깅 파일)에 대해 이야기하고있는 경우 약간의 증분 변경을 수행하려는 경우 확실한 아니요-S3 Just는 파일을 증분 변경할 수없는 방식으로 작동하지 않습니다.

위에서 언급 한 기사에서는 S3를 통해 가상 파일 시스템을 구현하여 성능 문제를 해결 하는 유사한 애플리케이션 인 s3backer에 대해 설명합니다 . 이것은 성능 문제를 해결하지만 자체적으로 몇 가지 문제가 있습니다.

  • 쓰기 지연으로 인한 데이터 손상 위험이 높음
  • 너무 작은 블록 크기 (예 : 4K 기본값)는 상당한 추가 비용을 추가 할 수 있습니다 (예 : 4K 블록 가치의 스토리지로 50GB에 130 달러).
  • 블록 크기가 너무 크면 상당한 데이터 전송 및 저장 비용이 추가 될 수 있습니다.
  • 메모리 사용량은 엄청날 수 있습니다. 기본적으로 1000 개의 블록을 캐시합니다.
    기본 4K 블록 크기를 사용하면 문제가되지 않지만 대부분의 사용자
    는 블록 크기를 늘리기를 원할 것입니다.

EC2 인스턴스에서 공유되는 EBS Mounted Drived를 사용했습니다. 그러나 가장 성능이 뛰어난 옵션이긴하지만 하나의 큰 문제가 있음을 알아야합니다. EBS 탑재 NFS 공유에는 고유 한 문제가 있습니다. 즉, 단일 실패 지점입니다. EBS 볼륨을 공유하는 머신이 다운되면 공유에 액세스하는 모든 머신에 대한 액세스 권한을 잃게됩니다.

이것은 내가 함께 살 수있는 위험이며 결국 내가 선택한 옵션이었습니다. 이게 도움이 되길 바란다.


이것은 오래된 질문이므로 지난 1 년간 S3FS와의 경험을 공유하겠습니다.

처음에는 많은 버그와 메모리 누수가 있었지만 (2 시간마다 다시 시작하는 cron-job이 있었음) 최신 릴리스 1.73에서는 매우 안정적이었습니다.

S3FS의 가장 좋은 점은 걱정할 것이 하나 적고 무료로 성능 이점을 얻을 수 있다는 것입니다.

대부분의 S3 요청은 PUT (~ 5 %) 및 GET (~ 95 %)이 될 것입니다. 후 처리가 필요하지 않은 경우 (예 : 썸네일 생성). 사후 처리가 필요하지 않은 경우 처음에 웹 서버에 접속하여 S3에 직접 업로드 (CORS 사용)해서는 안됩니다.

서버에 접속한다고 가정하면 이미지에 대한 후 처리 작업을 수행해야 할 수 있습니다. S3 API를 사용하면 서버에 업로드 한 다음 S3에 업로드합니다. 사용자가 자르기를 원하는 경우 S3에서 다시 다운로드 한 다음 서버에 다시 업로드하고 자르고 S3에 업로드해야합니다. S3FS 및 로컬 캐싱이 켜져 있으면이 오케스트레이션이 처리되고 S3에서 파일 다운로드를 저장합니다.

캐싱시 EC2의 임시 드라이브에 캐싱하는 경우 성능상의 이점을 얻을 수 있으며 아무 걱정없이 캐시를 제거 할 수 있습니다. 디스크 공간이 부족하지 않는 한 캐시를 제거 할 이유가 없어야합니다. 이렇게하면 검색 및 필터링과 같은 순회 작업이 훨씬 쉬워집니다.

내가 바라는 한 가지는 S3 (RSync 스타일)과의 완전 동기화였습니다. 그렇게하면 DropBox 또는 S3 용 Google Drive의 엔터프라이즈 버전이 될 수 있지만 함께 제공되는 할당량 및 요금과 경쟁 할 필요가 없습니다.

참고 URL : https://stackoverflow.com/questions/10801158/how-stable-is-s3fs-to-mount-an-amazon-s3-bucket-as-a-local-directory

반응형