s3fs 연결

IT/서버 2018. 11. 23. 00:12
서버에서 좀더 쉽게 S3에 파일을 업로드 하기 위해서 S3FS를 사용하자


  1. 설치 방법
  • On Debian 9 and Ubuntu 16.04 or newer:
    sudo apt-get install s3fs
  • On SUSE 12 or newer and openSUSE 42.1 or newer:
    sudo zypper in s3fs
  • On Fedora 27 and newer:
    sudo yum install s3fs-fuse
  • On RHEL/CentOS 7 and newer through EPEL repositories:
    sudo yum install epel-release
    sudo yum install s3fs-fuse
  • On macOS, install via Homebrew:
    $ brew cask install osxfuse
    $ brew install s3fs


  1. 의존성 패키지 설치
  2. sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel

  1. s3fs 설치
    git clone https://github.com/s3fs-fuse/s3fs-fuse.git
    cd s3fs-fuse
    ./autogen.sh
    ./configure --prefix=/usr/local/s3fs
    make
    sudo make install
    ln -s /usr/local/s3fs/bin/* /usr/local/bin


  1. s3 엑세스키 설정
     - 기본적으로 mount의 경우 {사용자홈}/.passwd-s3fs 에서 파일을 로딩하고
    - fstab에서는 /etc/passwd-s3fs 에서 엑세스키에 대한 정보를 로딩한다.

    echo {엑세스키}:{시크릿키} > /etc/passwd-s3fs
    chmod 600 /etc/passwd-s3fs

  1. s3 마운트
    mkdir /data/s3fs
    s3fs {버킷이름} /data/s3fs -o passwd_file=/etc/passwd-s3fs
  2. fstab에 등록
    {버킷이름} /data/s3fs fuse.s3fs _netdev,allow_other 0 0

    <공개파일로 저장>
    {버킷이름} /data/s3fs fuse.s3fs  defaults,noatime,allow_other,uid=500,gid=48,use_cache=/tmp,default_acl=public-read,url=http://s3.amazonaws.com  0 0


해당권한이 퍼미션에 마스크로 들어간다.
777 -> 000  권한없음.

ISSUE
  • use_cache옵션을 사용했더니 어마어마하게 많은양의 캐쉬 데이터가 누적되어서 용량부족 현상이 발생했었다. 

  • mount에서 에러가 발생하지 않았는데 실제로 마운트가 되지 않은 현상이 발생하였다.
    s3fs에서 문제가 발생하였을 경우 로그를 확인해보면 그 원인을 좀더 쉽게 확인할수가 있다. 
    "-o dbglevel=info -f -o curldbg"

  • 버킷 이름이 Dot(.)가 있어서 마운트가 제대로 되지 않았다. -o use_path_request_style으로 해결하였다.
-o use_path_request_style 를 사용하면 유효하지 않은 옵션을 사용하지 않고 버킷 이름에 점들이있는 버킷에 액세스 할 수 있어야합니다.이 옵션 -o no_check_certificate은 유효성 검사 오류를 무시하므로 권장되지 않습니다.
  • 인증서 관련해서 에러가 발생하였다. 기본값이 https로 인증서가 없는 서버에서 접근하려면 url을 설정해 줘야 한다.

url (기본값 = " https://s3.amazonaws.com ")

  • Amazon S3에 액세스하는 데 사용할 URL을 설정합니다. HTTP를 사용하려면 "url = http://s3.amazonaws.com "을 설정할 수 있습니다 . 
    https를 사용하지 않는 경우 url 옵션을 사용하여 URL을 지정하십시오.


/etc/fstab에 설정한 다음 재부팅 하지 말고.

mount -a 로 설정값을 적용해보자. 만약에 fstab에 오타등 문제가 있을경우 부팅이 되지 않으니 조심해야 한다.



마운트 해제

$sudo fusermount -u /mnt/s3
sudo umount /mnt/s3fs







'IT > 서버' 카테고리의 다른 글

[SVN Server] E170001 : Authorization failed  (0) 2018.03.05
[MySQL] TimeStamp, DateTime 필드  (0) 2017.08.24
블로그 이미지

날기억해

Android / IOS / PHP / System Engineer / Service Architecture/ MongoDB / AWS / Mysql / Linux / Python / C++ / Vue.js / node.js / Java / Iot / BLE / Firebase / Bigdata Architecture / AD Server / SDK / Epub /

,