3 Tier Architecture란 클라이언트-서버 아키텍처에서 서버 아키텍처를 3중으로 구성하는 아키텍처입니다.
서버쪽 아키텍처를 Presentation Tier, Application Tier, Database Tier로 구성한다. Tier라는 개념이 중요한데, 이는 단순히 논리적 구분일 뿐만 아니라 물리적 구분도 포함하는 개념이기 때문입니다. Layer가 논리적 구분만을 의미했다면, Tier는 논리적이고 물리적으로 구분되는 계층을 의미합니다.
즉 논리적으로 구분되며 동시에 물리적으로 구분되는 3개의 계층으로 서버를 구성하는 것이 3 Tier Architecture입니다.
이렇게 되면 장점은 트래픽 변화에 유연하게 대응할 수 있다는 것입니다. 특정 계층에 트래픽이 많이 몰릴 경우, 해당 계층만 서버를 더 늘려줄 수 있습니다(스케일 아웃). 그리고 논리적으로도 분리된 덕분에 각 계층이 서로 다른 팀에서 동시에 개발될 수 있어 빠른 개발이 가능합니다.
마지막으로 보안 측면에서도 장점을 가집니다.
이를 이해하기 위해선 먼저 각 계층이 어떤 역할을 담당하는지 이해할 필요가 있습니다.
- Presentation Tier는 정적 파일에 대한 요청을 처리합니다. 정적 파일이란 쉽게 이해하면, 모든 사용자에게 같은 화면을 보여주는 것입니다. 가령 AWS에 접속하면 누구든 같은 화면을 볼 것입니다. 이런 걸 정적 파일이라 하는데, 이미지 파일 같은 걸 예로 들 수 있습니다.
- Application Tier는 동적 파일에 대한 요청을 처리합니다. 해당 계층에는 특정 비즈니스 규칙 세트인 비즈니스 논리를 사용하여 Presentation Tier에서 수집된 정보가 처리됩니다. 또한 Database Tier의 데이터를 추가, 삭제 또는 수정할 수 있어 Database Tier와 통신할 수 있는 계층입니다.
- Database Tier는 정보에 대한 계층입니다. 애플리케이션이 처리하는 정보가 저장 및 관리되는 곳입니다.
Tier 간 통신을 위해선 항상 Application Tier를 경유해야 합니다. 그래서 Application Tier가 SQL 인젝션이나 내부 공격으로부터 Database Tier를 보호할 수 있는 일종의 방화벽으로도 작동할 수 있습니다.
3 Tier Architecture를 Web Server에 적용해본다 했을 때는 이렇게 매핑해볼 수 있습니다.
- Presentation Tier = Web Server
- Application Tier = Web Applicatio Server(WAS, AS)
- Database Tier = Database Server
이러한 아키텍처를 AWS를 통해 구현해보려 합니다.
3 Tier Architecture는 AWS에서 workshop을 통해 제안하는 구성을 참고해 진행해보도록 하겠습니다.
출처
3계층 아키텍처란? | IBM
3계층 아키텍처는 애플리케이션을 프리젠테이션 계층, 애플리케이션 계층 및 데이터 계층으로 분리합니다.
www.ibm.com
AWS Three Tier Web Application Architecture
This lab is a hands-on walk through of a basic three-tier web architecture on AWS. We will be creating the necessary network, security, app, and database components and configurations in order to run this architecture in an available and scalable manner.
catalog.us-east-1.prod.workshops.aws
'프로젝트' 카테고리의 다른 글
AWS 3 Tier Architecture 구축 (0) | 2024.05.31 |
---|---|
AutoScalingGroup 구축(Amazon Linux의 Nginx 배포 시작템플릿 및 검증) (0) | 2024.04.21 |