서버에서 좀더 쉽게 S3에 파일을 업로드 하기 위해서 S3FS를 사용하자
- 설치 방법
-
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-releasesudo yum install s3fs-fuse
-
$ brew cask install osxfuse$ brew install s3fs
의존성 패키지 설치sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel
-
s3fs 설치git clone https://github.com/s3fs-fuse/s3fs-fuse.gitcd s3fs-fuse./autogen.sh./configure --prefix=/usr/local/s3fsmakesudo make installln -s /usr/local/s3fs/bin/* /usr/local/bin
-
s3 엑세스키 설정- 기본적으로 mount의 경우 {사용자홈}/.passwd-s3fs 에서 파일을 로딩하고- fstab에서는 /etc/passwd-s3fs 에서 엑세스키에 대한 정보를 로딩한다.echo {엑세스키}:{시크릿키} > /etc/passwd-s3fschmod 600 /etc/passwd-s3fs
-
s3 마운트mkdir /data/s3fss3fs {버킷이름} /data/s3fs -o passwd_file=/etc/passwd-s3fs
-
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.com0 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 ")
|
/etc/fstab에 설정한 다음 재부팅 하지 말고.
mount -a 로 설정값을 적용해보자. 만약에 fstab에 오타등 문제가 있을경우 부팅이 되지 않으니 조심해야 한다.
마운트 해제
sudo umount /mnt/s3fs
'IT > 서버' 카테고리의 다른 글
[SVN Server] E170001 : Authorization failed (0) | 2018.03.05 |
---|---|
[MySQL] TimeStamp, DateTime 필드 (0) | 2017.08.24 |