1. 3Tier Web Architecture
3-Tier 웹 아키텍처(3계층 구조)는 웹 애플리케이션을 논리적으로 세 개의 계층으로 분리하여 구성하는 방식으로, 일반적으로 Presentation(프레젠테이션), Application(애플리케이션), Data(데이터) 계층으로 나뉨
이 방식은 가독성, 보안성, 확장성, 유지보수성을 향상시키는 데 기여한다
1. Presentation Layer : 프레젠테이션 계층
- 사용자 인터페이스(UI) 를 담당하는 계층, 웹 브라우저 , 모바일 앱 등 접근
- HTML,CSS,JavaScript 작성된 프론트엔드, 서버 템플릿 엔진이 포함됨
- 사용자 요청을 받아 서버로 전달 ,서버에서 받은 데이터를 표시
2. Application Layer
- 비즈니스 로직 처리하는 서버 계층
- Reset API, GraphQL API를 통해 클라이언트 요청 정리
- 주요 웹 애플리케이션 프레임 워크 : Node.js, Django, Spring Boot, Flask
- 역할: 클라이언트 요청을 받아 데이터 처리, 데이터베이스와 연동함
3. Data Layer
- 데이터베이스 및 저장소 계층
- 관계형 데이터베이스 (PostgreSQL,Orcal DB) 등 이 포함
- 데이터를 영구적 저장, 애플리케이션 계층에서 필요한 조회 , 수정
2. 3-Tier 아키텍처의 장점
- 보안 강화: 데이터 계층이 직접 외부에 노출되지 않음
- 확장성: 각 계층을 독립적으로 확장 가능 (예: 로드 밸런서를 통해 웹 서버 확장)
- 유지보수성 향상: 특정 계층만 수정해도 전체 시스템에 영향이 적음
- 성능 최적화: 각 계층별로 로드 밸런싱, 캐싱 등을 적용하여 성능 개선 가능
2. 네트워크 엔지니어 관점에서 3-Tier 아키텍처 설계 고려사항
L4, L7 스위치 활용
- L4(전송 계층) 스위치는 클라이언트의 TCP/UDP 포트 기반 라우팅
- L7(애플리케이션 계층) 스위치는 URL, HTTP 헤더, 쿠키 등을 기반으로 로드 밸런싱
DNS 솔루션 적용
- 클라이언트 요청을 여러 웹 서버로 분산하는 GSLB(Global Server Load Balancing)
- 내부 DNS를 활용하여 서비스 고가용성 및 장애 대응
보안 강화
- WAF(Web Application Firewall) 배포
- DB 접근을 위한 네트워크 ACL 및 VPN 설정
- TLS 암호화를 통한 데이터 보호
클라우드 기반 확장
- AWS: ALB(Application Load Balancer), RDS(Database Service), Lambda
- Azure: Application Gateway, Cosmos DB
- GCP: Cloud SQL, Load Balancing
3. HTTPd 웹 서버 구현
3-1. http 서버 구성
#HTTPd 패키지 설치
dnf -y install httpd
#웹 문서 저장 디렉터리 설정
파일 경로 > /var/www/html
#패키지 정보 확인
rpm -qi httpd
#웹 서버 환경설정 파일,
/etc/httpd/conf/httpd.conf
#웹 서버 설정 파일 주요 설정
ServerName http://www.sammple.com:80
-> 서버의 도메인 명이나 IP 주소를 기재하는 곳으로 설정 값은 도메인:포트번호 형식
DocumentRoot " /var/www/html"
-> 웹 문서를 저장할 디렉터리 확인
DirectoryIndex index.html
-> 웹 문서에서 가장 먼저 인식되는 파일의 형식을 지정
3-2. 웹 서버 운영 부가 서비스 연동
3-2.1 Apache, MySQL, PHP 연동 설치
dnf -y install php*
#php 패키지 설치
or http://www.php.net 참고
#DB 패키지 설치
dnf -y install mariadb-server
# 설치 후 실행 및 재시작
systemctl restart httpd
systemctl --now enable mariadb
php -v
mysql -v
3-3 웹 서버 구축
3-3.1 워드프레스 패키지 구성
사용할 웹 설치
wget https://ko.wordpress.org/latest-ko_KR.zip
#압축 해제
unzip -q [파일명]
디렉터리 권한 부여
chown -R apache.apache wordpress
#이름 링크
ln -s wordpress wp
wp-config-sample.php -> 샘플파일 변경
wp-config.php
'네트워크 > Linux' 카테고리의 다른 글
[Linux] 메일 서버 구성 (0) | 2025.02.19 |
---|---|
[Linux] NFS,Samba,웹 클라우드 실습 문제 (0) | 2025.02.14 |
[Linux] SAMBA 서버 구성 (0) | 2025.02.10 |
[Linux] Quota 설정 (0) | 2025.02.05 |
[Linux] BaseOS를 이용한 웹 서버 구축 (0) | 2025.02.05 |