이두잉의 AWS 세상

AWS S3 SoftNAS 성능 검증

2016.07.21 16:06 - leedoing leedoing

AWS 상에서 파일 서버 구축은 여러가지 방법이 있습니다. 


첫 번째, AWS EFS을 사용. 비용만 감당되면 가장 베스트한 방법이지만, 아직 서울 리전을 지원하지 않습니다.


두 번째, S3를 이용하여 EC2 Client에서 CLI, SDK 등을 사용하는 방법입니다. 개발 단 수정이 필요하지만 비용 및 성능 면에서 좋은 방법입니다.


세 번째, S3 mount를 위해 오픈소스를 사용하는 방법이 있습니다. S3FS, goofys 등의 오픈소스를 사용하면 됩니다. 이 방법은 read가 주로 필요한 경우 추천합니다. write의 경우 성능에 약점이 있으나, read의 경우 cache 옵션을 사용하면 상용 서비스 수준으로 사용할 수 있습니다. goofys가 오픈소스 중 가장 우월한 성능을 보여줍니다. 그러나 오픈소스인만큼 유지/보수에 어려움이 있을 수 있습니다. 참고로 directory 별 권한 관리가 안 되기 때문에 mount 시에 -o allow_other -uid 500 -gid 500 등 옵션을 넣어줘야 합니다. S3 관련 오픈소스는 uid, gid로 권한 관리를 합니다.


네 번째, EC2 Instance에 NFS를 통해 NAS 서버를 구축합니다. NAS 서버 관리 포인트가 발생됩니다.


다섯 번째, SoftNAS와 같은 상용 솔루션을 이용하여 NAS 서버를 구축합니다. 잘 사용하려면 SoftNAS를 학습해야 하는 단점이 있습니다. 


오늘은 다섯 번째, SoftNAS에 대해서 블로깅합니다.

설치 및 설정은 아래 링크를 확인해보시기 바랍니다.

(Getting Started 참고 - https://www.softnas.com/docs/softnas/v3/html/getting_started.html)

(동영상 참고 - https://www.softnas.com/wp/support/tutorial-how-to-videos/tutorial-amazon-ec2/?utm_campaign=reinvent&utm_medium=free-trial-email&utm_source=softnas&utm_content=support-links&utm_term=tutorial-videos&mkt_tok=eyJpIjoiTjJFM05UUmpabVl4T0RJMSIsInQiOiJNUmg4ZFU0b0hhQUFBbE5OVzlFRVFZXC9YVGttVWlQcHc3Snl4QUhYV2JHV2xFWEd3eDVIZ01idmxWV1psNTZUa00rQ2ZiaGQ3dldhSzdDK3NmaWdwVlwvUERKWjgwOVorYldtUzJSeUJJTVBVPSJ9)


SoftNAS를 설치하고 해당 VM의 443 Port로 접근하면 아래와 같이 SoftNAS를 maintenance할 수 있는 페이지를 확인할 수 있습니다. mount 명령시에는 사설 IP로 입력하셔야 합니다.



성능 테스트 결과(Client EC2 Type t2.micro)

SoftNAS 10GiB * 5 EBS(gp2) raid 5

16KiB Block, 1GB / RandWrite: IOPS 2453, Run Time 36s

16KiB Block, 1GB / RandRead: IOPS 1966, Run Time 33s



본 테스트는 EC2 Type(EBS optimized, Network Performance), 테스트 환경 등에 따라 다른 결과가 나올 수 있습니다. 

하지만 일관성 있는 성능 수치는 변하지 않을 듯 합니다. 또 S3 goofys는 S3fs보단 확실히 빠르네요. (Config Default)

S3 goofys는 다음 시간에 블로깅합니다.


감사합니다.

  • 2017.07.25 15:54 신고

    혹시 goofys마운트시 이렇게 되는데 이유 아시나요?
    cp 및 touch문으로 파일복사는 가능.
    마운트포인트에 cd불가능, df -h 도 sudo권한으로 사용해야 마운트된게 보입니다.

    1. BlogIcon leedoing leedoing 2017.11.24 14:29 신고

      답변이 늦은거 같은데. mount 명령어를 실행시키실 때 권한 옵션이 있을 겁니다. 아마 그룹별로 줬던거 같은데. goofys git 들어가시면 확인하실 수 있을거에요.