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

프로덕션 배포 체크리스트 (Going to production)

원문 보기 위키 갱신

Fly.io에서 프로덕션 환경을 준비할 때 꼭 확인할 만한 항목들을 담은 체크리스트예요. 스테이징에서 프로덕션으로 옮길 때 겪을 수 있는 보안 문제, 성능·확장 이슈, 데이터 손실 같은 흔한 함정들을 미리 잡아내는 데 도움을 줘요.

출처: 문서

본문

이 체크리스트를 사용해 Fly.io에서 프로덕션 환경을 설정하세요.

개요 (Overview)

앱을 스테이징에서 프로덕션으로 옮기면 예상치 못한 장애 모드(보안 허점, 성능·확장 문제, 데이터 손실)가 드러날 수 있어요. 이 체크리스트는 Fly.io 앱에서 흔히 겪는 함정을 잡아내기 위한 것이지만, 프로덕션 준비 완료를 보장하지는 않아요. 여기 적힌 항목이 모두 앱에 적용되는 것은 아니고, 목록에 없는 추가 요구사항이 있을 수도 있어요. 이것을 기반으로 삼고 여러분의 필요에 맞게 조정하세요. 이 목록을 만병통치약이 아닌 하나의 뼈대(scaffold)로 생각해 주세요.

**중요:** 이 체크리스트는 완전하지 않으며 앱의 프로덕션 준비를 보장하지 않아요. 앱은 프레임워크와 유형에 따라 프로덕션에 필요한 요구사항이 제각각일 수 있어요. 일부 항목은 적용되지 않을 수 있고 여기 나열되지 않은 다른 고려사항도 있을 수 있어요. 어떤 항목이 여러분의 앱에 맞는지는 직접 판단하셔야 해요.

보안 (Security)

조직에서 SSO를 활성화하면 Google 또는 GitHub 인증 보안을 활용할 수 있어요. [조직용 싱글 사인온](/security/sso)에서 자세히 알아보세요. 조직을 사용해 프로덕션 환경에 대한 접근을 제한하세요. 이 가이드를 읽어 보세요: [스테이징과 프로덕션 분리](/blueprints/staging-prod-isolation). 액세스 토큰을 사용해 팀원이 조직, 앱, Machines에 대해 필요한 최소한의 접근 수준만 허용하세요. [액세스 토큰](/security/tokens)에 대해 이해해 보세요. 비밀(Secrets)을 설정해 민감한 데이터를 저장하고 앱에 환경 변수로 제공하세요. [Secrets와 Fly Apps](/apps/secrets)에 대해 읽어 보세요. 서비스가 있는 프라이빗 앱에 공용 IP 주소가 없는지 확인하세요. `fly ips list`를 실행하고 `fly ips release`를 사용해 불필요한 공용 IP를 해제하세요. 자세한 내용은 이 `flyctl` 레퍼런스에서 확인할 수 있어요: [`fly ips` 명령](/flyctl/cmd/fly_ips). 대신 프라이빗 앱에는 [Flycast 주소](/networking/flycast)를 할당하세요. 확장 파트너 Arcjet을 통해 rate limiting, 봇 보호, 이메일 검증, 일반적인 공격 방어로 앱을 보호하세요. [Arcjet의 Application Security](/security/arcjet)에 대해 더 읽어 보세요.

데이터베이스 (Databases)

프로덕션 PostgreSQL 운영의 모든 측면을 처리하는 완전 관리형 데이터베이스 서비스인 [Fly.io의 Managed Postgres](/postgres) 사용을 권장해요. 실제로 필요해지기 전에 백업에서 관리형 Postgres 데이터베이스를 복원하는 연습을 해 보세요. Managed Postgres 대시보드에서 언제든지 할 수 있어요.

앱 성능 (App performance)

