Mountpoint 구성 및 사용

Mountpoint 구성 및 사용

Mountpoint for Amazon S3를 사용하려면 호스트에 마운트하려는 S3 버킷에 접근할 수 있는 유효한 AWS 자격 증명이 필요해요. 다양한 인증 방법은 GitHub의 "Mountpoint AWS Credentials" 문서를 참고하세요.

예를 들어 이 목적을 위해 새 IAM 사용자와 역할을 만들 수 있어요. 역할이 마운트하려는 버킷에 접근할 수 있는지 확인하고, 인스턴스 프로필로 EC2 인스턴스에 IAM 역할을 전달할 수 있어요.

출처: 문서

본문

Mountpoint for Amazon S3 사용하기

S3 버킷 마운트하기 — mount-s3 명령으로 수동으로 버킷을 마운트할 수 있어요. amzn-s3-demo-bucket을 내 S3 버킷 이름으로, ~/mnt를 버킷을 마운트할 호스트의 디렉터리로 바꾸세요.

mkdir ~/mnt
mount-s3 amzn-s3-demo-bucket ~/mnt

Mountpoint 클라이언트는 기본적으로 백그라운드에서 실행되므로, ~/mnt 디렉터리로 S3 버킷의 객체에 접근할 수 있게 돼요.

또한 Mountpoint v1.18부터는 인스턴스가 시작되거나 재부팅될 때 버킷을 자동으로 마운트하도록 구성할 수 있어요. 기존·실행 중인 EC2 인스턴스에서는 /etc/fstab 파일을 찾아 한 줄을 추가하세요. 예를 들어 amzn-s3-demo-bucket을 example-prefix/ 접두사로 /mnt/mountpoint 경로에 마운트하려면:

s3://amzn-s3-demo-bucket/example-prefix/ /mnt/mountpoint mount-s3 _netdev,nosuid,nodev,nofail,rw 0 0

옵션 설명:

옵션 설명
_netdev 마운트에 네트워킹이 필요함을 지정.
nosuid set user ID 파일을 포함할 수 없음을 지정.
nodev 특수 장치를 포함할 수 없음을 지정.
nofail 파일 시스템 마운트 실패 시에도 시스템 부팅은 계속되도록 지정.
rw 마운트 지점을 읽기·쓰기 권한으로 생성. ro를 쓰면 읽기 전용.

새 EC2 인스턴스의 경우 EC2 템플릿의 사용자 데이터를 수정해 fstab 파일을 다음과 같이 설정할 수 있어요:

#!/bin/bash -e
MP_RPM=$(mktemp --suffix=.rpm)
curl https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm > $MP_RPM
yum install -y $MP_RPM
rm $MP_RPM

MNT_PATH=/mnt/mountpoint
echo "s3://amzn-s3-demo-bucket/ ${MNT_PATH} mount-s3 _netdev,nosuid,nodev,rw,allow-other,nofail" >> /etc/fstab
mkdir $MNT_PATH

systemctl daemon-reload
mount -a

객체 접근하기 — 버킷을 로컬에 마운트한 뒤에는 cat, ls 같은 일반적인 Linux 명령으로 S3 객체를 다룰 수 있어요. Mountpoint for Amazon S3는 버킷의 키를 전방향 슬래시(/)를 기준으로 나눠 파일 시스템 경로로 해석해요. 예를 들어 Data/2023-01-01.csv 키가 있으면 Mountpoint 파일 시스템에 Data라는 디렉터리가 생기고 그 안에 2023-01-01.csv 파일이 있어요.

Mountpoint for Amazon S3는 의도적으로 파일 시스템에 대한 전체 POSIX 표준 명세를 구현하지 않아요. 파일 시스템 인터페이스를 통해 S3에 저장된 데이터에 대한 고처리량 읽기·쓰기 접근이 필요하지만, 그 외에는 파일 시스템 기능에 의존하지 않는 워크로드에 최적화되어 있어요. 더 풍부한 파일 시스템 의미 체계가 필요하다면 Amazon EFS나 Amazon FSx 같은 다른 AWS 파일 서비스를 고려하세요.

마운트 해제하기 — umount 명령으로 S3 버킷을 마운트 해제할 수 있어요. 이 명령은 버킷을 마운트 해제하고 Mountpoint를 종료해요.

umount ~/mnt

참고: 이 명령의 옵션 목록은 umount --help로 확인할 수 있어요.

Mountpoint에서 캐싱 구성하기

