기술 기반 · 구성요소 ④ · 차고(작업장)

조립하고,
그 자리에서 출고하는 차고

만든 에이전트는 어딘가에서 안정적으로 돌아야 고객이 씁니다. 다웰서비스 서버 인프라는 한 서버에서 여러 프로젝트를 독립적으로 운영하고, 도메인·HTTPS를 자동으로 붙이며, 3계층 백업으로 고객 자산을 보호하는 잘 갖춰진 작업장입니다.

🖥️ 멀티테넌트 서버 🔒 자동 HTTPS 도메인 💾 3계층 백업·복구
실제 서버 구성 자세히 보기 →
서버 2대개발용 · 운영용 분리
40+동시 운영 프로젝트
자동 HTTPS도메인·인증서·갱신 자동
3계층AMI · 스냅샷 · DB 백업
비유 · 차고 & 작업장

잘 갖춰진 차고가 있어야 빨리 출고합니다

골격과 부품을 조립하는 것도, 완성차를 출고하는 것도 결국 차고에서 이뤄집니다. 다웰서비스의 서버 인프라는 여러 차(프로젝트)를 동시에 작업할 수 있는 여러 개의 작업 베이를 갖췄고, 출고 즉시 번호판(도메인)과 안전장치(HTTPS·백업)를 자동으로 달아줍니다.

  • 한 서버 안에서 프로젝트마다 완전히 분리된 작업 공간
  • 출고와 동시에 도메인·보안 인증서가 자동으로 붙음
  • 사고가 나도 되돌릴 수 있는 다중 백업
차고와 서버 랙 일러스트 — 서버 인프라
한 서버 = 여러 작업 베이(프로젝트)를 가진 차고
Multi-tenant

한 서버, 여러 프로젝트 — 완전히 분리되어

프로젝트마다 독립된 실행 환경·데이터베이스·포트를 갖습니다. 외부에는 오직 HTTPS 관문만 열립니다.

고객 브라우저 인터넷 HTTPS Apache HTTPS 관문 · 리버스 프록시 AWS EC2 서버 (내부) 프로젝트 A 독립 실행환경(venv) · 전용 DB · 내부 포트 프로젝트 B 독립 실행환경(venv) · 전용 DB · 내부 포트 프로젝트 C … 한 서버에 40+ 프로젝트 내부 포트는 서버 밖으로 열리지 않고, 외부 접근은 Apache HTTPS 관문만 통합니다
프로젝트별 완전 격리 + 단일 HTTPS 관문 — 한 프로젝트의 문제가 다른 프로젝트로 번지지 않습니다.
The Virtuous Cycle

현장의 교훈이 기반으로 돌아옵니다

여러 프로젝트를 운영하면 같은 패턴·같은 버그·유용한 새 유틸이 반복해서 나옵니다. 이걸 개별 프로젝트에 묻어두지 않고 standarda-core·template에 반영해, 다음 프로젝트가 그대로 물려받게 합니다.

개선이 전체에 퍼져 다음 개발이 더 빨라지는 선순환 ① 현장 프로젝트들 (A·B·C…) 운영 중 발견 반복 패턴 · 버그 · 새 유틸 반영 (PR·리뷰) ② 공통 기반에 반영 core · template 버전 태그 · 변경 이력 기록 상속 · 동기화 ③ 프로젝트에 배포 다음·기존 프로젝트 새=cookiecutter · 기존=sync
현장 → 공통 기반 → 다시 현장. 개별 프로젝트의 교훈이 팀 전체의 자산이 됩니다.
① 발견

현장에서 포착

여러 프로젝트를 운영하다 보면 같은 패턴·버그·유용한 유틸이 반복해서 드러납니다.

② 반영

기반에 병합

standarda-core·template에 PR·리뷰 후 병합. core는 버전 태그, template은 sync-to로 골격에 역류하고, 변경 이력을 팀 위키에 남깁니다.

③ 배포

프로젝트로 확산

새 프로젝트는 cookiecutter로 최신 골격을 상속하고, 기존 프로젝트는 sync-from·태그 갱신으로 선별 반영합니다.

④ 가속

선순환

개선이 전체로 퍼져 다음 개발이 더 빨라집니다 — 프로젝트가 늘수록 기반이 좋아집니다.

“한 프로젝트에서 고친 버그를, 모든 프로젝트가 두 번 겪지 않습니다.”

교훈이 개별 서버에 갇히지 않고 공통 기반(core·template)으로 흡수되어, 팀 전체가 같은 개선을 공유합니다.

Automated Operations

사람 손이 아니라, 자동화로 운영합니다

서버를 세우고 · 지키고 · 정리하는 일상 운영을 최대한 자동화했습니다. 반복 작업에서 사람이 빠질수록 실수가 줄고, 고객 서비스는 더 안정적으로 돌아갑니다.

새 프로젝트를 세울 때 — 명령 한 번으로

