앱 인계 가이드 (App handover guide)
다른 사람을 위해 앱을 만들고 그 사람이 직접 Fly.io에서 운영하게 된다면 좋은 선택지가 두 가지 있어요. 고객의 Fly.io 조직 안에서 개발을 시작하거나, 여러분의 조직에서 만든 다음 나중에 옮기는 방법이에요. 이 가이드에서는 두 경로가 어떻게 작동하는지, 그리고 이동 과정에서 무엇이 꼬일 수 있는지 설명해 드릴게요.
출처: 문서
본문
**다른 사람을 위해 앱을 만들고 그 사람이 직접 Fly.io에서 운영하게 된다면 좋은 선택지가 두 가지 있어요. 고객의 Fly.io 조직 안에서 개발을 시작하거나, 여러분의 조직에서 만든 다음 나중에 옮길 수 있어요. 두 경로가 어떻게 작동하는지, 그리고 이동 과정에서 무엇이 꼬일 수 있는지 설명할게요.**
옵션 1: 처음부터 고객의 조직에서 만들기
가장 깔끔한 인계는 사실 인계가 없는 거예요. 개발을 시작하기 전에 고객이 자신의 Fly.io 조직을 직접 만들게 하세요.
- 고객이 조직을 만들고 결제 수단을 추가해요. 기본적인 절차예요. Fly.io가 이 계정으로 청구해요.
- 고객이 여러분의 개발자를 조직에 초대해요. 대시보드의 "Team → Invite Member"에서 할 수 있어요. 이제 여러분은 고객의 계정에 직접 앱을 배포할 수 있는 권한을 가지게 돼요.
- 고객의 조직 안에서 개발해요. Fly.io는 조직을 격리된 네임스페이스로 취급하므로 여기서 어색한 경계를 넘을 일은 없어요. 그저 여러분의 팀이 고객의 환경에서 코드를 배포하는 것뿐이에요.
- 일이 끝나면 고객이 여러분을 제거해요. 물론 안 그래도 돼요—계약 조건에 포함되어 있다면 유지보수를 위해 남아 있을 수도 있어요.
- 꼬일 수 있는 부분. 초대받은 개발자가 고객 조직의 유일한 관리자가 되지 않도록 하세요. 고객 조직에 관리자가 최소 두 명 이상 있는지 다시 확인해 주세요.
옵션 2: 여러분의 조직에서 만들고, 그다음 앱을 고객 조직으로 옮기기
때로는 자신의 조직에서 시작하는 게 더 쉬울 수 있어요—특히 이미 인프라와 도구가 구축되어 있다면 더 그렇죠. 앱이 준비되면 옮기면 돼요.
이렇게 진행돼요:
- 평소처럼 여러분의 조직에서 빌드해요.
- 고객이 여러분의 개발자 한 명을 고객 조직에 초대하게 해요. 이 사람은 이동 작업을 하려면 두 조직 모두에 있어야 해요.
- 앱을 이전해요: CLI 명령
fly apps move <app-name> --org <target-organization-name>을 사용하거나, 대시보드의 App Settings 페이지로 이동해서 Move app을 클릭하고 새 조직을 선택한 다음 배포가 끝날 때까지 기다리면 돼요.
- 주의: 이동하는 동안 몇 분간 다운타임이 발생해요. 트래픽이 적을 때 예약하고 사용자에게 유지보수 시간을 알려 주는 게 좋아요.
- 자동으로 이동하는 것들:
- Machines와 볼륨(데이터 포함)
- 시크릿(Secrets)과 환경 변수
- 인증서와 도메인 이름
- LiteFS 데이터베이스(
$FLY_APP_NAME을 Consul 키로 사용하는 한)
- 자동으로 이동되지 않는 것들:
- Postgres(비관리형 및 관리형): 조직 간 Postgres 데이터베이스 이동은 지원되지 않아요. 대상 조직에 새 Fly Postgres 앱을 만들고 볼륨 스냅샷에서 복원해야 해요. 또는
pgloader를 사용해 데이터를 마이그레이션할 수도 있어요. - Upstash Redis: 이 서비스는 조직의 프라이빗 네트워크에 묶여 있어요. 새 조직에 새 DB를 프로비저닝해야 해요.
- Tigris 버킷: 기존 Tigris 버킷을 삭제하고 새 조직에서 다시 만든 다음 데이터를 복사해야 해요(
s3sync사용을 시도해 보세요). 앱의 시크릿을 재설정하는 것도 잊지 마세요.
- Postgres(비관리형 및 관리형): 조직 간 Postgres 데이터베이스 이동은 지원되지 않아요. 대상 조직에 새 Fly Postgres 앱을 만들고 볼륨 스냅샷에서 복원해야 해요. 또는
요약
처음부터 고객이 앱을 장기적으로 소유할 걸 알고 있다면 고객의 조직에서 시작하는 게 나중에 번거로운 작업이 줄어들 거예요. 하지만 여러분의 조직에서 고객 조직으로 앱을 넘겨줘야 한다면, Fly.io는 이를 해낼 수 있는 도구를 충분히 제공해요—다만 몇 가지를 수동으로 다시 연결할 준비는 돼 있어야 해요.