본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Fly Launch 앱에 볼륨 스토리지 추가하기

원문 보기 위키 갱신

Fly Volumes는 Fly Machines용 로컬 영구 스토리지예요. 이 페이지에서는 Fly Launch로 새 앱을 만들 때 볼륨을 연결하는 방법과, 기존 앱에 볼륨을 추가하고 Machine에 볼륨이 잘 붙었는지 확인하는 방법을 단계별로 설명해요.

출처: 문서

본문

Fly Volumes는 Fly Machines용 로컬 영구 스토리지예요.

더 알아보기:

Fly Volume과 함께 새 앱 시작하기

Fly Launch로 Machine 하나와 연결된 볼륨이 있는 새 앱을 만들고, 그런 다음 Machine을 복제해 확장할 수 있어요.

  1. 프로젝트 소스 디렉터리에서 --no-deploy 옵션으로 새 앱을 시작해 자동 배포되지 않게 하세요. 앱 배포에 필요한 옵션(--image나 --dockerfile 같은 것)을 포함하세요.

    fly launch --no-deploy
    

    fly launch는 프로젝트 소스 디렉터리에 fly.toml 앱 설정 파일을 만들어요.

  2. 앱이 생성된 후, fly.toml에 [mounts] 섹션을 추가하세요. source는 볼륨 이름이고 destination은 Machine 파일 시스템에서 볼륨이 마운트될 디렉터리예요. 예를 들어:

    [mounts]
      source = "myapp_data"
      destination = "/data"
    

    참고: /는 루트 파일 시스템에 사용되므로 destination="/"로는 볼륨을 마운트할 수 없어요.

  3. 앱을 배포하세요:

    fly deploy 
    
  4. 볼륨이 Machine에 붙어 있는지 확인하세요.

  5. (앱이 복제를 처리하는 경우에만 권장) 첫 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로 만든 앱에 볼륨을 추가해요.

  1. 앱의 fly.toml에 [mounts] 섹션을 추가하세요. source는 볼륨 이름이고 destination은 Machine 파일 시스템에서 볼륨이 마운트될 디렉터리예요. 예를 들어:

    [mounts]
      source = "myapp_data"
      destination = "/data"
    
  2. fly status를 실행해 Machines의 리전을 확인한 다음, 앱의 Machines와 같은 리전에 볼륨을 만들어요. 예를 들어:

    fly volumes create <volume name> -r <region code>
    
  3. 프로세스 그룹의 각 Machine마다 2단계를 반복하세요. fly launch 명령으로 앱을 만들었다면 앱에는 기본적으로 app 프로세스에 Machine 두 개가 있는 경우가 많아요.

    참고: Machine이 여러 개라면 같은 이름의 볼륨을 동일한 개수만큼 만들어야 해요. 예를 들어 앱의 [mounts] 설정이 source="myapp_data"를 지정하고 bos(보스턴)에 Machine 세 개가 있다면, bos에 myapp_data라는 볼륨을 세 개 만들어야 해요. 모든 볼륨에는 고유 ID가 있어서 같은 이름의 볼륨을 여러 개 가질 수 있어요.

  4. 앱을 배포하세요:

    fly deploy 
    
  5. 볼륨이 Machine에 붙어 있는지 확인하세요.

볼륨이 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)