본문 바로가기

카테고리 없음

[Infra] AWS

EC2: 하나의 컴퓨터?(CPU)에 하나의 운영체제를 가진 서버.

-> 그래서 클라우드 서비스를 사용하지 않고, 라즈베리파이를 사용해 리눅스 서버로 활용할 수도 있다.

 

SSH: 원격 Secure 프로토콜

 

Client

Server1

동작하는 프로그램(Application): React

 

Server

Server2

동작하는 프로그램(Application): Spring(WAS)

 

DB

Server3

동작하는 프로그램(Application): MySQL

 

하나의 프로그램에는 하나의 포트가 필요하다.

 

S3에 .jpg .png .mp3 등 정적 파일을 저장함.

그 후 S3에 저장된 정적 파일의 URL을 DB에 저장함.

 

✅ 아키텍처 동작과정

 

Web Hosting Service에서 빌드된 JS를 읽음.

Client Server(Web Server)에서 WAS에 API 요청함. === Client측에서 WAS에 API 요청함.

WAS에서 DB에 SQL문을 보냄.

DB에서 데이터를 가져옴.

요청한 JSON 반환해줌.

 

가장 마지막에 html 사용자에게 던져줌.

 

✅ Stateless vs Stateful

HTTP 통신은 Stateless임. 이전 정보를 기억하지 않음.

Server는 보통 Stateless임. 여러 대의 서버를 가동한다고 가정할 때, DB에만 데이터가 존재함으로써 데이터 정합성을 유지할 수 있다.

 

✅ Scale-Up vs Scale-out

Scale-Up: 하나의 큰 서버, 비용이 비쌈.

Scale-Out: 작은 서버 여러개, 비용이 비교적 쌈.