이우의 개발일지
[Cloud] 3-tier Architecture란? IT 인프라 설계/ 구축 본문
3-tier Architecture란?
어떤 플랫폼이나 애플리케이션을 세 개의 독립적인 계층으로 나누어 설계하는 구조
주로, 클라이언트 계층, 어플리케이션 계층, 데이터 계층으로 서버를 모두 물리적으로 나누어 구성하는 방식이다.
보통 Web, Was(web apllication), data 계층으로 나눕니다.
web 계층에는 (Html, css, js) 사용, Was에는 (PHP) 사용, DB에는 (Mysql, Postgresql)을 사용합니다.
첫번째 계층 - Web ( Presentation Tier)
보통 Presentation Tier(client) 라고 하는 일반 사용자가 직접 액세스하며 이용할 수 있는 계층입니다.
콘텐츠를 HTML/JS/CSS 형식으로 전송하는 계층입니다.
보통 프론트엔드라고도 부르며, 사용자 인터페이스와 관계없는 데이터를 처리하는 로직은 포함하지 않습니다.
모든 HTTPS 지원 클라이언트 또는 장치와 통신할 수 있으므로 프레젠테이션 계층은 다양한 형식(데스크톱, 어플리케이션, 모바일 앱, 웹페이지, IOT 장치 등)을 유연하게 수행할 수 있습니다.
두번째 계층 - WAS ( Application Tier)
이 계층에서는 요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공되는 것을 담당합니다. 어플리케이션에 대한 비즈니스 논리를 처리하는 계층입니다.
첫 번째 계층에서 이 계층을 바라보면 서버처럼 동작하고, 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동합니다.
보통 미들웨어(middleware) 또는 백엔드(back-end)라고도 불리며, 주로 PHP, JAVA를 사용합니다.
세 번째 계층 - Data Tier (Database)
응용 프로그램 데이터에 대한 액세스를 제공하는 데이터베이스 관리 시스템(MySQL, Postgres)입니다. 주로 DBMS (DataBase Management System)이 이 계층에 해당됩니다.
이렇게 3계층 구조는 각각의 계층에서 변화가 일어나더라도 서로 영향을 받지 않고 독립적으로 운영합니다.
3-tier 아키텍처 장/단점
장점
1. 다른 계층의 영향을 주지 않고 업데이트 및 수정할 수 있다.
2. 서로 다른 분야 전문가들이 작업할 수 있다.
3. 어플리케이션을 스케일업 및 스케일 아웃 할 수 있다.
4. 각각 계층의 로직이 따로 동작하므로 서버에 부하를 줄일 수 있다.
단점
1. 3개의 계층을 관리해야하므로 관리할 부분이 많다.
2. 장애가 일어날 포인트가 더 많아진다.
3. 서비스 비용이 늘어난다.
IT 인프라 설계는 정답이 없고, 어떤 상황에 누가 쓰냐가 조건을 결정하는 중요한 요인인 것 같습니다.