본문 바로가기

엔지니어/Cloud

goofys를 이용해 AWS S3 mount 하기

728x90
반응형


S3는 AWS 서비스 중 가장 유용한 서비스 중 하나이다.

하지만 S3 자체가 일반적인 파일 시스템과는 좀 다른 object 기반이기도 하고 REST http 기반이다 보니 사용성에서 약간의 불편함을 느낄 수 있다. 


Storage Gateway 라는 서비스도 있다,  S3를 iscsi 형태로 제공하도록 appliance를 직접 제공하기도 한다. 

하지만 Storage Gateway를 설정하여 사용하려면, Local IDC 환경 또는 AWS에 Gateway appliance 를 VM형태로 올려야 하기 때문에 추가 비용이 들고 간단히 사용하기엔 부담스럽다.


가장 간단한 방법은 S3를 파일시스템 처럼 mount 하여 이용하는 방법인데, 널리쓰이는 방법이 Fuse 기반의 s3fs이다.


s3fs : 너무 느리다

goofys : s3fs보다 낫다



github : https://github.com/kahing/goofys





1. 서버에서 goofys를 통해 mount하려면, S3를 이용하기 위한 access/secret key가 필요

   

s3 이용을 위한 user를 생성

security credentials -> user를 생성 -> 

access key와 secret key (root 계정의 access key를 이용할수도 있지만, 털리면 위험하니 따로 생성) -> 

user의 permissions 탭에서 policy를 적용(AmazonS3FullAccess)



2. goofys로 연결할 S3 bucket을 생성


버킷 생성(test)



3. golang 설치


goofys 는 go언어로 개발되었기에, go를 설치해야한다. (CentOS)

CentOS 6.x 기준으로 yum 으로 설치시에 1.7 버전이 설치가 되는데, 1.7 버전 기준으로 goofys 설치에 오류가 존재한다.

go는 1.8 이상으로 설치를 권장!



# yum update
# wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
# tar -xzf go1.8.3.linux-amd64.tar.gz
# mv go /usr/local

## ~/.bash_profile ## export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export GOPATH=/usr/local/golang export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

# source ~/.bash_profile
# go version

go version go1.8.3 linux/amd64
# go env

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
.....................
# mkdir -p ~/.aws
# vi ~/.aws/credentials/

[default]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

# mkdir -p /test # goofys test /test

goofys [버킷이름] [마운트디렉토리]


# df -h

Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 1.6G 5.9G 21% / tmpfs 3.9G 0 3.9G 0% /dev/shm test 256P 0 256P 0% /test



4. fstab에 등록


/usr/local/go/bin/goofys#[버킷이름]                    [마운트디렉토리]                   fuse _netdev,allow_other        0 0

반응형

'엔지니어 > Cloud' 카테고리의 다른 글

vMotion 테스트  (0) 2022.10.26
vCenter , ESXi , vShpere 주요 기능 정리 및 테스트  (0) 2022.10.26
EC2 CentOS 접속 유저 생성  (0) 2017.09.11
ELB SSL 인증서 적용  (0) 2017.09.07
EC2 CentOS 디스크 확장  (0) 2017.09.05