Kubernetes & Docker

[Amazon] EC2 인스턴스에 S3 스토리지 마운트하기

정현수 2020. 8. 27. 15:32
반응형

구성환경

EC2 인스턴스 3대입니다.

OS는 Redhat CentOS 7.8 version을 사용했습니다.

Amazon S3에 파일 시스템을 위한 플러그인들

S3FS-FUSE

이것은 무료 오픈 소스 FUSE 플러그인이며 주요 Linux 배포판 및 MacOS를 지원하는 사용하기 쉬운 유틸리티입니다. S3FS는 또한 성능을 향상시키기 위해 파일을 로컬로 캐싱합니다. 이 플러그인은 단순히 Amazon S3 버킷을 시스템의 드라이브로 표시합니다.

ObjectiveFS

ObjectiveFS는 Amazon S3 및 Google Cloud Storage 백엔드를 지원하는 상용 FUSE 플러그인입니다. 전체 POSIX 호환 파일 시스템 인터페이스를 제공한다고 주장하므로 추가 기능이 전체 파일을 다시 쓸 필요가 없습니다. 또한 로컬 드라이브에 필적하는 성능을 약속합니다.

RioFS

RioFS는 C 언어를 사용하여 작성된 경량 유틸리티입니다. S3FS와 비슷하지만 몇 가지 제한 사항이 있습니다. RioFS는 파일에 추가를 지원하지 않고 완전히 POSIX 호환 파일 시스템 인터페이스를 지원하지 않으며 폴더 이름을 바꿀 수 없습니다.

 

저희는 S3FS를 사용하겠습니다.

 

S3FS-FUSE 설치

업데이트 확인하기

$ yum -y update all

 

필요한 패키지들 설치하기

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

 

깃 clone 하기

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

 

 

파일들 설치와 컴파일하기

$ cd  s3fs-fuse
$ ./autogen.sh 
$ ./configure
$ make 
$ sudo make install

 

s3fs가 어디에 설치되어있는지 확인

$ which s3fs

 

S3을 위한 IAM role 생성

 

 

 

저기서 생성할 수 있습니다.

 

적용

 

Accesskey 와 secret 키 및 파일 생성

 

내 보안 자격 증명 접속

 

새 액세스 키 만들기 클릭하면 파일 다운로드 가능

거기에 있는 파일의 키들을

/etc/passwd-s3fs 파일에 입력!

 

파일 내용은

Accesskey:secretekey

 

그 후 권한 부여

$ chmod 600 /etc/passwd-s3fs

 

 

 

마운트 할 폴더 생성

 

$ mkdir S3Storage

 

S3 버킷을 마운트해주기

 

$ s3fs <bucket name> <folder 위치> -o use_cache=/tmp -o allow_other
$ s3fs cicd-ku-storage . -o use_cache=/tmp -o allow_other

 

확인

 

현재 파일 시스템의 마운트 보기

$ df . -h

 

 

전체 파일시스템 마운트 보기

$ df -h

 

 

참고

https://cloud.netapp.com/blog/amazon-s3-as-a-file-system[마운트 참고 사이트]

https://github.com/s3fs-fuse/s3fs-fuse [공식사이트]

https://medium.com/tensult/aws-how-to-mount-s3-bucket-using-iam-role-on-ec2-linux-instance-ad2afd4513ef[S3FS 설치 참고 사이트]

https://millionairedeveloper.tistory.com/3[마운트 참고 사이트]

 

 

반응형