Proxy
proxy는 대리라는 의미을 가진 단어로 웹서버에서 무언가의 중개자역할을 합니다.
주로 클라이언트와 서버사이에서 통신을 대리로 수행합니다.
Forward Proxy
클라이언트와 인터넷 사이에 위치해 클라이언트대신 서버에 요청을 보내줍니다.
이 구조는 로컬네트워크와 인터넷 사이에 오가는 트래픽을 제어할 수 있습니다.
그렇게된다면 특정 지역내의 발생하는 모든 요청을 관리하는 프록시서버가 있다 가정했을 때, 학교내에서의 부적절한 콘텐츠나 군대내에서 군사기밀들을 배포하는 것을 막아낼 수 있습니다.
Reverse Proxy
서버와 인터넷 사이에 위치해서 서버의 응답을 대신 클라이언트에게 전달해줍니다.
이 구조는 캐싱기능을 프록시서버에 두어 더욱 빠르게 캐싱에대한 기능을 수행할 수 있습니다.
또한 외부에서 보기에 해당 서버의 IP 주소는 proxy 서버로 보여지기 때문에 외부와의 직접적인 노출을 피하므로 보안에 더욱 좋습니다.
Proxy 기능
Forward Proxy 구조에서 본 것처럼 필터링기능이 있습니다.
인가를 토대로 특정 클라이언트에 관한 권한처리를 접근제어할 수 있습니다.
Reverse Proxy 구조에서 본 것처럼 캐싱기능이 있습니다.
Reverse Proxy 구조에서 본 것처럼 익명기능이 있습니다. Http 요청에서 신원을 식별 할 수있는 특성을 제거할 수 있습니다.
Reverse Proxy 구조에서 로드밸런싱 역할을 수행할 수 있습니다.
VPN
vpn이란 프록시 서버와 마찬가지로 원격서버를 통해 인터넷 트래픽을 필터링하고 익명성을 기반으로 실제 IP를 확인할 수 없도록 합니다.
하지만 프록시와는 달리 vpn은 운영체제 수준에서 동작하므로 브라우저나 백그라운드 앱에서 발생하는 모든 트래픽 또한 다룰 수 있다는 차이점이 있습니다.
CDN
콘텐트 전송 네트워크로 데이터 사용량이 많은 애플리케이션의 웹페이지 로드 속도를 높이는 상호 연결된 서버 네트워크입니다.
상황설명
서버가 한국에 있다고 가정을 할 때, 다른 나라에서의 물리적인 접근거리가 길면 웹 로드시간이 길어집니다.
그렇기때문에 필요한 지역마다 CDN이라는 네트워크를 두어 로드시간을 줄입니다. 이를 edge라고 부릅니다.
DNS에 서버의 도메인은 해당 지역에 가장 가까운 또는 트래픽이 몰리지 않는 곳으로 매핑됩니다.
Cache
정적캐싱은 캐싱할 데이터들을 미리 각 edge에 보냅니다.
동적캐싱은 사용자가 요청을 보낼 때마다 보낼 컨텐츠가 엣지에 있는지 먼저 확인한 다음 cache hit이면 바로 응답하고, cache miss라면 그떄 실제 서버에 데이터를 요청합니다.
하지만 동적켄텐츠는 미리 다 CDN 캐시에 저장해놓기가 까다롭습니다. 따라서 어느 기업은 정적컨텐츠만 제공하고, 어느 기업은 동적컨텐츠를 빠르게 제공하려 노력합니다.
대표적으로 Cloudflare, AWS CloudFront, Azure CDN 등이있습니다.
동적 컨텐츠를 빠르게 보내는 방법에는 바이트단위로 분석해서 바뀐부분만 새로 받아오도록 하는 방법과 데이터를 압축하거나 handshake의 과정을 간소화하기도 합니다.
또한 날씨같은 것들은 초 단위로 업데이트 될 필요없기에 몇 초나 몇 분씩 캐싱되도록 하기도합니다. 본질적으로 이러한 과정을 CDN에서 자유롭게 설정할 수 있습니다.
보안적인 측면에서는 디도스공격을 분산시킨다는 장점이 있습니다. 또한 CDN 업체의 보안등급을 확인 할 필요가 있습니다.
AWS RDS
RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스입니다.
RDS vs EC2 내의 Database
해당 내용은 기업의 입장에서 이야기를 합니다.
AWS에 지불하는 비용만 놓고 비교하면 사용 중인 데이터베이스를 직접 설치하는 것이 확연히 저렴합니다.
하지만 RDS를 쓴다면 분명한 장점이 존재합니다.
첫번째로 RDS를 사용한다면 빠른 시간내에 가치를 이룸으로써 생기는 비용절감도 무시할 수 없습니다.
두번째로 OS 및 데이터베이스의 설치 및 관리 그리고 업데이트를 따로 할 필요도 없어집니다.
세번째로 AWS 콘솔이나 AWS API를 통해 손쉽게 백업이나 복구가 가능합니다.
네번째로 간단하게 인스턴스 크기를 축소 및 확장할 수 있으며, 클릭 한번으로 간단하게 높은 가용성을 이룰 수 있습니다.
'Network' 카테고리의 다른 글
[Network] DMZ 존 (0) | 2023.04.09 |
---|---|
[Network] URI, URL, URN (0) | 2023.02.15 |
[Network] HTTP/x.x (2) | 2023.01.22 |
[Network] 브라우저에 www.naver.com을 입력하면 어떻게 될까? (0) | 2023.01.21 |
[Network] 네트워크 토폴로지 (0) | 2023.01.21 |