RESTAPI REST 설계 원칙
프록시(Proxy)란?
클라이언트와 서버 사이에서 요청을 중계하는 역할을 하는 서버
사용자(클라이언트)가 직접 서버에 접속하지 않고, 프록시 서버를 거쳐서 데이터를 주고받는 방식
사용자 → 프록시 서버 → 웹 서버 (실제 대상 서버)
- 순방향 프록시(Forward Proxy)
클라이언트(사용자)가 외부 서버에 요청할 때 중간에서 요청을 대신 처리하는 방식
사용자 → (순방향 프록시) → 웹 서버
ex) 기업 네트워크에서 직원들의 인터넷 사용을 제어 ex) VPN처럼 특정 사이트 우회 접속
- 리버스 프록시(Reverse Proxy)
사용자가 서버에 직접 접근하지 않고, 프록시 서버가 요청을 받아 실제 서버로 전달하는 방식
사용자 → (리버스 프록시) → 웹 서버 (실제 서버)
ex) Nginx나 Apache 같은 웹 서버에서 많이 사용 류ex) 로드 밸런싱 (Load Balancing) → 트래픽을 여러 서버에 분산하는 기술(행위)/ 로드 밸런싱을 수행하는 로드 밸런서는 리버스 프록시의 한 종 ex) AWS에서 Nginx를 사용해 웹 트래픽을 여러 서버로 분산하는 경우
- 투명 프록시(Transparent Proxy) 사용자가 프록시를 사용하고 있다는 사실을 모르게 하는 프록시
ex) 기업이나 학교에서 직원·학생들의 인터넷 사용 기록을 모니터링
- 캐시 프록시(Cache Proxy) 자주 요청되는 데이터를 캐싱(저장)하여 빠르게 응답하는 프록시
ex) CDN(Content Delivery Network)에서 웹 페이지 로딩 속도 향상 ex) 동일한 요청이 반복될 때 서버 부하 감소
VPC ??
VPC(Virtual Private Cloud) 는
VPC는 AWS 클라우드 내에서 격리된 가상 네트워크 환경을 제공합니다. 이를 통해 사용자는 자신만의 IP 주소 범위, 서브넷, 라우팅 테이블, 인터넷 게이트웨이 등을 설정하여 AWS 리소스들을 관리할 수 있습니다. VPC는 보안과 네트워크 분리를 위해 사용되며, 다른 사용자와 리소스 간의 네트워크 트래픽을 제어할 수 있습니다.
AWS(Amazon Web Services) 에서 제공하는 가상 네트워크 서비스로, 클라우드 상에서 격리된 네트워크 환경을 생성하여 자원을 안전하게 관리하고 연결할 수 있게 한다
VPC를 사용하면 다양한 네트워크 영역을 분리하여 보안 및 권한 관리를 효율적으로 처리 예를 들어, 특정 리소스가 인터넷에 직접 접근하지 못하게 하고, 다른 리소스는 인터넷에 접근할 수 있도록 분리하는 구조를 만들 수 있음
Subnet Route Table Internet Gateway VPC간 피어링을 설정한다.?