웹 호스팅의 과정
AWS (Amazon Web Service) #
1. EC2 (Elastic Compute Cloud) #
1) VPC (Virtual Private Cloud)
- 사용자의 AWS 계정 전용 가상 네트워크
2) 인스턴스 (Instance)
-
가상 컴퓨터 혹은 서버
-
Ubuntu
- 리눅스 배포판 운영 체제(OS)
3) 볼륨 (Volumes)
-
EC2에 연결 할 수 있는 저장매체 (≒HHD)
-
Amazon EBS (Elastic Block Store)를 사용하는 저장소로 프리티어에서는 30GB까지 제공된다.
-
30GB를 초과할 경우 초과한 용량만큼 금액이 청구된다.
4) 키페어 (Key pairs)
-
인스턴스에 대한 로그인 정보가 담겨있다.
-
공개키 암호화 방식을 적용하여 사용자에게 비밀 키를 제공하여 로그인 시 사용된다.
5) 탄력적 IP (Elastic IP)
-
EC2의 인스턴스의 경우 재부팅 시 IPv4 주소가 변경 되므로 재부팅 시 매번 dns 설정을 변경해야 하는 이슈가 있다.
-
이를 보완하기 위해 사용하는 것이 탄력적 IP주소로 고정된 하나의 IP주소를 발급받아 인스턴스와 연결하는 과정을 통해 재부팅 시에도 항상 동일한 IP주소를 사용할 수 있도록 한다.
-
탄력적 IP와 연결된 인스턴스가 없을 경우 요금이 청구될 수 있다. 프리티어의 경우 주의할 것
6) 보안그룹 (Security groups)
-
가상 방화벽
-
사용자가 정의한 규칙을 기반으로 특정 포트에 대한 트래픽 및 연결을 제어한다.
-
인바운드 규칙에서는 들어오는 트래픽을, 아웃바운드 트래픽에서는 나가는 트래픽을 제어한다.
북메이트에서 외부(클라이언트)는 80번, 443번 포트로만 접근 가능하다.
7) 로드밸런서 (Load Balancer)
-
들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP 주소와 같은 여러 대상에 자동으로 분산시킨다.
-
주기적으로 인스턴스의 상태 확인을 하여 비정상적인 인스턴스에 대해 트래픽 전송을 중단한다.
8) 스냅샷 (Snapshots)
-
볼륨에 저장 된 데이터를 캡쳐하여 추후 문제가 발생 할 경우 사용 할 수 있도록 저장한다.
-
스냅샷이 생성 된 당시와 동일한 환경의 새 볼륨을 생성할 수 있다.
2. ACM (Amazon Certificate Manager) #
-
아마존에서 제공하는 SSL 서비스
-
SSL (Secure Sockets Layer)
-
보안 소켓 계층
-
웹 사이트와 브라우저 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하는 표준 기술이다.
-
-
TLS (Transport Layer Security)
-
전송 계층 보안
-
SSL의 향상된 버전이다.
-
-
HTTPS (Hyper Text Transfer Protocol Secure)
- 웹 사이트가 SSL / TLS로 보호되는 경우를 뜻한다.
Web Server | WAS (Web Application Server) #
Web Server | WAS |
● 정적인 컨텐츠(이미지 파일 등) 처리 ● 프로그램(JSP, Servlet 등) 실행 환경, DB접속 기능 제공 ● 클라이언트와 WAS사이의 요청 처리 |
● 동적인 컨텐츠 (JSP, Servlet) 처리 ● 여러 개의 트랜잭션(논리적 작업 단위) 관리 기능 ● 비즈니스 로직 수행 |
Nginx, Apache | Apache Tomcat |
Web Server와 WAS를 따로 써야 하는 이유 #
-
WAS 부하 방지
- 정적인 컨텐츠를 Web Service에서 만 처리 하는 방식으로 기능을 분리하여 더 빠른 처리가 가능하며, WAS의 부담이 적어진다.
-
보안 강화
-
SSL에 대한 암/복호화 처리에 Web Server를 사용
-
Web Server를 DMZ에 위치하도록 하여 외부에서 WAS에 바로 접속하지 않게 할 수 있다. 이를 통해 DB와 직접 연결 되어있는 WAS를 보호한다.
-
WAS의 포트를 다르게 하여 해당 포트에 방화벽을 설정하는 방식으로 보안 강화가 가능하다.
-
-
여러 대의 WAS
-
WAS를 여러 대 연결하면 Web Server에 Load Balancing 역할 부여가 가능
-
대용량 웹 애플리케이션의 경우 일부 WAS의 접속을 차단하여 업데이트 하고 적용하는 방식 등을 이용해 무 중단 운영이 가능하다.
-
다양한 종류의 WAS를 이용 가능하다.
- 예) PHP, Django, Spring
-
- BookMate의 웹 서비스 구조
Client(bookmate.life) ↔ Web Server(*Nginx) ↔ WAS(Spring Boot 내장 Tomcat) ↔ DB(Oracle)
*Nginx : 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램
Bookmate에서는 **Reverse Proxy Server로 활용 되고 있다.
**Reverse Proxy : 클라이언트가 서버를 요청할 때 Reverse Proxy를 호출하고 Reverse Proxy가 서버로부터 응답을 전달 받아 다시 클라이언트에게 전송하는 방식으로 애플리케이션 서버를 감추는 역할을 한다.
출처 & 참고자료 #
쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념 | 인사이트리포트 | 삼성SDS
[소개][초보자를 위한 AWS 웹구축] 0. 웹서버 아키텍처 소개
[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee’s Development Blog