같이 일하는 팀에서 요청이 들어왔다.
1. DB 접속 문제
Q. IDC 내부 서버에서 Azure Synapse DB Connect가 안되는데 확인해 주실 수 있을까요??
기본적으로 IDC 내부 서버라면 IDC VPN을 타고 연결된 Azure VPN과 연결된다. 이 경우 VPN 방화벽을 허용해주어야 하고 Azure에서도 로컬 네트워크 게이트웨이에 해당 IP나 대역을 추가해 주어야 한다.
또한 Azure Synapse 작업 영역에서 해당하는 IP 대역을 추가해주어야 정상적으로 Synapse DB에 대한 Connect가 가능하다. IDC 내부 서버에서 접속하는 것이기 때문에 회사 내부 네트워크에서 DB 커넥트는 가능하다.
JDBC 드라이버를 설치한 후 인증 방법을 [Active Directory - Password]로 변경하여 Azure 계정으로 Connect가 가능하다. 물론 Synapse 관련 Entra ID에 해당 계정이 사용자로 추가되어 있어야 한다. 물론 구독과 IAM 관련 권한 역시 있어야 한다. DB Connect가 가능한 권한을 부여하여 협업하는 팀에게 전달하였다.
Q. 그래도 접속이 안되는데 이 부분 확인 가능할까요?
A. 일단 이 경우 Connect 에러 메세지를 보면 된다.
1. Case 1
다음과 같이 데이터베이스 이름 및 자격 증명을 확인하라는 메시지가 나오는 경우 보통 자격 증명이 문제다. 아래쪽에 request 할 때 사용자 이름 및 비밀번호가 잘못되었다고 나오기 때문이다.
=> 이 경우 Connect 시 Azure Active Directory 자격 증명으로 넣지 않아서 발생한다.
2. Case 2
다음과 같이 에러가 나오는 경우 방화벽에서 해당 IP 대역이 허용되어 있지 않은 경우이다. 이 경우 방화벽을 허용해주면 대부분 해결된다. VPN 담당자에게 연락하여 VPN 장비에서 Azure로 가는 1433 포트를 허용해 달라고 요청하면 된다.
3. Case 3
다음과 같이 위와 동일한 에러가 발생하지만 IP 대역대가 AWS 공인 IP 대역인 경우. 사실 이번 요청은 Case 3에 해당한다. 담당자분들간 커뮤니케이션 과정에서 IDC 내부 서버라고 요청이 왔지만 실제로 해당 서버는 AWS에 운영 중인 서버였다.
IDC 내부 서버에서 Azure로 붙고 있는 줄 알았지만 알아보니 실제로는 AWS to Azure로 구성되어 있었다. DB connect 할 때 3.36... 3.37... 15... 대역으로 안 붙는다는 에러 메시지를 보고 싸했는데 10.75... 대역을 보고 바로 알아차렸어야 했는데 AWS가 메인이 아니기도 하고 담당자분께서 IDC 내부 서버라는 말에 확인도 안 해본 내 실수다.
계속 심증으로는 "VPN을 타는게 아니라 공인망을 타고 Azure로 들어오는 것 같은데?"라는 생각이 들었는데 역시나 공인망을 통해서 Azure로 들어오고 있었다. AWS 공인 IP 대역은 눈에 잘 띄었는데 내부 IP 대역은 IDC 내부 IP 대역과 비슷하여 혼동하였던 것이다.
2. 해결 방법
사실 이 경우에는 해결 방법이 더 간단하다.
1. WAF 방화벽 허용
WAF 사용자 지정 규칙에서 해당 IP 주소를 규칙에 추가한 후 저장한다.
2. Synapse 네트워킹에서 해당 IP 또는 대역 허용
네트워킹 탭에서 액세스 가능한 IP 또는 대역을 방화벽 규칙에 추가한다.
3. AWS 보안 그룹에서 1433 포트 아웃바운드 허용
나는 AWS 담당자가 아니기 때문에 직접 보안 그룹을 수정하지 못하기 때문에 담당자 분께 아웃바운드 트래픽을 허용해 달라고 요청하면 된다.
마지막으로 해당 일련의 작업이 끝난 후에 DB Connect 테스트 하면 정상적으로 커넥트 되는 것을 확인할 수 있다. 만약 요청이 들어올 때 IP가 모호하다면 정확한 소스를 확인해 보는 습관을 들이자.
'Trouble shooting' 카테고리의 다른 글
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!