주소 등록부터 보안 접속까지 전 과정이 하나의 명령으로 자동 구성됩니다. (재실행해도 안전한 멱등 설계)

STEP 1

주소 등록

<프로젝트>-dev.popupstudio.ai 도메인 레코드를 자동 생성하고 전파를 확인합니다.

STEP 2

관문 구성

Apache가 그 주소를 해당 프로젝트로 잇는 리버스 프록시를 설정합니다.

STEP 3

인증서 발급

Let's Encrypt HTTPS 인증서를 자동 발급 — 처음부터 보안 접속.

STEP 4

포트 등록

포트를 검증·할당하고 서버 관리대장에 자동 기록합니다.

그리고 일상 운영도 — 무인으로

세워둔 서비스가 알아서 유지·보호·정리되도록, 아래가 정해진 주기로 자동 실행됩니다.

🔐

인증서 자동 갱신

모든 도메인의 HTTPS 인증서를 매일 자동 점검·갱신 — 만료로 서비스가 끊길 일이 없습니다.

🛡️

주간 무인 보안 패치

두 서버 모두 매주 정해진 새벽에 OS 보안 업데이트와 재부팅을 완전 무인으로 수행합니다.

📦

안전게이트 배포

배포는 코드 반영 → 마이그레이션 → 재시작 → 헬스체크를 정해진 절차로. 이상이 있으면 자동 중단되고, 누가 배포했는지 추적됩니다.

🧹

자원 위생 자동 감사

삭제된 프로젝트가 남긴 DB·인증서·DNS·포트 같은 잔여 자원을 전용 도구가 교차검증·회수해 서버를 깨끗하게 유지합니다.

⚙️

비용 최적화 자동 조절

개발 서버는 근무시간·야간에 맞춰 사양을 자동으로 전환해, 성능과 비용을 동시에 관리합니다.

📝

변경 이력 자동 기록

문서 변경은 자동으로 검토 이슈를 만들고, 개발 활동 로그는 주기적으로 자동 취합돼 상시 투명하게 남습니다.

* 상시 무인으로 도는 자동화에 더해, 백업 복원은 정기적으로 실제 복구까지 시험해 확인합니다(아래 백업 참고).

Backup & Recovery

3계층 백업으로 고객 자산 보호

서로 다른 층위의 백업을 매일 자동으로 남깁니다. 장애 범위에 맞춰 가장 빠른 방법으로 되돌립니다.

🗄️

서버 전체 이미지 (AMI)

서버를 통째로 담은 이미지를 매일 자동 생성(7일 보존). 최악의 경우 새 서버로 통째 복원.

💽

디스크 스냅샷 (EBS)

디스크 볼륨 단위 스냅샷이 이미지에 포함되어, 저장장치 단위로 되돌릴 수 있습니다.

🧮

데이터베이스 백업

각 프로젝트 DB를 매일 자동 덤프(7일 보존). 데이터만 몇 분 만에 개별 복원.

“매일 백업하고, 주기적으로 복원까지 실제로 시험합니다.”

백업이 있다는 것과, 그 백업으로 실제 복구된다는 것은 다릅니다. 후자를 정기적으로 확인합니다.

Operations & Security

운영과 보안을 기본값으로

특별히 신경 쓰지 않아도 지켜지도록, 보안·격리·유지보수를 인프라에 기본으로 심어 두었습니다.

01

개발 · 운영 서버 분리

실험이 오가는 개발 서버와, 고객이 실제로 쓰는 운영 서버를 별도 장비로 분리해 운영합니다.

02

저장 데이터 암호화

운영 서버의 디스크(볼륨)를 암호화해, 저장된 고객 데이터가 물리적으로 유출돼도 읽히지 않습니다.

03

내부망 격리 · 관문 단일화

서비스 포트는 외부로 열리지 않고 내부망(VPC)에만, 외부 트래픽은 오직 HTTPS 관문만 통합니다. 클라우드 메타데이터 접근도 차단(IMDSv2)합니다.

04

정기 보안 패치

매주 정해진 시각에 OS 보안 업데이트와 재부팅을 자동 수행 — 백업 시간대와 분리해 안전하게 최신 상태를 유지합니다.

05

자격증명 분리 관리

고객 API 키·구글 인증 같은 민감 정보는 소스 코드와 분리해 서버의 보호된 환경설정에만 두고, 저장소에는 올리지 않습니다.

06

운영 자원 개인 격리 · 추적

운영 서비스는 담당자별로 분리된 공간·계정에서 돌아가, 누가 무엇을 배포·변경했는지 추적됩니다.

AWS EC2 (Ubuntu) Apache · HTTPS 리버스 프록시 PostgreSQL Gunicorn (운영) Let's Encrypt 자동 인증 디스크 암호화 IMDSv2 · VPC 내부망 격리 주간 자동 보안 패치 AMI · 스냅샷 · DB 백업 프로젝트별 격리
Explore More

기술 기반 둘러보기