인터넷과 같은 외부 네트워크에 연결되어 있는 내부 네트워크의 중요한 정보 및 자원을 외부 네트워크를 통한 불법적인 침입으로부터 안전하게 보호하기 위한 시스템이다.
외부로부터 내부 네트워크를 보호하기 위해 강력한 접근 제어를 제공하는데, 이를 위해 외부망과 내부망의 구성을 위한 별개의 네트워크를 갖고 있다. 외부망 사용자가 내부망에서 제공하는 서비스를 이용하려면 반드시 방화벽 시스템을 통과해야 한다.
방화벽 시스템은 보호하고자 하는 내부 네트워크(내부망)가 인터넷(외부망)에 연결되는 지점에 위치한다. 그래서 확실한 보안을 실현할 수 있다.
해킹과 같은 외부에서 공격하는 경우는 막을 수 있지만, 내부에서 공격하는 경우에는 매우 약한 특징이 있다.
DMZ란 내·외부 네트워크 구간 사이에 위치한 중간지점으로, 침입차단시스템 등으로 접근 제한 등을 수행하지만 외부 네트워크에서 직접 접근이 가능한 영역을 뜻한다.
조직 내부 네트워크와 외부 네트워크 사이에 위치한 서브넷으로 네브 네트워크와 외부 네트워크가 DMZ로 연결 할 수 있도록 허용하면서도, DMZ 안에 있는 호스트들은 내부 네트워크로 연결할 수 없다!!
이러한 방식은 DMZ에 있는 호스트들이 외부 네트워크로 서비스를 제공하면서 DMZ 안의 호스트의 침입으로부터 네부 네트워크를 보호한다.
외부 네트워크에서 DMZ로 가는 연결은 일반적으로 포트 주소 변환(port address translation 또는 PAT)을 통해 제어된다.
누구나 우리의 DB로 들어오면 보안상의 문제가 발생하게 된다.
따라서, Docker와 비슷하게 가상 환경인 VPC를 사용하여 누구나 접속하지 못하게 DB를 내 VPC내부에 넣어 배포해줘야 한다.
백엔드 서버 VPC와 DB 서버 VPC가 서로 다르기 때문에 VPC 피어링을 통해 두 VPC를 하나로 연결해
주면 서로 통신이 가능하게 된다.
GCP에서 VPC는 default로 자동 생성되므로 인스턴스를 만들게 되면
default VPC 내부에 인스턴스가 들어가 있게 된다.
하지만, 나만의 VPC를 추가로 만들어 줄 수도 있다. 그러면 인스턴스를 만들 때 Network interfaces를 추가 설정 해주면 나만의 VPC에 해당 인스턴스가 들어가게 된다.
💡 **VPC(Virtual Private Cloud)** : 일종의 **가상 네트워크 센터**입니다.IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경을 말합니다.
VPC Perring(VPC 피어링)
: 서로 다른 VPC간 통신이 가능하도록 연결하는 것을 의미합니다.