이전 과정(링크)에서 3-Tier Architecture에 대해 학습하고 우리 팀 근두운 인프라에서는 어떻게 적용해야 할지에 대해 고민하는 시간을 가졌다. 이번 과정에는 설계한 서버 및 서비스들이 네트워크에 어떻게 배치되어야 하는지에 대해 학습해 볼 것이다.
이전 과정에서 Web 서버, WAS 서버, DB 서버를 설계했다. 하지만 서버만 존재하고 별도의 네트워크 구성을 해주지는 않았기 때문에 외부의 사용자와 통신을 할 수 없는 상태이다.
통신을 위해서 각각의 서버에 공인 IP를 부여한 다음에 인터넷과 직접 연결한다면 어떻게 될까? 공개된 포트에 대해서 모든 사용자가 해당 서버들로 접근이 가능해지는 문제가 발생한다. 서버 사이드에서 보안을 위한 설계를 하였음에도 잘못된 네트워크 구성으로 인해 보안 위협이 발생할 수 있다는 것이다.
이를 방지하기 위해 우리는 서버를 구축하고 네트워크에 배치할 때 외부에 노출되어야 하는 서버가 무엇인지를 구분하고 분리하여 배치하여야 한다.
Network Segmentation은 네트워크를 여러 개의 세그먼트나 서브넷으로 나누는 아키텍처 방식으로 각각 소규모 네트워크 역할을 한다.
인터넷과 통신해야 하는 서버와 아닌 서버를 구분하고, Network Segmentataion 원리를 적용하여 서버의 역할과 보안 요구에 따라 네트워크를 영역을 분리, 영역 사이에 통신 정책을 적용하는 것이 중요하다.
Public 영역은 외부에 공개할 서비스를 배치하고, 외부에 직접 공개하지 않을 내부 시스템 자산은 사설 IP 주소 대역만을 사용하는 Private 영역에 격리하는 것이 일반적이다.
만약 모든 서버를 Private 영역에 배치하고 외부 요청을 내부로 전달할 별도의 접점도 구성하지 않으면, 외부 사용자는 서비스를 이용할 수가 없다.
그래서 기업에서는 기업 서비스를 외부 사용자들에게 안전하게 공개하기 위해 서버의 역할에 따라 네트워크 영역을 분리하여 구축한다.
그러면 어떻게 네트워크 영역을 분리하는 것이 안전한지를 알아보기 위해서는 DMZ의 개념과 방화벽이라는 보안 장비를 알아야 한다.
DMZ는 군사 용어인 비무장 지대에서 유래한 네트워크 보안 개념으로, 외부 인터넷과 내부망 사이에 존재하는 중립의 영역을 말한다. DMZ 영역에 위치한 서버는 외부 인터넷에서의 접근을 허용하고 해당 영역에 위험을 격리 시킨다. 즉, 외부 사용자가 공개된 서비스의 DMZ 영역에 접근한다고 해서, 그 조직의 내부망 까지는 접근하지 못하게 해주는 역할을 한다.
여기서 접근을 허용하고 차단하는 역할을 수행하는 실질적인 장비가 바로 방화벽이다. 방화벽은 관리자가 설정한 정책에 따라, 네트워크 트래픽의 흐름을 허용 또는 차단해주는 네트워크 보안 장비이다.
이 두 가지를 결합해 Web 서버를 DMZ 영역에 두고, 내부망에는 WAS 서버와 DB 서버를 배치하게 되면 외부 사용자는 Web 서버에 접근해 웹 서비스를 이용할 수 있으면서도 내부망에 있는 WAS 서버, DB 서버로의 접근은 제한하는 네트워크 배치를 구성할 수 있게 된다.

네트워크를 분리할 때 영역마다 별도의 물리 스위치를 사용할 수도 있지만, 하나의 스위치를 공유하면서 논리적으로 네트워크를 분리할 수 있는데, 이를 도와주는 기술이 바로 VLAN 기술이다.