티스토리 뷰
스케일 아웃, 스캐일 업, 로드밸런싱
서버 확장을 위한 방법
스케일 아웃 (Scale out)
- 서버를 여러 대 추가하여 시스템을 확장 하는 방법
- 서버가 여러대가 되기에 로드밸런싱이 필수
- 다중화를 통해서 서버에서 장애가 나더라도 다른 서버에서 대응이 가능
- 반면 모든 서버가 동일한 데이터를 가지고 있어야기야 데이터 변화가 적은 웹서버에 적합
스케일 업 (Scale up)
- 서버에 CPU / RAM 등을 추가하거나, 고성능의 부품, 서버로 교환하는 방법
- 추가적으로 장비를 장착한 여유 슬롯이 있어야 하며 그렇지 않으면 서버 자체를 교환해야 한다
- 스케일 업의 경우 모든 부하가 서버 한 대에 집중되므로 장애시 위험하다
- 모든 데이터를 한 곳에서 처리하므로 데이터 갱신이 빈번하게 일어나는 데이터베이스 서버에 적합
로드밸런서의 주요기능
- NAT: 사설 IP 주소를 공인 IP 주소로 바꾸는데 사용하는 통신망 주소 변조기
- DSR: 서버에서 클라이언트로 돌아가는경우, 목적지 주소를 스위치 IP 주소가 아닌, 클라이언트의 IP 주소로 전달하여 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념
- Tunneling: 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
- 데이터를 캡슐화해서 연결된 상호간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다
- 주의 할 점
- 매 요청마다, 다른 서버로 접근하기에 정보 일관성 유지가 어렵다 (세션 등)
- 세션 고정이 필요, 특정 사용자의 요청이 전달될 노드를 고정하는 방법이 있지만, 해당 노드가 장애시 무용지물
로드밸런서의 종류
- L2: Mac주소를 바탕으로 로드밸런싱
- L3: IP주소를 바탕으로 로드밸런싱
- L4: Transport Layer(IP와 Port) 레벨에서 로드밸런싱, (TCP, UDP)
- L7: Application Layer(사용자의 Request) 레벨에서 로드밸런싱, (HTTP,HTTPS, FTP)
밸런싱 방법
- Round Robin: 한 번씩 돌아가며 선택, 가장 일반적인 방법
- Least Connections: 연결 개수가 가장 적은 서버를 선택, 세션이 길어지는 경우 권장
- Source: 사용자의 IP를 해싱하여 분배, 사용자는 항상 같은 서버로 연결되는 것을 보장
'개발 > Infrastructure' 카테고리의 다른 글
Apache vs Nginx (0) | 2020.05.18 |
---|---|
Proxy Server (0) | 2020.05.18 |
아파치(Apache)인증 설정 (Basic, Digest) (0) | 2019.10.23 |