AWS S3를 EC2 인스턴스에 Mount 예제


작업 개요

- S3를 서버에서 일반 스트로리지 또는 NAS를 mount 한 형태처럼 사용하기 위해 s3fs 오픈 소스를 사용해 서버에 mount를 하는 작업이다.

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0


작업 내용 

- s3fs를 설치하고 s3 버킷을 서버에 mount 한다.



작업 절차 


1. yum update

  sudo yum  -y update all


2. 필요한 페키지 설치

  sudo yum -y install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel


3. /usr/src 이동

  cd /usr/src


4. s3fs-fuse 프로젝트 다운로드

  sudo git clone https://github.com/s3fs-fuse/s3fs-fuse.git


5. 프로젝트 소유자 변경

  sudo chown -R ec2-user:ec2-user s3fs-fuse


6. s3fs-fuse 로이동

  cd s3fs-fuse


7. autogen.sh 실행

  ./autogen.sh


8. configure 실행

  ./configure --prefix=/usr --with-openssl


9. make 실행

  make


10. make install 실행

  sudo make install


11. s3fs 위치 확인

  which s3fs


12. s3 접근 가능한 IAM 설정 파일 만들기

  sudo vi /etc/passwd-s3fs

  - 파일 내용

  Access Key ID:Secret Access Key

  ex ) AXXXXXXXXXXXXXXXXXX:ZhiZXXXXXXXXXXXXXXXXXXXXX


13. 파일 작업 권한 및 소유권 설정

  sudo chmod 600 /etc/passwd-s3fs

  sudo chown  ec2-user:root /etc/passwd-s3fs


14. mount 할 디렉토리 생성

  sudo mkdir /mys3bucket1


15. 버킷 mount

    sudo s3fs [버킷 명] [마운트 경로]

      -o use_cache=/tmp

      -o allow_other

      -o uid=[사용자 ID]

      -o gid=[사용자 그룹 ID]

      -o multireq_max=20

      -o use_path_request_style

      -o url=https://s3-[리전 id].amazonaws.com


    ex) sudo s3fs s3bucketname /mys3bucket1 -o use_cache=/tmp -o allow_other -o uid=500 -o gid=500 -o multireq_max=5 -o use_path_request_style -o url=https://s3-ap-northeast-2.amazonaws.com


    ** 참고

      -EC2 user ID 확인 :  id -u [user name]

      -EC2 user 그룹 ID 확인 :  id -g [user name]

- umount 방법 

- pkill -9 -t s3fs

그럼 오늘도 행복한 하루 되세요.


+ Recent posts