AWS

[AWS] 3-Tier-Architecture 구축 #1 - 설계

2023. 6. 14. 23:07

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)