Mountpoint for Amazon S3는 다양한 유형의 데이터 캐싱을 지원해요. 반복된 읽기 요청을 가속화하기 위해 다음을 선택할 수 있어요.

  • 로컬 캐시 (Local cache) – EC2 인스턴스 스토리지나 Amazon Elastic Block Store 볼륨에 로컬 캐시를 사용할 수 있어요. 같은 컴퓨팅 인스턴스에서 같은 데이터를 반복해서 읽고, 반복 읽기 데이터셋에 로컬 인스턴스 스토리지에 여유 공간이 있다면 로컬 캐시를 선택하는 것이 좋아요.
  • 공유 캐시 (Shared cache) – S3 Express One Zone에 공유 캐시를 사용할 수 있어요. 여러 컴퓨팅 인스턴스에서 작은 객체를 반복해서 읽거나, 반복 읽기 데이터셋 크기를 모르고 캐시 크기의 탄력성을 활용하려면 공유 캐시를 선택하세요. 선택하면 Mountpoint가 최대 1MB 크기의 객체를 S3 Express One Zone을 사용하는 디렉터리 버킷에 유지해요.
  • 로컬 및 공유 캐시 조합 – 로컬 캐시에 여유 공간이 있으면서 여러 인스턴스에 걸친 공유 캐시도 원한다면 둘 다 선택할 수 있어요.

캐싱은 여러 번 읽는 동안 변하지 않는 같은 데이터를 반복적으로 읽는 사용 사례에 이상적이에요. 예를 들어 모델 정확도를 높이기 위해 학습 데이터셋을 여러 번 읽어야 하는 머신 러닝 학습 작업에 캐싱을 사용할 수 있어요.

로컬 캐시 — --cache CACHE_PATH 플래그로 로컬 캐시를 선택할 수 있어요.

mkdir ~/mnt
mount-s3 --cache CACHE_PATH amzn-s3-demo-bucket ~/mnt

로컬 캐싱을 선택하면 Mountpoint가 구성된 캐시 위치에 빈 하위 디렉터리가 없다면 생성해요. 버킷을 처음 마운트하거나 마운트 해제할 때 Mountpoint는 로컬 캐시 내용을 삭제해요.

중요: 로컬 캐싱을 활성화하면 Mountpoint가 마운트한 버킷의 암호화되지 않은 객체 내용을 마운트 시 제공한 로컬 캐시 위치에 보존할 수 있어요. 데이터를 보호하려면 파일 시스템 접근 제어 메커니즘으로 데이터 캐시 위치에 대한 접근을 제한하세요.

공유 캐시 — 여러 컴퓨팅 인스턴스에서 작은 객체(최대 1MB)를 반복적으로 읽거나, 반복 읽기 데이터셋의 크기가 로컬 캐시 크기를 초과하는 경우 S3 Express One Zone의 공유 캐시를 사용하세요. 여러 인스턴스에서 같은 데이터를 반복해서 읽으면 마운트한 버킷에 대한 중복 요청을 피해 지연 시간이 개선돼요.

공유 캐시를 선택하면 디렉터리 버킷에 캐시된 데이터와 그 데이터에 대한 요청에 대해 비용을 내요. Mountpoint는 디렉터리 버킷에서 캐시된 객체를 절대 삭제하지 않으므로, 스토리지 비용을 관리하려면 디렉터리 버킷에 Lifecycle 정책을 설정해 지정한 기간 후에 캐시된 데이터가 만료되도록 하세요.

S3 Express One Zone 캐싱을 선택하려면 --cache-xz 플래그를 사용하고 캐시 위치로 디렉터리 버킷을 지정해요.

mount-s3 amzn-s3-demo-bucket ~/mnt --cache-xz amzn-s3-demo-bucket--usw2-az1--x-s3

로컬 및 공유 캐시 조합 — 인스턴스에 여유 공간이 있으면서 여러 인스턴스에 걸친 공유 캐시도 사용하려면 로컬 캐시와 공유 캐시를 모두 선택할 수 있어요. 이 구성은 필요 데이터가 로컬 스토리지에 캐시되어 있을 때 같은 인스턴스에서 디렉터리 버킷의 공유 캐시로 가는 중복 읽기 요청을 피할 수 있어요.

mount-s3 amzn-s3-demo-bucket ~/mnt --cache /path/to/mountpoint/cache --cache-xz amzn-s3-demo-bucket--usw2-az1--x-s3

중요: 공유 캐싱을 활성화하면 Mountpoint가 마운트한 버킷의 객체 내용을 공유 캐시 위치로 제공한 S3 디렉터리 버킷에 복사해, 그 디렉터리 버킷에 접근 권한이 있는 모든 호출자에게 접근 가능하게 해요. 캐시된 데이터를 보호하려면 Amazon S3 보안 모범 사례에 따라 버킷이 올바른 정책을 사용하고 공개 접근이 안 되도록 하세요. Mountpoint 공유 캐싱 전용 디렉터리 버킷을 사용하고 Mountpoint 클라이언트에만 접근을 허용하세요.

더 알아보기 (Learn more)