Data Connectivity Proxy
Data Connectivity Proxy (데이터 연결 프록시)
DCP(Data Connectivity Proxy)는 인바운드 방화벽 포트를 열거나 네트워크를 공용 인터넷에 노출하지 않고도 Snowflake가 사설 네트워크(온프레미스, VPC 내부, 하이브리드 환경)의 데이터 소스에 안전하게 접근할 수 있게 해줘요. 경량 에이전트가 네트워크에서 실행되며 안전한 암호화 터널을 통해 데이터를 전달해요.
본문
DCP는 네트워크에서 경량 에이전트 프로세스를 실행해 동작해요. 에이전트는 포트 443에서 Snowflake로 단일 아웃바운드 연결을 만들고 암호화된 터널을 설정해요. Snowflake는 이 터널을 통해 요청을 라우팅해 사설 데이터 소스에 도달해요. 방화벽에는 아웃바운드 트래픽만 보여요. 즉, 인바운드 리스너도, 공용 IP도, VPN도 필요 없어요.
DCP는 AWS, Azure, Google Cloud에서 Standard, Enterprise, Business Critical 에디션에서 사용할 수 있어요.
DCP를 사용해야 하는 경우
Snowflake가 공용 인터넷에서 접근할 수 없는 데이터 소스에 도달해야 할 때 DCP를 사용해요.
- VPC 또는 VNet 내부의 데이터베이스(PostgreSQL, MySQL, Oracle, SQL Server, MongoDB 및 유사 소스)
- 기업 방화벽 뒤의 온프레미스 데이터베이스
- 네트워크 내에서는 접근 가능하지만 인터넷으로는 도달할 수 없는 모든 소스
- 인바운드 방화벽 규칙을 여는 것이 정책상 금지된 환경(제로 트러스트, 인바운드 전면 차단 아키텍처)
DCP는 현재 Snowflake Openflow와 함께 사용할 수 있어요. 추가 Snowflake 서비스 지원은 향후 릴리스에서 계획돼요.
DCP가 다른 사설 연결 옵션과 비교되는 방식
Snowflake는 여러 가지 사설 네트워크 접근 옵션을 제공해요. 올바른 선택은 에디션, 트래픽 방향, 네트워크 토폴로지에 따라 달라져요.
| 기능 | DCP | PrivateLink / PSC / PE | 고정 egress + IP 허용 목록 |
|---|---|---|---|
| 방향 | 네트워크 → Snowflake | Snowflake → 네트워크 | Snowflake → 네트워크 |
| 에디션 | Standard, Enterprise, Business Critical | Business Critical 이상만 | Standard, Enterprise, Business Critical |
| 필요한 인바운드 포트 | 없음 | 없음 | 상대 측에 필요 |
| 클라우드 및 온프레미스 간 동작 | 예 | CSP 네이티브만 | 예 |
| 제로 트러스트 호환 | 예 | 예 | IP 기반 규칙을 허용하는 정책일 때만 |
| 설정 복잡도 | 낮음(에이전트 배포, bootstrap 실행) | 높음(VPC/VNet 구성, DNS, 피어링) | 낮음(방화벽 허용 목록에 IP 추가) |
사설 네트워크의 소스에서 데이터를 가져와야 하고 인바운드 포트를 여는 것이 불가능하거나 바람직하지 않을 때 DCP를 사용해요. 공용 인터넷을 경유하지 않는 완전히 사설인 네트워크 연결이 필요할 때(CSP 네이티브 구성 필요) 아웃바운드 PrivateLink / PSC / PE를 사용해요. 방화벽 정책이 IP 기반 인바운드 규칙을 허용할 때 고정 egress IP를 사용해요.
DCP와 PrivateLink는 상호 배타적이지 않아요. Snowflake 계정이 인바운드 접근에 PrivateLink를 사용한다면, 사설 데이터 소스에 대한 아웃바운드 연결에는 여전히 DCP를 사용할 수 있어요. DCP 에이전트 자체는 공용 DCP 호스트 이름의 포트 443에 연결해야 해요. PrivateLink 엔드포인트를 통해 에이전트를 연결하는 것은 지원되지 않아요.
아키텍처
DCP에는 세 가지 주요 구성 요소가 있어요.
DCP 에이전트
데이터 소스 근처의 네트워크에 배포하는 경량 프로세스예요. Snowflake의 릴레이 인프라에 단일 아웃바운드 TLS 연결을 만들고 유지해요. 커넥터 유형이나 데이터 내용을 알지 못하며 TCP 레벨에서만 동작해요.
Snowflake 릴레이
터널의 다른 쪽 끝을 유지하는 Snowflake 운영 인프라예요. 커넥터가 데이터베이스 연결을 열어야 할 때 릴레이가 TCP 스트림을 터널을 통해 적절한 에이전트로 라우팅해요. 프록시가 업그레이드되거나 재시작될 때 릴레이가 재연결을 투명하게 처리해요.
DCP 컨트롤 플레인
에이전트 신원, 인증서 발급·교체, 라우팅 테이블 배포, 상태 모니터링을 관리하는 Snowflake 운영 서비스예요. 에이전트는 아웃바운드 포트 443을 통해 DCP 컨트롤 플레인과 통신해요.
데이터 경로
Connector (on Snowflake)
↓ TCP connection request
Snowflake relay (routes by destination FQDN:port)
↓ Encrypted tunnel (mTLS)
DCP agent (on your network)
↓ Direct TCP connection
Data source (database, private endpoint)
에이전트는 TCP 레벨의 통과(pass-through) 역할만 해요. 데이터를 검사, 파싱, 버퍼링, 저장하지 않아요. 소스 자격 증명과 커넥터 로직은 전적으로 Snowflake 내에 남아 있어요.
라우팅
라우팅은 목적지 기반으로 이루어져요. 커넥터가 소스 호스트와 포트를 지정하면, 릴레이가 해당 host:port를 커버하는 DCP 클라이언트의 연결된 외부 접근 통합(EAI)을 조회해 그쪽으로 연결을 라우팅해요. CREATE DATA CONNECTIVITY PROXY 또는 ALTER DATA CONNECTIVITY PROXY에서 EXTERNAL_ACCESS_INTEGRATIONS를 사용해 EAI를 DCP 객체와 연결해요. 커넥터별 터널 참조는 없으며, 목적지가 경로를 결정해요.
각 TCP 연결은 독립적인 종단 간 암호화 터널을 만들어요. 연결 간 스트림 멀티플렉싱은 없어요.
전제 조건
DCP를 설정하기 전에:
- ACCOUNTADMIN 역할 또는
CREATE DATA CONNECTIVITY PROXY권한이 있는 역할이 있어야 해요. - 다음 조건을 갖춘 네트워크의 호스트(VM, 베어메탈, 컨테이너 호스트)가 있어야 해요.
- Linux OS, 커널 5.x 이상
- Docker 또는 OCI 호환 컨테이너 런타임
- 최소 1 vCPU와 512MB 메모리
- 포트 443 아웃바운드 인터넷 접근
- 연결하려는 데이터 소스에 대한 네트워크 접근
- Kubernetes는 필요하지 않아요.
설정 절차는 데이터 연결 프록시 설정을 참고해요.
더 알아보기 (Learn more)
- Set up Data Connectivity Proxy — 설정 절차
- Monitor Data Connectivity Proxy — 모니터링
- Data Connectivity Proxy reference — SQL 구문·제한 사항
- Data Connectivity Proxy security — 보안 고려 사항