Fly Launch 앱에 볼륨 스토리지 추가하기
Fly Volumes는 Fly Machines용 로컬 영구 스토리지예요. 이 페이지에서는 Fly Launch로 새 앱을 만들 때 볼륨을 연결하는 방법과, 기존 앱에 볼륨을 추가하고 Machine에 볼륨이 잘 붙었는지 확인하는 방법을 단계별로 설명해요.
출처: 문서
본문
Fly Volumes는 Fly Machines용 로컬 영구 스토리지예요.
더 알아보기:
Fly Volume과 함께 새 앱 시작하기
Fly Launch로 Machine 하나와 연결된 볼륨이 있는 새 앱을 만들고, 그런 다음 Machine을 복제해 확장할 수 있어요.
-
프로젝트 소스 디렉터리에서
--no-deploy옵션으로 새 앱을 시작해 자동 배포되지 않게 하세요. 앱 배포에 필요한 옵션(--image나--dockerfile같은 것)을 포함하세요.fly launch --no-deployfly launch는 프로젝트 소스 디렉터리에fly.toml앱 설정 파일을 만들어요. -
앱이 생성된 후,
fly.toml에[mounts]섹션을 추가하세요.source는 볼륨 이름이고destination은 Machine 파일 시스템에서 볼륨이 마운트될 디렉터리예요. 예를 들어:[mounts] source = "myapp_data" destination = "/data"참고:
/는 루트 파일 시스템에 사용되므로destination="/"로는 볼륨을 마운트할 수 없어요. -
앱을 배포하세요:
fly deploy -
(앱이 복제를 처리하는 경우에만 권장) 첫 Machine을 복제해 볼륨이 있는 Machine 두 개로 확장하세요:
fly machine clone <machine id>볼륨을 나열해 결과를 확인하세요:
fly volumes list연결된 Machines가 있는 볼륨 두 개를 보여주는 예시 출력:
ID STATE NAME SIZE REGION ZONE ENCRYPTED ATTACHED VM CREATED AT vol_ez1nvxkwl3jrmxl7 created data 1GB lhr 4de2 true 91851edb6ee983 39 seconds ago vol_zmjnv8m81p5rywgx created data 1GB lhr b6a7 true 5683606c41098e 7 minutes ago
경고:
fly machine clone은 새 볼륨에 데이터를 쓰지 않아요.
기존 앱에 볼륨 추가하기
Fly Launch로 만든 앱에 볼륨을 추가해요.
-
앱의
fly.toml에[mounts]섹션을 추가하세요.source는 볼륨 이름이고destination은 Machine 파일 시스템에서 볼륨이 마운트될 디렉터리예요. 예를 들어:[mounts] source = "myapp_data" destination = "/data" -
fly status를 실행해 Machines의 리전을 확인한 다음, 앱의 Machines와 같은 리전에 볼륨을 만들어요. 예를 들어:fly volumes create <volume name> -r <region code> -
프로세스 그룹의 각 Machine마다 2단계를 반복하세요.
fly launch명령으로 앱을 만들었다면 앱에는 기본적으로app프로세스에 Machine 두 개가 있는 경우가 많아요.참고: Machine이 여러 개라면 같은 이름의 볼륨을 동일한 개수만큼 만들어야 해요. 예를 들어 앱의
[mounts]설정이source="myapp_data"를 지정하고bos(보스턴)에 Machine 세 개가 있다면,bos에myapp_data라는 볼륨을 세 개 만들어야 해요. 모든 볼륨에는 고유 ID가 있어서 같은 이름의 볼륨을 여러 개 가질 수 있어요. -
앱을 배포하세요:
fly deploy
볼륨이 Machine에 붙어 있는지 확인
flyctl로 볼륨과 Machines의 상태를 확인해요.
Machines 나열
Machines를 나열해 연결된 볼륨을 확인하세요:
fly machine list
예시 출력:
1 machines have been retrieved from app my-app-name.
View them in the UI here
my-app-name
ID NAME STATE REGION IMAGE IP ADDRESS VOLUME CREATED LAST UPDATED APP PLATFORM PROCESS GROUP SIZE
328773d3c47d85 my-app-name stopped yul flyio/myimageex:latest fdaa:2:45b:a7b:19c:bbd4:95bb:2 vol_6vjywx86ym8mq3xv 2023-08-20T23:09:24Z 2023-08-20T23:16:15Z v2 app shared-cpu-1x:256MB
볼륨 나열
볼륨을 나열해 연결된 Machines를 확인하세요:
fly volumes list
예시 출력:
ID STATE NAME SIZE REGION ZONE ENCRYPTED ATTACHED VM CREATED AT
vol_zmjnv8m81p5rywgx created data 1GB lhr b6a7 true 5683606c41098e 3 minutes ago
Machine에 SSH로 접속
Machine 파일 시스템에서 볼륨을 확인해요:
fly ssh console -s -C df
/data에 마운트된 1GB 볼륨을 보여주는 예시 출력:
? Select VM: lhr: 5683606c41098e fdaa:0:3b99:a7b:7e:3155:9844:2 nameless-feather-6339
Connecting to fdaa:0:3b99:a7b:7e:3155:9844:2... complete
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 103068 0 103068 0% /dev
/dev/vda 8191416 172748 7582856 3% /
shm 113224 0 113224 0% /dev/shm
tmpfs 113224 0 113224 0% /sys/fs/cgroup
/dev/vdb 1011672 2564 940500 1% /data
볼륨은 fly.toml 파일의 [mounts] 섹션에서 destination 필드가 지정한 디렉터리나, 복제된 Machines의 경우 attach-volume 옵션이 지정한 디렉터리에 마운트돼요.
볼륨 접근하기
Machine의 볼륨은 일반 디렉터리처럼 접근하고 쓰면 돼요.
Fly Launch로 관리되는 Machines의 경우 fly.toml의 [mounts] 아래 destination이 마운트된 볼륨의 경로예요.
관리되지 않는(unmanaged) Machines의 경우, 클론한 Machine에 볼륨을 추가하거나 Machine을 만들며 볼륨을 연결할 때 마운트 경로를 지정해요.
더 알아보기 (Learn more)
- Fly Volumes 개요
fly.toml앱 설정 파일의mounts섹션- 볼륨 생성 및 관리
- 볼륨 스냅샷 관리
- 볼륨으로 앱 스케일