3-Tier Architecture란?

2024. 10. 23. 10:58
반응형

1. 3-Tier 아키텍쳐의 개념

3티어 아키텍쳐 구축은 웹 서버(IIS), 데이터베이스 서버(MS-SQL),  그리고 인증 및 권한 관리(Active Diretory) 를 각기 다른 계층으로 나누어 구성하는 방식입니다. 이 3계층은 다음과 같습니다

 

- Presentation Tier (프레젠테이션 계층) : 사용자 인터페이스를 제공하는 웹 서버나 클라이언트 어플리케이션, 사용자는 이 계층을 통해 시스템과 상호 작용합니다.

- Logic Tier (애플리케이션 로직 계층) : 비즈니스 로직과 규칙을 처리하는 계층, 웹 서버와 데이터베이스 사이에서 데이터를 처리하고, 응답을 생성하는 역할을 합니다.

- Data Tier (데이터 계층) : 데이터베이스 서버로서, 데이터를 저장하고 관리하는 역할 및 처리를 합니다.

 

2. 3-Tier 아키텍쳐의 목적

3티어 아키텍처의 핵심 목적은 확장성, 유지보수성, 보안성을 극대화하면서 애플리케이션을 효과적으로 분리하는 것입니다.

a) 분리된 책임과 관리

- 각 계층은 서로 독립적으로 기능하므로 시스템을 확장하고 관리하는데 용이합니다.

- 프레젠테이션 계층(UI), 애플리케이션 로직 계층, 데이터베이스 계층을 분리함으로써, 각 계층의 변경이 다른 계층에 미치는 영향을 최소화할 수 있습니다

 

b) 확장성 (Scalability)각 계층을 독립적으로 확장할 수 있습니다. 예를 들어 트래픽이 많아지면 프레젠테이션 계층(IIS 서버)를 여러 대 배포하거나, 데이터가 증가하면 데이터베이스 서버(MS-SQL)를 확장하여 성능을 유지할 수 있습니다.

 

c) 보안성 강화

3티어 구조는 보안 강화를 용이하게 합니다. 각 계층 간에 보안 규칙을 적용할 수 있으며, 특정 계층에서만 접근 가능한 리소스를 제한할 수 있습니다.

 

d) 유지보수성

계층화된 구조 덕분에, 애플리케이션의 어느 한 부분을 변경하거나 업그레이드할 때 전체 시스템을 중단할 필요가 없습니다.

 

e) 유연성

각 계층이 명확히 분리되어 있어, 다른 기술 스택을 도입하거나 변경하는 것이 용이합니다.

 

현재는 IIS를 사용하지만, 다른 웹 서버(Apache, Nginx 등)로 전환하거나, MS-SQL을 다른 DBMS(MySQL, PostgreSQL 등)로 바꿀 수 있습니다

 

3. 3-Tier와 클라우드 환경

클라우드 환경에서는 이 아키텍처를 가상화하거나 컨테이너화하여 클라우드 서비스에서 쉽게 배포할 수 있습니다

  • AWS : EC2, RDS, ELB등을 사용하여 확장 가능한 3티어 아키텍쳐 구현
  • Azure : VM, SQL, Azure AD를 이용해 구축

Azure와 AWS에서의 3티어 아키텍쳐 구현 비교

서비스 Azure AWS
Actice Directory Azure AD or VM에서 AD DS EC2에서 AD
IIS Azure VM or Azure App Sevice EC2 or Elastic Beanstalk
MS-SQL Azure SQL Database or VM에서 SQL server Amzon RDS for SQL Server or
EC2에서 SQL Server

일단은 Azure를 이용하여 VM에서 3티어 구축을 먼저 해본 뒤, AWS 상으로도 해볼 예정입니다.

SQL이 사실상 문외한이라서 조금 공부가 필요할 듯 싶습니다.

반응형

+ Recent posts