✅
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: 작은 서버 여러개, 비용이 비교적 쌈.