Stack Overflow에서 동일한 질문에 대답 했습니다 .
s3fs는 실제로 합리적인 해결책이며, 필자의 경우 이론적 / 잠재적 문제에도 불구하고 훌륭한 결과로 proftpd와 결합했습니다.
내가 답변을 썼을 때, 나는 내 컨설팅 고객 중 한 명만을 위해 이것을 설정했지만 ... 그 이후로 나 자신의 쿨 에이드를 마시기 시작했고 내 업무에서 생산에 사용하고 있습니다. Sftp 서버에서 하루 종일 업로드 및 다운로드 파일과 데이터를 교환하는 회사는 모든 것을 S3에 직접 저장합니다. 또한 엑셀 스프레드 시트를 S3에 직접 작성하는 보고서 내보내기 시스템은 보고서를 FTP 서버의 버킷에 직접 넣어서 적절한 메타 데이터와 함께 uid, gid 및 각 파일의 모드. (s3fs는 x-amz-meta-uid, -gid 및 -mode 헤더를 사용하여 파일 시스템 권한을 에뮬레이션합니다). 클라이언트가 서버에 로그온하면 보고서 파일이 바로 그 곳에 있습니다.
이상적인 솔루션은 아마도 sftp에서 S3 게이트웨이 서비스로의 sftp 일 것이라고 생각하지만,이 솔루션은 실제로 잘 작동하기 때문에 아직 설계하지 않았습니다.
s3fs의 모든 기본값이 정상인 것은 아닙니다. 다음 옵션을 지정하고 싶을 것입니다.
-o enable_noobj_cache # s3fs has a huge performance hit for large directories without this enabled
-o stat_cache_expire=30 # the ideal time will vary according to your usage
-o enable_content_md5 # it's beyond me why this safety check is disabled by default
US-Standard 이외의 영역을 사용하는 것이 가장 좋습니다. 왜냐하면 새 개체에 대해 쓰기 후 읽기 일관성을 제공하지 않는 유일한 영역이기 때문입니다. 또는 US 표준을 사용해야하는 your-bucket.s3-external-1.amazonaws.com
경우 us-east-1 리전에서 거의 문서화되지 않은 호스트 이름 을 사용하여 요청이 지리적 라우팅되지 않도록하여 일관성을 향상시킬 수 있습니다.
버킷에서 객체 버전 관리를 활성화했는데 s3fs는 완전히 알지 못합니다. 이것의 장점은 파일이 "중단"되어 있어도 "버킷 버전"으로 가서 "덮어 쓰기"파일을 복구 할 수 있다는 것입니다. S3의 객체 버전 관리는 버전 관리를 인식하지 못하는 S3 클라이언트가 비활성화되거나 혼동되지 않는 방식으로 훌륭하게 설계되었습니다. 버전 관리의 개념이 없습니다.
있음을 유의하십시오 데이터 전송 에 S3하는 무료 데이터 전송 요금. 요청 당 요금 만 지불합니다. 지역 내에서 S3에서 EC2로 데이터를 전송해도 데이터 전송 요금이 없습니다. S3에서 인터넷, Cloudfront 또는 다른 AWS 리전으로 전송 요금을 지불하는 경우에만 가능합니다. 저렴한 저가 중복 스토리지를 사용하려면 s3fs가이를 지원합니다 -o use_rrs
.
Ster는 파일 시스템이 아니라 객체 저장소라는 사실 때문에 크기의 실제 계산이 비실용적이기 때문에 256 테라 바이트의 여유 공간을 볼 때 항상 따뜻한 퍼지 느낌을 얻게됩니다. ).
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 1.4G 6.2G 18% /
s3fs 256T 0 256T 0% /srv/s3fs/example-bucket
물론 버킷을 어디에나 설치할 수 있습니다. 방금 / srv / s3fs에 있습니다.