Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
goofys를 이용한 Amazon S3 마운트
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2023-12-25
2023-12-25
1654
 Amazon S3(Simple Storage Service)는 AWS에서 제공하는 **오브젝트 스토리지**다. 사실상 무한히 확장가능한 오브젝트 스토리지로 API를 이용해서 손쉽게 파일을 읽고 쓸 수 있기 때문에 AWS 사용자라면 거의 필수로 사용하게 된다. 무한히 확장 가능하다는 장점 때문에 빅 데이터 저장소로도 널리 사용하고 있다. API를 이용해서 파일을 주고 받는 것은 편하기는 하지만 운영체제에서 파일 시스템처럼 사용 할 수는 없기 때문에 사용 환경에 따라서 매우 불편 할 수 있다. 여기에서는 **Goofys**를 이용해서 리눅스에서 S3 버킷을 마운트해보려 한다. # Goofys 소개 Goofys는 오픈소스 기반의 파일 시스템 구현체로 Amazon S3를 로컬 파일 시스템으로 마운트할 수 있게 한다. 이를 통해서 사용자는 로컬 파일 시스템과 마찬가지리 운영체제에서 제공하는 명령을 이용해서 S3 에 쉽게 접근 할 수 있다. # Goofys 다운로드 리눅스의 경우 미리 빌드된 실행파일을 [다운로드](https://github.com/kahing/goofys/releases/latest/download/goofys) 한다. ```shell wget https://github.com/kahing/goofys/releases/latest/download/goofys ``` 다운로드한 파일을 실행 디렉토리에 복사하고 테스트해본다. ```bash chmod +x goofys sudo mv goofys /usr/local/bin goofys --version goofys version 0.24.0-45b8d78375af1b24604439d2e60c567654bcdf88 ``` # S3 Bucket 생성 테스트용 S3 Bucket를 만든다.  Bucket의 이름은 **yundream-obsidian**으로 했다.  새로 만든 버킷은 외부에서 접근할 수 없도록 설정한다. 버킷에 접근하려면 S3에 대한 접근 권한을 가진 상태에서 웹 관리자 콘솔 혹은 access key를 가지고 있어야 한다. # S3 접근을 위한 IAM User 생성 ### User Group 생성 S3에 대한 Read/Write 권한을 가진 IAM User를 만들어야 한다. AWS의 유저 관리에 대한 모범사례는 **Group**을 이용한 관리다. 특정한 역할을 하는 그룹을 만들고 유저를 여기에 추가하는 방식이다.  **s3-access-group** 라는 이름의 그룹을 만들자.  s3-access-group에 S3 접근 권한을 부여한다.  이제 IAM User를 만든다.  ### IAM User 생성  User name을 설정하고 **Next**를 선택한다. 이 IAM User는 Management console를 사용하지 않으므로 "Provide user access to the AWS Management Console"는 체크하지 않는다. 권한(permission)을 설정한다. 3가지 옵션이 있는다. 앞서 만든 그룹에 추가하면 되므로 Add User to group 을 선택한다.  유저를 s3-access-group에 추가하고 **Create user**를 클릭하면 유저가 만들어진다.  # IAM Credentials 생성 이렇게 해서 S3 권한을 가지는 유저를 만들었으니 IAM Credentials를 만들자. IAM Credentials는 Access key와 Secret Key로 이루어져 있는데, 이 두 개의 값을 이용해서 AWS 리소스에 접근할 수 있다. 편집하려는 유저를 클릭한다.  Security credentials를 클릭한다.  **Create access key** 를 클릭한다.  Access key 타입으로 **command Line interface(CLI)** 를 선택한다.  **Next** 버튼을 누르면 tag 설정화면이 나온다. 대략 설정하고 **Create access key**를 클릭하면 아래와 같이 Access key 가 만들어진다.  Download .csv file 을 클릭해서 credentials 파일을 다운로드한다. # Goofys 사용 $HOME/.aws/credentials 파일에 다운로드 받은 credentials.csv 파일의 내용을 입력한다. ``` $ cat ~/.aws/credentials [default] aws_access_key_id = AKID1234567890 aws_secret_access_key = MY-SECRET-KEY ``` goofys를 이용해서 obsidian 디렉토리에 마운트 한다. ``` $ mkdir obsidian $ goofys -f yundream-obsidian obsidian 2023/12/25 12:11:36.822256 s3.INFO Switching from region 'us-east-1' to 'ap-northeast-2' 2023/12/25 12:11:36.909114 main.INFO File system has been successfully mounted. ``` 디버깅을 위해서 -f (포그라운드) 옵션을 사용했다. **df**로 마운트가 잘 됐는지 확인해보자. ``` $ df -h Filesystem Size Used Avail Use% Mounted on yundream-obsidian 1.0P 0 1.0P 0% /home/yundream/obsidian /dev/nvme0n1p5 204G 28G 166G 15% / tmpfs 6.8G 213M 6.6G 4% /dev/shm tmpfs 5.0M 16K 5.0M 1% /run/lock /dev/nvme0n1p1 96M 33M 64M 34% /boot/efi tmpfs 1.4G 84K 1.4G 1% /run/user/1000 ``` # 자동 마운트 설정 부팅 할 때마다 마운트하기는 귀찮아서 /etc/fstab에 아래 설정을 추가했다. 이제 부팅되면 자동으로 /mnt/obsidian을 S3로 마운트하게 된다. ``` /usr/local/bin/goofys#yundream-obsidian /mnt/obsidian fuse _netdev,--file-mode=0666,--dir-mode=0777,--region=ap-northeast-2,--profile=joinc 0 0 ``` mount -a 명령을 이용해서 fstab 설정이 잘 작동할지 테스트해볼 수 있다. ``` sudo systemctl daemon-reload mount -a ``` ### S3fs vs Goofys S3fs는 S3 마운트를 위해서 사용하는 또 다른 애플리케이션이다. 읽기와 쓰기 모두에서 월등한 성능을 보여주고 있으니 버그가 없는 한 Goofys를 사용하게 될 것 같다.  # 참고 * [kahing/goofys](https://github.com/kahing/goofys)
Recent Posts
MLOps with Joinc - Kubeflow 설치
Vertex Gemini 기반 AI 에이전트 개발 05. 첫 번째 LLM 애플리케이션 개발
LLama-3.2-Vision 테스트
Vertex Gemini 기반 AI 에이전트 개발 04. 프롬프트 엔지니어링
Vertex Gemini 기반 AI 에이전트 개발 03. Vertex AI Gemini 둘러보기
Vertex Gemini 기반 AI 에이전트 개발 02. 생성 AI에 대해서
Vertex Gemini 기반 AI 에이전트 개발 01. 소개
Vertex Gemini 기반 AI 에이전트 개발-소개
생성 AI 모델 Flux.1 설치 및 사용
GPT를 이용한 Reranker 테스트
Archive Posts
Tags
aws
cloud
filesystem
s3
storage
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags