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
Mountpoint for S3를 이용한 S3 마운트
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2023-12-25
2023-12-25
2549
### Amazon S3 Amazon S3는 AWS에서 서비스하는 오브젝트 스토리지(Object Storage)다. API를 이용해서 파일에 접근할 수 있기 때문에 웹 애플리케이션과 쉽게 통합할 수 있다. 또한 (거의)무한대의 저장공간을 제공하기 때문에 많은 사용자들이 S3를 이용해서 파일을 관리하고 있다. ### S3와 파일 시스템 API를 이용한 접근은 웹 애플리케이션 개발에 도움을 주기는 하지만 많은 사용자들이 S3를 파일 시스템에 마운트해서 사용하기를 원했다. 파일시스템에 통합할 수 있다면 사용자들은 기존 유닉스(리눅스)에서 제공하는 방법(mkdir, cp, mv, cat, touch)등을 이용해서 파일에 접근 할 수 있으므로 사용 영역을 보다 확장시킬 수 있다. ### Mountpoint AWS 사용자들은 오픈소스인 **s3fs**, **goofys** 등을 이용해서 s3를 마운트해서 사용해왔지만 **엔터프라이즈 환경에서 공식적으로 지원 받는 파일 시스템**을 필요로 했다. 그리하여 2023년 8월 14일 AWS는 **Mountpoint for Amazon S3**를 정식으로 출시했다. 또한 오픈소스로 코드는 [github](https://github.com/awslabs/mountpoint-s3/) 에서 찾아볼 수 있다.  Mountpoint를 이용해서 S3 버킷을 마운트하면 쉘명령(ls, cat, dd, find), 라이브러리 함수(open, close, read, write, create, opendir ...)등 이미 사용 중인 애플리케이션과 언어에서 지원하는 명령어와 함수를 이용해서 버킷에 엑세스 할 수 있다. ### Mountpoint for Amazon S3의 설치 deb 패키지를 복사한다. ```shell wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.deb ``` 패키지를 인스톨하고 ``` sudo dpkg -i mount-s3.deb ``` 테스트한다. ``` $ mount-s3 --version mount-s3 1.3.1 ``` ### S3 Bucket 마운트 S3 버킷을 마운트한다. 마운트할 S3 버킷과 권한 설정은 [goofys를 이용한 Amazon S3 마운트](https://www.joinc.co.kr/w/s3_goofys_mount) 문서를 참고한다. 마운트할 S3 버킷의 이름은 **yundream-obsidian**으로 7개의 png 이미지가 있다. 이 버킷을 마운트 한후 **ffmpeg**를 이용해서 animation gif를 만들려한다.  "yundream-obsidian"을 obsidian 디렉토리에 마운트 한다. ```shell $ mount-s3 yundream-obsidian obsidian --profile joinc bucket yundream-obsidian is mounted at obsidian ``` 마운트 디렉토리에 있는 파일들을 확인한다. ```shell $ cd obsidian $ ls -al 합계 1323 drwxr-xr-x 2 yundream yundream 0 12월 25 20:06 . drwxr-xr-x 11 yundream yundream 4096 12월 25 19:23 .. -rw-r--r-- 1 yundream yundream 179184 12월 25 20:04 001.png -rw-r--r-- 1 yundream yundream 128636 12월 25 20:04 002.png -rw-r--r-- 1 yundream yundream 141900 12월 25 20:04 003.png -rw-r--r-- 1 yundream yundream 210359 12월 25 20:04 004.png -rw-r--r-- 1 yundream yundream 258742 12월 25 20:04 005.png -rw-r--r-- 1 yundream yundream 315532 12월 25 20:04 006.png -rw-r--r-- 1 yundream yundream 114070 12월 25 20:04 007.png ``` ffmpeg를 이용해서 gif 파일을 만든다. ``` $ ffmpeg -framerate 1 -pattern_type glob -i "*.png" screencast.gif ffmpeg version 6.0-6ubuntu1 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 13 (Ubuntu 13.2.0-2ubuntu1) frame= 7 fps=0.0 q=-0.0 Lsize= 2174kB time=00:00:06.00 bitrate=2968.8kbits/s speed=9.31x video:2174kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000898% $ ls -al 합계 3497 drwxr-xr-x 2 yundream yundream 0 12월 25 20:06 . drwxr-xr-x 11 yundream yundream 4096 12월 25 19:23 .. -rw-r--r-- 1 yundream yundream 179184 12월 25 20:04 001.png -rw-r--r-- 1 yundream yundream 128636 12월 25 20:04 002.png -rw-r--r-- 1 yundream yundream 141900 12월 25 20:04 003.png -rw-r--r-- 1 yundream yundream 210359 12월 25 20:04 004.png -rw-r--r-- 1 yundream yundream 258742 12월 25 20:04 005.png -rw-r--r-- 1 yundream yundream 315532 12월 25 20:04 006.png -rw-r--r-- 1 yundream yundream 114070 12월 25 20:04 007.png -rw-r--r-- 1 yundream yundream 2226601 12월 25 20:14 screencast.gif ``` gif 파일이 만들어졌다. ### 사용 사례  Amazon S3용 Mountpoint는 로컬 파일 시스템 호출을 S3에 대한 REST API로 변환하여 높은 읽기 처리량이 필요한 애플리케이션에 최적화되어 있다. 애플리케이션의 순차적인 읽기 혹은 무작위의 읽기 작업을 지원하고 단일 클라이언트에서 순차적으로 객체를 새로 쓴다. 기존에 S3에서 대량의 데이터를 처리 할 때는 "중간파일" 을 만들어야 했지만 Mountpoint는 그럴 필요가 없다. 이는 파일 인터페이스를 사용하는 애플리케이션에 매우 적합하다는 것을 의미한다. * 데이터레이크 * 머신러닝 * 이미지 렌더링 * 자율주행 시뮬레이션 * ETL 프로세스 ### Goofys vs S3FS vs Mountpoint for S3 Goodfys, S3FS, mountpoint의 성능 비교 자료다.      테스트 결과를 보면 S3FS가 가장 느리고, Goofys와 Mountpoint가 좋은 성능을 보여주고 있지만 단지 성능만으로 판단할 수는 없다. S3FS가 느린 이유는 높은 수준의 POSIX 호환성을 유지하기 때문이다. 즉 파읽 읽기/쓰기, 디렉토리, 심볼릭링크, 모드, uid/gid 등 대규모로 POSIX 하위 기능들을 지원한다. 또한 로컬 디스크에 데이터를 캐싱할 수 있는데, 캐싱을 이용해서 임의쓰기 작업을 지원하며 기존 파일에 데이터를 추가할 수 있다. mountpoint의 경우에는 파일을 새로 생성해야만 한다. S3FS는 성능이 그다지 중요하지 않는 POSIX 기반 애플리케이션과 잘 통합되야 하는 시나리오에 좋은 선택이다. Goofys는 단순함을 장점으로 한다. 가볍고 빠르게 사용하고자 할 때 탁월한 선택이다. 하지만 POSIX 호환성이 약하기 때문에 파일 모드/소유자/그룹 권한등에 의존하는 프로젝트에는 적합하지 않을 수 있다. 엔터프라이즈 수준에서 안정적인 액세스와 고성능이 필요하다면 Mountpoint for S3가 유일한 선택이다. 데이터레이크, 기계학습 과 같은 읽기 중심의 애플리케이션, ㅌ그히 확장 가능한 애플리케이션을 처리할 때 적합하다.
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