AWS(Amazon) EC2 Instance에 S3 mount 하기
S3는 Amazon 에서 제공하는 스토리지 서비스로, 상대적으로 저렴한 가격으로 네트워크 공유 드라이브를 만들 수 있다. 일반적으로 S3 는 CloudFront 와 묶어 하나의 패키지로 사용하는데, Fuse 기반 파일 시스템으로 개발된 S3FS 를 설치하면 네트워크 드라이브로 마운트 할 수 있다.
1) 환경 만들기
S3FS 는 기본적으로 Ubuntu/Debian, Centos/Fedora 를 지원하고 있다. 이 글에선 현재 내가 사용중인 Ubuntu 기반으로 설명하겠다.
참고 : https://code.google.com/p/s3fs/wiki/InstallationNotes
> [UPDATE 2016.03.15] https://github.com/s3fs-fuse/s3fs-fuse 로 옮겨감
우선 기본적으로 필요한 패키지를 설치해야 한다. 상기 사이트에는 fuse-utils 를 설치하라고 되어 있지만 Ubuntu 12 이상에서는 이 패키지를 설치할 필요가 없다.
apt-get install build-essential libfuse-dev libcurl4-openssl-dev libxml2-dev mime-support
> [UPDATE 2016.03.15] apt-get install automake 이 추가 필요하다
2) tarball 로 설치하기
그리고 가장 최근에 발매된 패키지를 받아 설치하자.
URL : http://s3fs.googlecode.com/files/s3fs-1.74.tar.gz (140725 현재)
sudo su cd wget http://s3fs.googlecode.com/files/s3fs-1.74.tar.gz tar xvfz ./s3fs-1.74.tar.gz cd s3fs-1.74 ./configure --prefix=/usr make | make install
2-1) 설치하기 [UPDATE 2016.03.14]
Repo 가 Github 로 옮겨감에 따라 설치가 한결 편해졌다. 최신 소스는 언제나 “https://github.com/s3fs-fuse/s3fs-fuse.git” 에서 업데이트 받을 수 있다.
make $HOME/s3fuse cd $HOME/s3fuse git init git pull https://github.com/s3fs-fuse/s3fs-fuse.git ./autogen.sh #configure 를 생성한다. 이 shell 을 위해 automake package 가 필요하다. ./configure --prefix=/usr make | make install
3) S3 Bucket mount
이 글에서는 S3 bucket 이 생성 되었다는걸 기준으로 하고 있다. S3 는 http://aws.amazon.com/ko/s3/ 에서 관리가 가능하다.
S3 를 생성할 때 2개의 Key 를 받게 되는데 (AccessKey / SecretKey) 이 키가 필요하다
키를 s3fs 에 등록해야 한다.
$sudo su $touch /etc/passwd-s3fs && chmod 640 /etc/passwd-s3fs && echo 'AccessKey:SecretKey' > /etc/passwd-s3fs
적절하게 마운트할 폴더를 만든다.
mkdir -p /mnt/XYZ
이제 마운트만 하면 된다.
s3fs "bucket" -o use_cache=/tmp -o allow_other /mnt/XYZ
4) S3 Bucket umount
S3 를 마운트 할 때 mount 명령어를 사용하지 않은것과 같이 언마운트로 umount 를 사용하지 않고 fusermount 를 사용한다.
sudo fusermount -u /mnt/XYZ