대부분의 일반적인 프로덕션 웹 앱은 [성능 CPU](/machines/cpu-performance)가 필요해요. 또한 앱에 충분한 RAM이 있는지 확인하거나 메모리 사용량이 잠시 급증할 때 대처하도록 [스왑(swap)을 디스크로 활성화](/reference/configuration/#swap_size_mb-option)하세요. 자세한 내용은 [Machine 크기 조정 가이드](/machines/guides-examples/machine-sizing)에서 확인하세요. Fly.io에서 앱을 최적화하는 방법을 알아보세요. 이 팁들을 읽어 [Fly.io에서 앱을 미세 조정](/apps/fine-tune-apps)하는 방법을 확인하세요.

가용성, 복원력, 비용 (Availability, resiliency, and costs)

필요할 때까지 중지 상태로 유지되는 여러 Machine을 사용해 단일 호스트 장애에 견디는 앱을 만드세요. 이 가이드에서 알아보세요: [복원력 있는 앱은 여러 Machine을 사용합니다](/blueprints/resilient-apps-multiple-machines). 앱 사용자와 가장 가까운 여러 리전으로 앱을 확장하세요. [앱의 리전 확장](/launch/scale-count/#scale-an-apps-regions) 방법을 확인하세요. autostop/autostart를 사용하면 트래픽이 적을 때 Machine을 중지하거나 일시 중지해 리소스 사용량과 비용을 절약할 수 있어요. 새 앱에서는 기본적으로 autostop/autostart가 제공되지만, 여러분의 사용 사례에 맞게 구성할 수 있어요. 더 알아보기: [Autostop/autostart Machines](/launch/autostop-autostart). 웹 서비스를 실행하지 않는 앱의 경우 autoscaler 앱을 사용해 어떤 메트릭을 기준으로든 앱의 Machine을 확장하여 리소스 사용량과 비용을 절약하세요. [메트릭 기반 자동 확장](/launch/autoscale-by-metric) 방법을 알아보세요.

네트워킹 (Networking)

도메인에 대한 인증서를 구성하세요. [커스텀 도메인 사용](/networking/custom-domain) 방법을 알아보세요. 블랙리스트에 올라간 스패머가 앱에 문제를 일으킬 가능성을 완전히 없앨 수 있어요. 전용 IPv4 주소에는 약간의 [추가 비용](/about/pricing/#anycast-ip-addresses)이 있어요. [Dedicated IPv4](/networking/services/#dedicated-ipv4)에 대해 더 읽어 보세요. 아직 안 했다면 프라이빗 앱에 Flycast 주소를 부여해 프라이빗 네트워크에서 전적으로 통신하세요. [Flycast - Private Fly Proxy 서비스](/networking/flycast)에 대해 알아보세요.

모니터링 (Monitoring)

관리형 Prometheus와 관리형 Grafana 대시보드를 사용해 앱을 모니터링하세요. [Fly.io의 Metrics](/monitoring/metrics)에 대해 읽어 보세요. Sentry는 사용자에게 영향을 미치기 전에 소프트웨어 문제를 식별하고 해결하도록 돕는 애플리케이션 모니터링 플랫폼이에요. [Sentry에 가입](https://sentry.io/signup/)한 다음 앱 시크릿으로 `SENTRY_DSN`을 설정하세요. [Sentry의 Application Monitoring](/monitoring/sentry)에 대해 더 읽어 보세요. Fly Log Shipper를 설정해 앱의 로그를 원하는 서비스로 집계하세요. [로그 내보내기](/monitoring/exporting-logs)에 대해 더 읽어 보세요.

CI/CD

GitHub Actions를 사용해 각 풀 리퀘스트(PR)에 대해 Fly.io에 일시적인 리뷰 앱을 자동으로 생성하세요. [GitHub의 Git Branch Preview Environments](/blueprints/review-apps-guide)에 대해 더 알아보세요. 앱의 GitHub 저장소에서 Fly.io로 지속적 배포하도록 앱을 설정하세요. [Fly.io와 GitHub Actions를 사용한 지속적 배포](/launch/continuous-deployment-with-github-actions) 방법을 알아보세요.

지원 받기 (Get support)

더 알아보기 (Learn more)