3 Tier Architecture on AWS

김남우 ·2025년 2월 9일
0

AWS

목록 보기
1/13
post-thumbnail

3 Tier Architecture를 AWS로 구성하는 방법에 대해 알아보겠습니다. 이 글에서는 3 Tier Architecture의 개념, AWS 구성 요소, 그리고 구현 단계를 다룰 것입니다.

3 Tier Architecture가 필요한 이유

1. 확장성 (Scalability) 향상

  • 각 계층(프레젠테이션, 애플리케이션, 데이터)을 독립적으로 확장 가능
  • 특정 계층에 트래픽 집중 시 해당 계층만 스케일 업 (Scale-Up) 또는 스케일 아웃 (Scale-Out) 가능
  • 예시: 사용자 증가에 따라 웹 서버(프레젠테이션 계층)만 증설 가능

2. 업무 효율성 증가

  • 계층별 명확한 역할 분담으로 개발 및 유지보수 효율 증가
  • 각 팀은 특정 계층에 집중하여 전문성 향상
  • 코드 변경 시 영향 범위 최소화

3. 서버 부하 감소

  • 애플리케이션 로직을 여러 서버에 분산하여 전체 서버 부하 감소
  • 각 계층에 맞는 최적화된 리소스 할당 가능
  • 시스템 응답 속도 개선 및 사용자 경험 향상

4. 보안 강화

  • 프레젠테이션 계층과 데이터 계층 간 직접 통신 차단
  • SQL 인젝션, XSS (Cross-Site Scripting) 등의 보안 취약점 감소
  • 각 계층별 접근 제어보안 정책 적용 용이

5. 신뢰성 향상

  • 한 계층의 장애가 다른 계층에 미치는 영향을 최소화
  • 각 계층별 독립적인 장애 격리 가능
  • 전체 시스템의 안정성가용성 향상

6. 유연한 개발

  • 각 계층을 동시에 개발 가능
  • 새로운 기능 추가 및 업데이트 용이
  • 시장 출시 속도 (Time-to-Market) 단축

7. 기술 최적화

  • 각 계층에 최적화된 기술 스택 및 도구 사용 가능
  • 예시: 프레젠테이션 계층에는 React, 애플리케이션 계층에는 Spring Boot, 데이터 계층에는 PostgreSQL 사용
  • 기술 변화에 대한 유연한 대응 가능

결론:

3 Tier Architecture는 단순한 아키텍처 패턴을 넘어, 확장성, 효율성, 보안, 신뢰성 및 유연성을 제공하는 핵심 요소입니다. 복잡한 엔터프라이즈 애플리케이션에서 필수적으로 고려해야 할 아키텍처입니다.

3 Tier Architecture 개요

3 Tier Architecture는 애플리케이션을 세 개의 논리적, 물리적 컴퓨팅 계층으로 구성하는 소프트웨어 아키텍처 패턴입니다. 이 구조는 다음과 같은 세 계층으로 구성됩니다:

  1. 프레젠테이션 계층 (Web Server): 사용자 인터페이스를 담당하며, 주로 HTML, CSS, JavaScript로 구현됩니다.

  2. 애플리케이션 계층 (Application Server): 비즈니스 로직을 처리하고 데이터를 가공합니다.

  3. 데이터 계층 (Database Server): 데이터를 저장하고 관리합니다.

장점

  • 계층 간 독립성으로 인한 유지보수 용이성
  • 확장성 및 유연성 향상
  • 보안 강화 (계층별 접근 제어 가능)

단점

  • 구축 및 관리의 복잡성
  • 초기 구축 비용 증가

AWS로 3 Tier Architecture 구현하기

AWS를 사용하여 3 Tier Architecture를 구현하는 과정을 살펴보겠습니다.

1. VPC 구성

먼저 Virtual Private Cloud (VPC)를 생성하여 네트워크 환경을 구성합니다.

VPC 대역: 10.0.118.0/24

2. 서브넷 구성

VPC 내에 다음과 같은 서브넷을 생성합니다:

서브넷가용 영역대역용도
public-natap-northeast-2a10.0.118.0/28NAT Gateway
public-bastionap-northeast-2c10.0.118.16/28Bastion Host
private-web1ap-northeast-2a10.0.118.32/28Web Server
private-web2ap-northeast-2c10.0.118.48/28Web Server
private-was1ap-northeast-2a10.0.118.64/28Application Server
private-was2ap-northeast-2c10.0.118.80/28Application Server
private-db1ap-northeast-2a10.0.118.96/28Database Server
private-db2ap-northeast-2c10.0.118.112/28Database Server

3. 보안 그룹 설정

각 계층별로 적절한 보안 그룹을 생성하여 트래픽을 제어합니다.

  • Web Server: 80 포트 개방
  • Application Server: 8080 포트 개방
  • Database Server: 3306 포트 개방
  • Bastion Host: 22 포트 개방 (관리용)

4. EC2 인스턴스 생성

각 계층별로 EC2 인스턴스를 생성합니다.

  • Web Server: Apache 또는 Nginx 설치
  • Application Server: Tomcat 설치
  • Database Server: MySQL 또는 Amazon RDS 사용

5. 로드 밸런서 구성

Elastic Load Balancer (ELB)를 사용하여 트래픽을 분산시킵니다.

  • Application Load Balancer (ALB): Web Server 앞단에 위치
  • Network Load Balancer (NLB): Application Server 앞단에 위치 (필요시)

6. Auto Scaling 설정

EC2 Auto Scaling을 구성하여 트래픽 변화에 따라 자동으로 인스턴스를 확장하거나 축소합니다.

7. 데이터베이스 구성

Amazon RDS를 사용하여 관리형 데이터베이스 서비스를 구성합니다. Multi-AZ 배포를 통해 고가용성을 확보합니다.

구현 단계

  1. VPC 생성
  2. 서브넷 생성 (public 2개, private 6개)
  3. 인터넷 게이트웨이 (IGW) 생성 및 연결
  4. NAT 게이트웨이 생성
  5. 라우팅 테이블 생성 및 연결
  6. 보안 그룹 생성
  7. EC2 인스턴스 생성 (Web, Application 서버)
  8. RDS 인스턴스 생성
  9. 로드 밸런서 생성 및 구성
  10. Auto Scaling 그룹 설정

결론

AWS를 사용한 3 Tier Architecture 구성은 확장성, 가용성, 보안성을 갖춘 견고한 인프라를 제공합니다. 각 계층을 독립적으로 관리하고 최적화할 수 있어 효율적인 리소스 관리가 가능합니다.

profile
✨A.I로 0에서 1을 만드는 법✨ - woo;D

0개의 댓글