개발자

SaaS 운영시 Git이 구성되는 환경(?)

4월 14일조회 76

안녕하세요. 현재 자그마한 B2B 솔루션 회사에서 운 좋게 SaaS 프로젝트에 참가하게된 2년차 주니어 엔지니어입니다. 현재로써는 운영 아키텍처가 정해지지 않은 상태이고, EKS 기반의 퍼블릭 개발환경에서 CI/CD 및 메인 서비스에 대한 PoC를 진행하는 중에 있는데요,, 프로덕션으로 들어간다고 하면 Git과 같은 레포지토리 서버는 당연히 EKS 클러스터가 위치한 Private VPC에 구성되어야 하는게 맞는걸까요? ex) VPC Peering을 활용한 운영환경 <-> 개발환경 간의 분리, VPN G/W 활용...등 혹, 위 언급드린 방식이 올바른 경우라면 소스 커밋과 같은 작업들은 개발자들이 어떤 식으로 수행하는지 궁금합니다. 그 외로 SaaS <-> 레거시 개발환경과의 큰 차이가 존재하는 부분에 대해 언급을 주신다면 정말 감사하겠습니다:)

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

CL@Supercoding님의 프로필 사진

안녕하세요. 슈퍼코딩에서 커리큘럼을 설계하고 있는 CL입니다. 먼저, 2년차 엔지니어로 SaaS 프로젝트의 인프라 레벨을 직접 고민하고 있다는 점에서 정말 인상 깊고 반가운 질문이었습니다. 지금 고민하고 계신 방향이 아주 정확합니다. 질문 중심으로 핵심만 간결하게 나눠볼게요. --- 1. Git 리포지토리 서버는 Private VPC에 구성되어야 하나요? > 결론: 일반적으로는 아닙니다. SaaS 환경에서는 대부분 GitHub, GitLab Cloud, Bitbucket Cloud 등 퍼블릭한 SaaS Git 서비스가 CI/CD의 트리거 포인트로 사용됩니다. 즉, Git 자체는 Private VPC 안에 두기보다는 외부에서 접근 가능한 위치에 두는 게 일반적입니다. 다만 코드 자체를 외부에 절대 공개할 수 없는 보안 수준의 SaaS라면 기업 내 GitLab Self-hosted 인스턴스를 구축해 Private VPC 내에 구성 + VPN 또는 Bastion Host를 통해 접근하는 방식도 고려됩니다. → 핵심은 Git 서버의 보안 정책과 조직의 접근 통제 기준에 따라 달라집니다. --- 2. Private 환경에서 개발자들이 소스 커밋은 어떻게 하나요? > 대표적으로 다음 방식이 사용됩니다. - Bastion Host + SSH Tunneling → 개발자는 Bastion을 통해 내부 Git 서버에 접근 가능 → Git remote 설정 시 SSH 주소 사용 - VPN Gateway → 사내 망 접속 후, 내부망에서 Git 커밋 및 Push 수행 - GitLab CI or GitHub Enterprise + Agent 연결 → 사내망에 Git Agent를 설치해서 외부 Git 요청은 Agent가 실행 보통 내부망 Git 서버를 사용하는 경우는 이런 구조를 통해 커밋이 이뤄지고, ArgoCD/FluxCD 같은 GitOps 도구는 내부 Agent로 쿠버네티스와 연동됩니다. --- 3. SaaS 환경과 레거시 환경의 차이? 아주 좋은 포인트를 짚으셨고, 다음 3가지가 가장 큰 차이입니다. A. Immutable Infrastructure SaaS는 기반 구조를 매번 재배포 가능하게 만들고, 환경에 의존하지 않는 구성이 필수입니다. (IaC, Helm, Kustomize 등 필수) B. 자동화 기반 운영(DevOps 필수) 레거시 환경이 수동 배포나 로컬 기반에 머문다면, SaaS는 GitOps, CI/CD, 모니터링, 로깅, 오토스케일링이 기본 내장됩니다. C. 멀티 테넌시 고려 레거시는 1 고객 1 배포가 대부분이었다면, SaaS는 구조상 1 플랫폼 → N 고객 운영을 위한 테넌시 설계 (DB, 로그, 설정 분리 등)까지 요구됩니다. --- - Git은 퍼블릭이 일반적, 하지만 보안 요건에 따라 Private도 가능 - Private Git 접근은 Bastion/VPN/Agent 구조로 해결 - SaaS는 아키텍처/배포/운영의 ‘자동화와 분리’가 생존조건 지금처럼 인프라 구조를 미리 고민하고 계신다면, 곧 아키텍처 설계자로 자연스럽게 성장하실 수 있을 겁니다. 응원합니다. 읽어주셔서 감사합니다. — CL@Supercoding Curriculum Lead @Supercoding | Helping You Navigate Career Shifts

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

4월 14일

Git 레포지토리에 대한 위치는 많은 요인에 따라 달라질 수 있습니다. 그러나 일반적으로, 보안과 통제 가능성을 위해 Private VPC 내부에 Git 서버를 구성하는 것이 권장됩니다. 단, 이런 구조를 가지려면 Private VPC에서 외부로 연결하기 위한 추가 설정이 필요합니다. 예를 들어, 개발자들이 VPC 내의 Git 서버와 상호작용 할 수 있게 하려면 VPN 게이트웨이나 SSH 점프 호스트 등의 방법을 사용하여 안전하게 접근할 수 있는 경로를 제공해야 합니다. 개발자들은 이 환경에서 소스 코드 커밋 및 푸시 작업을 VPN 또는 SSH 터널링을 통해 연결된 네트워크에서 진행할 수 있습니다. SaaS와 레거시 시스템간의 가장 큰 차이점 중 하나는 배포 모델입니다. SaaS는 대개 클라우드 기반으로 배포되며 자동화된 스케일링, 빠른 업데이트 롤아웃, 및 유지 관리가 쉽다는 이점이 있습니다. 반면에 레거시 시스템은 종종 온-프레미스 하드웨어에서 실행되며, 이는 더 많은 유지 관리를 필요로 하고 배포 및 스케일링이 더 복잡할 수 있습니다. 또한, SaaS는 일반적으로 DevOps 원칙과 잘 어울립니다. CI/CD 파이프라인을 통해 코드 변경 사항을 자동으로 테스트하고 배포할 수 있습니다. 이는 신속한 업데이트와 고장 회복을 가능하게 합니다. 다음으로, 컨테이너 기반의 환경 (예: Kubernetes)은 SaaS 솔루션에 자주 사용됩니다. 이는 서비스 간 격리를 제공하면서도 리소스를 효율적으로 활용할 수 있게 해줍니다. 반면에 레거시 시스템은 종종 모놀리식 아키텍처를 가지며 이러한 형태의 세분화가 어려울 수 있습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!