Site icon GRIP.News

AWS(Amazon) S3, S3Fuse vs Goofys 성능 비교

2016년 3월 16일 작성한 포스트로, 당시 Seoul/Tokyo Region 은 EFS(Elastic File System) 서비스를 제공하고 있지 않았습니다. 개발자들이 AWS CLI 에 대해 익숙하지 않아 S3 활용을 위해 Drive 로 마운트하는 양대 도구, Fuse 와 Goofys 의 PoC 를 진행했었습니다.

 

최근 Seoul 에 EFS 서비스가 제공되고, AWS CLI 사용이 익숙해진 개발자들이 많아 Fuse 나 Goofys 를 사용하는 경우가 많지 않지만 참고삼아 포스트를 이전하게 되었습니다.

 

앞 글(S3Fuse / Goofys 설치하기) 에서 Amazon S3 를 File System 으로 Mount 하는 방법을 확인했다. S3 를 File System 으로 사용하는 이유는, 유지보수의 편의성 및 공유 Folder 로 사용하기 위해서다. 후자의 경우 AWS내 EFS(ElastiFileSystem)이 존재하나, EU-Central, Seoul 등의 Region 에서는 사용할 수 없는 아쉬움이 있다.

기존 Legacy infra 에서 NAS를 사용 중이었다면 AWS 로 이전할 때 고민거리가 생길 것이다. EC2 Instance 에 NAS 를 올리는 방법이 있다. 특히 Market Place 에서 SoftNAS 라는 패키지를 판매한다. 요금이 만만치 않기 때문에 고민할 것이다. 편하게(?) FreeNAS를 사용하는 방법이 있지만, AWS 로 인프라를 이관할 때 대부분 ‘운영 비용 절감’을 목표로 두는 곳이 대부분 일 것이기에 손이 많이 가는 Custom NAS는 선택 선상에서 크게 벗어날 것이다. 물론 EFS 를 쓰는게 가장 효과적이지만 앞서 언급한 것같이 Support Region 이슈가 있다. 사족은 여기까지.

S3 Fuse 와 Goofys 의 성능 비교는 Goofys 에 잘 나와 있지만 실제 어떠한 차이가 있을지 비교해 봤다.

 

1. dd 를 통한 테스트

Linux 의 기본 Command인 dd를 통해 dummy 파일을 생성 및 읽으며 소요된 시간을 측정했다. 캐쉬를 사용하지 않도록 매번 파일을 다시 생성했고, 다음 자료는 5회 평균 자료다.

time dd bs=8k count=100000 if=/dev/zero of=dummy #write
time dd bs=8k count=100000 if=dummy of=/dev/zero #read

 

테스트 결과 goofys 가 쓰기에선 평균 27% 빨랐고, 읽기에선 테스트 처리량이 512MB의 전송량일 때는 100% 빨랐으나, 1G 에 도달해선 오히려 s3fuse 보다 느렸다. Read test 에 있어 100MB 이하는 goofys 가 Cache를 사용하는 바람에 제대로 된 테스트가 불가했다. goofys 가 압승에 가까운 결과를 낳았다.

 

2. 파일 복사 테스트

벤치마크 툴을 이용한 테스트 보다 실제 파일 복사에서 발생하는 결과가 좀더 신뢰감이 있다 생각해 진행했다.

방법 1.

Write

Read

읽기에 비해 쓰기가 빠르고 (일반 스토리지는 쓰기보다 읽기가 빠른것이 서로 다르다) goofys 가 쓰기는 90.9% 빠른 결과를 얻었다.

 

방법2.

Write

Read

역시 읽기에 비해 쓰기가 빠른 결과를 얻었지만 두 파일 시스템의 차이는 goofys 가 더 나았다.

 

3. 기타

다음의 자료는 goofys git에 포함된 자료다.

 

4. 결론

전반적인 성능에 있어 goofys 는 s3fuse를 ‘압도한다’ 라고 말할 수 있어 보인다. 물론 성능이 다가 아니다. 파일 시스템의 중요성은 안정성이다. Stable 버전의 Fuse 조차도 아직 여러 버그들이 존재한다. (잘못된 query retry 로 인한 비용 과다 청구 등) Alpha 버전의 goofys 는 공개된 정보가 부족해 많은 관심이 필요로 할 수도 있다.

사용량이 적고, 모니터링에 문제가 없다면 현 시점에서 s3 file system 은 goofys 가 좋은 선택일 듯.

 

Exit mobile version