스테이징 및 프로덕션 격리 (Staging and production isolation)
프로덕션 환경을 테스트나 스테이징 환경과 격리하고 싶다면 여러 조직을 사용해 신뢰할 수 있는 격리를 만들 수 있어요. 조직 접근은 초대 전용이며, 조직은 프라이빗 네트워킹 아키텍처로 낮은 수준에서 서로 격리돼요. 이 가이드에서는 조직을 활용해 스테이징과 프로덕션을 분리하는 패턴을 알려드릴게요.
출처: 문서
본문
개요
프로덕션 환경을 테스트나 스테이징 환경에서 격리하고, 프로덕션 접근을 가능한 한 작은 그룹으로 제한하고 싶을 거예요. 여러 조직을 사용하면 신뢰할 수 있는 격리를 얻을 수 있어요. 조직 접근은 초대 전용이고 조직은 프라이빗 네트워킹 아키텍처에 의해 낮은 수준에서 서로 격리돼요: 모든 조직은 기본적으로 자체 프라이빗 네트워크를 가져요.
모든 Fly.io 계정은 "personal" 조직으로 시작해요. 서로 다른 환경뿐 아니라 서로 다른 프로젝트나 클라이언트를 위해 필요한 만큼 조직을 만들 수 있어요.
새 조직을 만들기 전에 알아둘 점:
- 여러 조직의 청구를 단일 상위(parent) 조직 아래로 통합할 수 있고, 별도의 결제 수단과 청구가 있는 일반 조직을 만들 수도 있어요. 통합 청구에 대해 자세히 알아보세요.
- 각 조직에서 멤버를 초대하거나 제거하는 작업은 별도로 해요.
- 한 조직에는 여러 앱이 있을 수 있고, 그 앱들은 조직의 프라이빗 네트워크를 통해 안전하게 서로 통신할 수 있어요.
패턴을 필요에 맞게 조정해 보세요. 예를 들어:
- personal 조직: 시작할 때 만들어진 조직으로, 개인 프로젝트용으로 유지하는 조직이에요.
- staging 조직:
<project>-staging으로, 개발과 테스트에 사용해요. - production 조직:
<project>-production으로, 프로덕션 앱에 사용해요.
여러 조직 다루기
가능하면 하나의 Fly.io 계정으로 모든 조직을 관리하는 게 좋아요. 그러면 로그인/로그아웃 없이 접근할 수 있거든요. 앱 이름은 Fly.io 플랫폼 전체에서 고유하므로, 스테이징과 프로덕션 앱은 서로 다른 이름을 갖고 구성용 fly.toml 파일도 각각 가져요.
대시보드에서 조직 관리
대시보드에서 새 조직을 만들려면 Organization 드롭다운에서 Create new organization을 선택하세요.
멤버 초대를 보거나 확인하려면 Organization 드롭다운으로 조직을 선택한 다음 Team으로 이동하세요.
flyctl로 조직 관리
새 조직을 만들고 멤버를 초대하거나 제거하려면 fly orgs flyctl 명령을 사용하세요.
조직이 둘 이상이면 flyctl은 필요할 때 조직을 선택하라는 프롬프트를 띄워요. 터미널에서 앱의 프로젝트 소스 디렉터리에 있지 않아도 --app 옵션을 사용해 어떤 조직의 특정 앱에 명령을 실행할 수 있어요.
다른 종류의 격리와 접근 제어
- 조직 내에서 앱 격리만 필요하면
fly apps create와--network옵션으로 앱을 만들어 커스텀 프라이빗 네트워크를 사용해 앱을 서로 격리할 수 있어요. - 사용자 또는 제3자 접근 제어가 필요하면 deploy 및 org-scoped tokens을 사용해 앱이나 조직에 대한 접근을 제한할 수 있어요.
관련 자료
- 프로덕션 전환 체크리스트 환경 격리와 접근 제어를 포함한 프로덕션 준비를 위한 광범위한 체크리스트예요.
- GitHub Actions로 스테이징 환경 구성하기 GitHub Actions를 사용해 전용 스테이징 환경을 배포하는 데 초점을 맞춘 실용 가이드예요. 격리 패턴과 잘 어울려요.