
피로그래밍 최종 프로젝트 중 개인적인 욕심(!)으로 베어메탈 서버를 통한 3-tier 배포를 도맡아 하게 되었는데, 여러가지로 우여곡절이 많았던 부분이라 블로그에 정리하고자 한다.
배포 과정을 설명하기 전에 간단한 사전 지식을 먼저 알고 가자!
1. 배포란?
- 사용자에게 소프트웨어(서비스)를 제공하는 것이다.
다른 사람이 접속할 수 있도록 인프라(AWS)를 통해 공개하는 것이다.
 
2. ~~티어 아키텍쳐?
- 1티어 아키텍처 (1-Tier Architecture)
 
- 로컬 환경
 
- 사용자 인터페이스, 비즈니스 로직, DB가 하나의 단일 시스템에 존재
 
- 우리가 개발 단계에서 보통 localhost라고 하는 그것
 
- 2티어 아키텍처 (2-Tier Architecture)
 
- 로컬과 배포 사이 그 어딘가 (하이브리드 샘이솟아 리오레이비)
 
- 클라이언트(사용자 인터페이스)와 서버가 분리되어 있음
 
- AWS EC2 인스턴스 생성 (배포 환경)
 
- EC2에 DB 서버 설치
 
- 로컬 Django 서버(client)와 EC2 DB 서버 연결
 
- 로컬에서 Django 실행
 
- 3티어 아키텍처 (3-Tier Architecture)
 
- 본격적인, 완전한 배포
 
- 클라이언트(사용자 인터페이스)와 앱 서버, 데이터베이스 서버가 모두 분리되어 있음