Django로 만든 프로젝트를 AWS에서 3 Tier Architecture로 구현하는 실습을 해보려고 한다.
먼저 3 Tier Architecture에 대해 알아보자.
3 Tier Architecture란?
애플리케이션을 Web Server, Application Server, Database Server의 3계층 구조로 나누어 운영하는 형태를 의미한다.
계층 설명
- Web Server (프레젠테이션 계층)
사용자가 애플리케이션과 상호작용하는 인터페이스. 일반적으로 HTML, CSS, JS로 작성된 프론트엔드단을 띄우게 된다.
- Appliation Server (애플리케이션 계층, AP 계층, WAS 서버)
사용자로부터 요청되는 기능들을 가공하고 처리해주는 계층이다. DB와 상호작용하기도 한다.
- Database Server (데이터 계층)
AP 계층에서 들어오는 요청에 따라 데이터베이스에 접근하여 데이터를 CRUD하는 계층이다.
3 Tier Architecture의 장단점
장점
- 계층이 분리되어있어 계층마다 업무 분담이 가능해져 효율성이 높아진다.
- 서버가 계층별로 독립적으로 구성되기 때문에 확장하기 편하다.
- 각 계층의 장애가 다른 계층에 영향을 미치지 않으며, 트러블슈팅하기에도 편리하다
- 외부에서는 계층별로 순차접근을 하기 때문에 보안적인 측면에서 1,2계층 구조보다 안전하다.
단점
- 설계와 구축이 복잡하고, 1,2단계 보다 관리하기 까다롭다.
- 구축과 유지 비용이 많이 든다.
다음과 같은 구조로 3티어 아키텍처를 구성해보려고 한다.
3 Tier Architecture 설계
Subnetting
- VPC 대역: 10.0.118.0/24 (10.0.118.1 ~ 10.0.118.254)
서브넷 | 가용 영역 | 대역 | 공인 IP | 허용 포트 |
public-nat | ap-northeast-2a | 10.0.118.0/28 (10.0.118.1 ~ 10.0.118.14) | 탄력적 IP | |
public-bastion | ap-northeast-2c | 10.0.118.16/28 (10.0.118.17 ~ 10.0.118.31) | 탄력적 IP | 22 |
private-web1 | ap-northeast-2a | 10.0.118.32/28 (10.0.118.33 ~ 10.0.118.47) | 80, 22 | |
private-web2 | ap-northeast-2c | 10.0.118.48/28 (10.0.118.49 ~ 10.0.118.63) | 80, 22 | |
private-was1 | ap-northeast-2a | 10.0.118.64/28 (10.0.118.65 ~ 10.0.118.79) | 8080, 22 | |
private-was2 | ap-northeast-2c | 10.0.118.80/28 (10.0.118.81 ~ 10.0.118.95) | 8080, 22 | |
private-db1 | ap-northeast-2a | 10.0.118.96/28 (10.0.118.97 ~ 10.0.118.111) | 3306, 22 | |
private-db2 | ap-northeast-2c | 10.0.118.112/28 (10.0.118.113 ~ 10.0.118.126) |
'AWS' 카테고리의 다른 글
[AWS] 서버리스로 서버없이 간단한 웹 애플리케이션 만들기 (0) | 2023.06.26 |
---|---|
[AWS] 3-Tier-Architecture 구축 #4 - Bastion Host와 WEB 계층 (0) | 2023.06.15 |
[AWS] 3-Tier-Architecture 구축 #3 - NAT Gateway 대신 NAT Instance를 사용해 비용 절약하기 (0) | 2023.06.15 |
[AWS] 3-Tier-Architecture 구축 #2 - VPC (0) | 2023.06.14 |
[AWS] Windows에서 EC2 인스턴스 접속하기 (0) | 2023.06.13 |