AWS(Amazon) S3, S3Fuse vs 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 에 잘 나와 있지만 실제 어떠한 차이가 있을지 비교해 봤다.
- OS : Amazon Linux AMI release 2015.09
- EC2 Type : t2.micro (ALL Default Setup)
- Version : goofys/0.0.5, s3fuse/1.79
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.
- local folder에 500MB의 대용량 파일을 준비한다.
- 단일 대용량 파일의 전송률을 체크한다.
Write
Read
읽기에 비해 쓰기가 빠르고 (일반 스토리지는 쓰기보다 읽기가 빠른것이 서로 다르다) goofys 가 쓰기는 90.9% 빠른 결과를 얻었다.
방법2.
- local folder에 713개로 구성된 47MB 파일을 만든다.
- 다수의 작은용량 파일을 복사할 때 소요되는 시간을 확인한다.
Write
Read
역시 읽기에 비해 쓰기가 빠른 결과를 얻었지만 두 파일 시스템의 차이는 goofys 가 더 나았다.
3. 기타
다음의 자료는 goofys git에 포함된 자료다.
4. 결론
전반적인 성능에 있어 goofys 는 s3fuse를 ‘압도한다’ 라고 말할 수 있어 보인다. 물론 성능이 다가 아니다. 파일 시스템의 중요성은 안정성이다. Stable 버전의 Fuse 조차도 아직 여러 버그들이 존재한다. (잘못된 query retry 로 인한 비용 과다 청구 등) Alpha 버전의 goofys 는 공개된 정보가 부족해 많은 관심이 필요로 할 수도 있다.
사용량이 적고, 모니터링에 문제가 없다면 현 시점에서 s3 file system 은 goofys 가 좋은 선택일 듯.