공부/spring

프록시 서버

qlek1108 2023. 6. 2. 13:22

프록시 서버 : 대리 서버

 

종류 Forward proxy Reverse proxy
프록시 서버 - 클라이언트 가까이에 위치한 프록시 서버
- 캐싱을 제공하는 경우가 많아 사용자가 빠른 서비스 이용을 할 수 있도록 도와준다
- 서버 가까이에서 위치한 프록시 서버로 서버를대신해 클라이언트에 응답을 제공
- 분산처리 목적으로 하거나 보안을 위해 프록시 서버를 제공
  캐싱을 통해 빠른 서비스 이용 가능
- 클라이언트는 서비스의 서버가 아닌 프록시 서버와 소통하게 됩니다
- 여러 클라이언트가 동일한 요청을 보내는 경우 첫 응답을 하며 결과 데이터를 캐시에 저장 -> 이후 서버에 재 요청을 보내지 않아도 다른 클라이언트에게 빠르게 전달할 수 있습니다

보안
- 클라이언트에서 프록시 서버를 거친 후 서버에 요청이 도착하기 때문에 서버에서 클라이언트의 ip 추적이 필요한 경우 클라이언트의 ip가 아닌 프록시 서버의 ip가 전달
- 서버가 응답받은 ip는 프록시 서버의 ip이기 때문에 서버에게 클라이언트를 숨길 수 있습니다
분산 처리
- 클라이언트 서버 구조에서 사용자가 많아져 서버에 과부하가 올 경우 부하를 분산
- revers proxy 구조에서 프록시 서버로 요청이 들어오면 여러 대의 서버로 요청을 나눠 전달 후 처리

보안
- forward proxy와 반대 클라이언트에게 서버를 숨길수 있다
- 클라이언트 입장에서의 요청을 보내는 서버 프록시 서버가 되므로 실제 서버의 ip주소가 노출되지 않습니
 

 

과부하로 인해 서버가 원활한 서비스를 제공하지 못할때 Scale - Up Scale - Out
  물리적으로 서버의 사양을 높이는 하드웨어적인 방법
서버의 수를 늘리지 않고 프로그램 구현에 있어 변화가 필요 없다는 장점이 있다
서버의 사양을 높이는데 많은 비용이 들고 하드웨어 업그레이드에 한계가 있다는 단점
사양을 늘린만큼 클라이언트의 요청이 많아지면 서버에 발생하는 부한 여전히 해결 못함
서버의 개수를 늘려 하나의 서버에 줄 부하를 분산시키는 방법

로드 밸런서, 로드 밸런싱 : 어느 서버에 일을 줄지 정해주는 것

로드 밸런서의 종류 로드밸런싱의 기준
L2 데이터 전송 계층에서 MAC 주소를 바탕으로 로드 배런싱
L3 네트워크 계층에서 IP주소로 바탕으로 로드 밸런싱
L4 전송 계층에서 IP주소와 Port를 바탕으로 로드 밸런싱
L7 응용 계층에서 클라이언트의 요청을 바탕으로 로드 밸런

 

오토스케일링(auto scaling)

- scale out 방식으로 서버를 증설할 떄 자동으로 서버를 관리해 주는 기능입니다

- 클라이언트의 요청이 많아져 서버의 처리 요구량이 증가하면 새 리소스를 자동으로 추가하고 반대로 처리 요구량이 줄어들면 리소스를 감소시켜 적절한 분산 환경을 만들어줍니다

 

Auto Scaling의 장점

- 동적 스케일링 : Auto Scaling의 가장 큰 장점은 사용자의 요구 수준에 따라 리소스를 동적으로 스케일링할 수 있다는 점, 스케일 업 할 수 있는 서버의 수에는 제한이 없고 필요한 경우 많은 서버로 죽시 스케일 아웃 할 수 있습니다

- 로드 밸리싱 : auto scaling은 리소스를 동적으로 스케일업 혹은 스케일다운 합니다 로드 밸런서와 함께 사용하면 다수의 EC2 인스턴스에게 워크로드를 효과적으로 분배할 수 있어 사용자가 정의한 규칙에 따라 워크로드를 효과적으로 관리할 수 있습니다

- 타깃 트래킹 : 사용자는 특정 타깃에 대해서만 auto scaling을 할 수 있으며 사용자가 설정한 타깃에 맞춰 ec2 인스턴스의 수를 조정합니다

- 헬스 체크와 서버 플릿 관리 : auto scaling을 이용하면 ec2 인스턴스의 헬스 체크 상태를 모니터링할 수 있습니다 헬스 체크를 하는 과정에서 특정 인스턴스의 문제가 감지되면 자동으로 다른 인스턴스로 교체

 

 

시작 템플릿(Launch Configuration)

- 인스턴스를 확장, 축소하려면 어떤 서버를 사용할지 결정해야함 이걸 시작 템플릿이 해줌

 

Auto Scaling 그룹 생성

- 스케일업, 다운 규칙의 모음

- EC2  인스턴스 시작부터 삭제까지 모든 동작에 대해 규칙과 정책을 담고 있다

- Auto Scaling 그룹을 생성하기 위해 스케일링 정책 및 유형에 대해 잘 숙지하고 있어야 한다

 

Scaling 유형

- 인스턴스 레벨 유지 : 실행 상태를 유지하고자 하는 인스턴스의 수를 지정할 수 있다 일정한 수의 인스턴스가 필요한 경우 최소, 최대 및 원하는 용량에 동일 값을 설정할 수 있다

- 수동 스케일링 : 기존 auto scaling그룹의 크기를 수동으로 변경할 수 있다, 

- 일정별 스케일링 : 예측 스케일링트래픽의 변화를 예측할수 있고 특정 시간대에 어느 정도의 트래픽이 증가하는지 패턴 파악

- 동적 스케일링 : 수요 변화에 대응하여 auto scaling 그룹의 용량을 조정하는 방