본문 바로가기

Database

MySQL, PostgreSQL 서비스를 위한 VNet 서비스 ~ DB 서비스를 위한 네트워크 보안의 기본

요즘 클라우드에서 데이터베이스 쓰는 곳이 늘고 있습니다. 서버리스 관련해 이런저런 시도를 하다 보면 자연스럽게 데이터베이스까지 쓰게 되나 봅니다. 이런 시대적 흐름에 맞춰 클라우드 사업자들이 유명 오픈 소스 데이터베이스를 매니지드 서비스 형태로 서둘러 내놓고 있죠. 애저에도 당연히 있습니다. 

▶ Azure Database for MySQL 
 Azure Database for PostgreSQL 

위 두 서비스는 하루하루 엔터프라이즈 눈높이에 맞게 기능이 강화되고 있습니다. 현재 가용성은 SLA 기준으로 99.99% 수준입니다. 이 외에 지속해서 강화되는 대표 분야는 보안 쪽입니다. 아무래도 데이터베이스이다 보니 각종 규제 준수부터 중요 데이터 보안까지 신경 쓸 것이 많죠. 관련해 마이크로소프트에서 네트워크 쪽의 보안 강화를 위해 답을 하나 내놨습니다. 아직 프리뷰 버전이긴 한데요 MySQL과 PostgreSQL 서비스를 위한 VNet 서비스 엔드포인트(Virtual Network Service Endpoint) 프리뷰를 공개했습니다. 

VNet 서비스 지원이 뭐가 좋은가? 가상 서브넷을 통해 중요 데이터베이스 접근에 대한 네트워크 수준의 보안 수준을 높일 수 있다는 것, 이게 좋은 것이죠. VNet 서비스 엔드포인트를 적용하면 애저 환경에서 사용하는 MySQL과 PostgreSQL 서비스 관련 트래픽 모두를 애저 백본 상에 담아 둘 수 있습니다. 다음 그림을 보면 이해가 빠를 것입니다. 실제 공용 IP가 아니라 서브넷 상에서 사설 IP를 데이터베이스 서비스에 부여합니다. 인터넷을 통해 데이터베이스 서비스의 IP로 바로 접근할 수 없죠. 


그렇다면 온프레미스 시스템이 바라보는 데이터베이스가 애저에 올려진 MySQL이나 PostgreSQL 서비스라면? 이 경우는 애저 방화벽의 NAT 룰 설정을 통해 연결하면 됩니다. 온프레미스에 있는 서버와 클라우드에 있는 데이터베이스 서버는 서로 출발지 IP와 목적지 IP를 알아야 합니다. 하지만 서브넷 상에서 가상 IP를 데이터베이스에 부여하면 온프레미스 서버가 목적지 IP를 찾아갈 수 없죠. 그래서 중간에 애저 방화벽인 NAT을 통해 주소를 변환해 연결해 주는 것입니다. 반대로 MySQL이나 PostgreSQL 서비스에 연결하는 엔드포인트가 애저 내에 있으면 모든 트래픽이 애저 백본 상 서브넷 간에 보안 정책에 따라 안전하게 오갑니다. 

VNet 서비스 엔드포인트 기능을 활성화하면 데이터베이스 서비스의 주소가 사설 IP로 바뀝니다. 온프레미스와의 연결도 고려해야 하면 앞서 언급한 데로 애저 방화벽 설정을 하면 됩니다. 

VNet 서비스 엔드포인트의 기능과 효과가 궁금하다면 관련 소개 문서를 참조 바랍니다.