Azure 가상 네트워크에서 Azure Databricks 배포(VNet 삽입)
이 문서에서는 VNet 삽입이라고도 하는 Azure 가상 네트워크에 Azure Databricks 작업 영역을 배포하는 방법을 설명합니다.
VNet 삽입을 사용하여 네트워크 사용자 지정
Azure Databricks의 기본 배포는 Azure의 완전 관리형 서비스입니다. Azure VNet(가상 네트워크)은 잠긴 리소스 그룹에 배포됩니다. 모든 클래식 컴퓨팅 평면 리소스는 해당 VNet과 연결됩니다. 네트워크 사용자 지정이 필요한 경우 사용자 고유의 가상 네트워크에 Azure Databricks 클래식 컴퓨팅 평면 리소스를 배포할 수 있습니다. 다음을 수행할 수 있습니다.
- 서비스 엔드포인트 또는 Azure 프라이빗 엔드포인트를 사용하여 보다 안전한 방식으로 Azure Databricks를 다른 Azure 서비스(예: Azure Storage)에 연결합니다.
- 사용자 정의 경로를 사용하여 온-프레미스 데이터 원본에 연결합니다. Azure Databricks에 대한 사용자 정의 경로 설정을 참조하세요.
- Azure Databricks를 네트워크 가상 어플라이언스에 연결하여 모든 아웃바운드 트래픽을 검사하고 허용 및 거부 규칙에 따라 작업을 수행합니다. 옵션 참조 : 가상 어플라이언스 또는 방화벽을 사용하여 Azure Databricks 트래픽 라우팅
- 사용자 지정 DNS를 사용하도록 Azure Databricks를 구성합니다. 옵션: 사용자 지정 DNS 구성을 참조하세요.
- 송신 트래픽 제한을 지정하도록 NSG(네트워크 보안 그룹) 규칙을 구성합니다.
또한 Azure Databricks 클래식 컴퓨팅 평면 리소스를 사용자 고유의 VNet에 배포하면 유연한 CIDR 범위를 활용할 수 있습니다. VNet의 경우 CIDR 범위 크기를 /16
-/24
사용할 수 있습니다. 서브넷의 경우 IP 범위를 다음과 같이 /26
작게 사용합니다.
Important
기존 작업 영역의 VNet을 바꿀 수 없습니다. 현재 작업 영역에서 필요한 수의 활성 클러스터 노드를 수용할 수 없는 경우 더 큰 VNet에서 다른 작업 영역을 만드는 것이 좋습니다. 이 자세한 마이그레이션 단계에 따라 이전 작업 영역에서 새 작업 영역으로 리소스(Notebook, 클러스터 구성, 작업)를 복사합니다.
가상 네트워크 요구 사항
Azure Databricks 작업 영역을 배포하는 VNet은 다음 요구 사항을 충족해야 합니다.
- 지역: VNet은 Azure Databricks 작업 영역과 동일한 지역 및 구독에 있어야 합니다.
- 구독: VNet은 Azure Databricks 작업 영역과 동일한 구독에 있어야 합니다.
- 주소 공간: VNet에 대해
/16
에서/24
사이의 CIDR 블록과 두 서브넷(컨테이너 서브넷과 호스트 서브넷)에 대해 최대/26
의 CIDR 블록이 있습니다. VNet 및 해당 서브넷의 크기에 따른 최대 클러스터 노드에 대한 지침은 주소 공간 및 최대 클러스터 노드를 참조하세요. - 서브넷: VNet은 Azure Databricks 작업 영역에 전용으로 사용할 수 있는 두 개의 서브넷 즉, 컨테이너 서브넷(프라이빗 서브넷이라고도 함)과 호스트 서브넷(퍼블릭 서브넷이라고도 함)을 포함해야 합니다. 보안 클러스터 연결을 사용하여 작업 영역을 배포하는 경우 컨테이너 서브넷과 호스트 서브넷 모두 프라이빗 IP를 사용합니다. 작업 영역에서 서브넷을 공유하거나 Azure Databricks 작업 영역에서 사용되는 서브넷에 다른 Azure 리소스를 배포할 수 없습니다. VNet 및 해당 서브넷의 크기에 따른 최대 클러스터 노드에 대한 지침은 주소 공간 및 최대 클러스터 노드를 참조하세요.
주소 공간 및 최대 클러스터 노드
더 작은 가상 네트워크가 있는 작업 영역은 더 큰 가상 네트워크를 사용하는 작업 영역보다 더 빠르게 IP 주소(네트워크 공간)가 부족할 수 있습니다. 두 서브넷(컨테이너 서브넷 및 /24
호스트 서브넷)에 대해 VNet과 CIDR 블록 간에 /16
CIDR 블록을 /26
사용합니다. 서브넷에 /28
대해 CIDR 블록을 만들 수 있지만 Databricks는 서브넷보다 /26
작은 서브넷을 권장하지 않습니다.
VNet 주소 공간에 대한 CIDR 범위는 작업 영역에서 사용할 수 있는 클러스터 노드의 최대 수에 영향을 줍니다.
Azure Databricks 작업 영역에는 VNet에 컨테이너 서브넷과 호스트 서브넷이라는 두 개의 서브넷이 필요합니다. Azure는 각 서브넷에 5개의 IP를 예약합니다. Azure Databricks에는 각 클러스터 노드에 대해 호스트 서브넷의 호스트에 대한 IP 주소 1개와 컨테이너 서브넷의 컨테이너에 대한 IP 주소 1개 등 두 개의 IP가 필요합니다.
- VNet의 모든 주소 공간을 사용하지 않을 수 있습니다. 예를 들어 하나의 VNet에 여러 작업 영역을 만들 수 있습니다. 작업 영역에서 서브넷을 공유할 수 없으므로 총 VNet 주소 공간을 사용하지 않는 서브넷을 원할 수 있습니다.
- VNet의 주소 공간 내에 있고 해당 VNet에 있는 현재 또는 미래의 서브넷의 주소 공간과 겹치지 않는 두 개의 새 서브넷에 주소 공간을 할당해야 합니다.
다음 표에서는 네트워크 크기에 따라 최대 서브넷 크기를 보여 드립니다. 이 표에서는 주소 공간을 차지 하는 추가 서브넷이 없다고 가정합니다. 기존 서브넷이 있거나 다른 서브넷에 대한 주소 공간을 예약하려는 경우 더 작은 서브넷을 사용합니다.
VNet 주소 공간(CIDR) | 다른 서브넷을 가정하지 않는 최대 Azure Databricks 서브넷 크기(CIDR) |
---|---|
/16 |
/17 |
/17 |
/18 |
/18 |
/19 |
/20 |
/21 |
/21 |
/22 |
/22 |
/23 |
/23 |
/24 |
/24 |
/25 |
서브넷 크기에 따라 최대 클러스터 노드를 찾으려면 다음 표를 사용합니다. 서브넷별 IP 주소 열은 5개의 Azure 예약 IP 주소를 포함합니다. 맨 오른쪽 열은 해당 크기의 서브넷으로 프로비전된 작업 영역에서 동시에 실행할 수 있는 클러스터 노드 수를 나타냅니다.
서브넷 크기(CIDR) | 서브넷당 IP 주소 | 최대 Azure Databricks 클러스터 노드 |
---|---|---|
/17 |
32768 | 32763 |
/18 |
16384 | 16379 |
/19 |
8192 | 8187 |
/20 |
4096 | 4091 |
/21 |
2048 | 2043 |
/22 |
1024 | 1019 |
/23 |
512 | 507 |
/24 |
256 | 251 |
/25 |
128 | 123 |
/26 |
64 | 59 |
보안 클러스터 연결을 사용하는 경우 송신 IP 주소
VNet 삽입을 사용하는 작업 영역에서 보안 클러스터 연결을 사용하도록 설정하는 경우 Databricks는 작업 영역에 안정적인 송신 공용 IP가 있는 것이 좋습니다.
안정적인 송신 공용 IP 주소는 외부 허용 목록에 추가할 수 있으므로 유용합니다. 예를 들어 안정적인 송신 IP 주소를 사용하여 Azure Databricks에서 Salesforce로 연결합니다. IP 액세스 목록을 구성하는 경우 해당 공용 IP 주소를 허용 목록에 추가해야 합니다. 작업 영역에 대한 IP 액세스 목록 구성을 참조하세요.
Warning
Microsoft는 2025년 9월 30일에 Azure의 가상 머신에 대한 기본 아웃바운드 액세스 연결이 사용 중지될 것이라고 발표했습니다. 이 공지 사항을 참조하세요. 즉, 안정적인 송신 공용 IP가 아닌 기본 아웃바운드 액세스를 사용하는 Azure Databricks 작업 영역은 해당 날짜 이후에도 계속 작동하지 않을 수 있습니다. Databricks는 해당 날짜 이전에 작업 영역에 대한 명시적 아웃바운드 메서드를 추가하는 것이 좋습니다.
안정적인 송신 공용 IP를 구성하려면 VNet 주입을 사용하여 송신을 참조 하세요.
공유 리소스 및 피어링
DNS와 같은 공유 네트워킹 리소스가 필요한 경우 Databricks는 허브 및 스포크 모델에 대한 Azure 모범 사례를 따르는 것이 좋습니다. VNet 피어링을 사용하여 서로 격리된 스포크 상태를 유지하면서 작업 영역 VNet의 개인 IP 공간을 허브로 확장합니다.
VNet에 다른 리소스가 있거나 피어링을 사용하는 경우 Databricks는 동일한 VNet에 있거나 해당 VNet에 피어링된 다른 네트워크 및 서브넷에 연결된 NSG(네트워크 보안 그룹)에 거부 규칙을 추가하는 것이 좋습니다. Azure Databricks 컴퓨팅 리소스에 대한 연결을 제한하도록 인바운드 및 아웃바운드 연결 모두에 대한 연결 거부 규칙을 추가합니다. 클러스터가 네트워크의 리소스에 액세스해야 하는 경우 요구 사항을 충족하는 데 필요한 최소한의 액세스만 허용하는 규칙을 추가합니다.
관련 정보는 네트워크 보안 그룹 규칙을 참조 하세요.
Azure Portal을 사용하여 Azure Databricks 작업 영역 만들기
이 섹션에서는 Azure Portal에서 Azure Databricks 작업 영역을 만들고 사용자 고유의 기존 VNet에 배포하는 방법을 설명합니다. Azure Databricks는 지정한 CIDR 범위를 사용하여 두 개의 새 서브넷이 아직 없는 경우 VNet을 업데이트합니다. 이 서비스는 또한 새 네트워크 보안 그룹으로 서브넷을 업데이트하고 인바운드 및 아웃바운드 규칙을 구성하고 마지막으로 업데이트된 VNet에 작업 영역을 배포합니다. VNet의 구성을 더 자세히 제어하려면 포털 대신 Azure-Databricks에서 제공하는 ARM(Azure Resource Manager) 템플릿을 사용합니다. 예를 들어 기존 네트워크 보안 그룹을 사용하거나 고유한 보안 규칙을 만듭니다. Azure Resource Manager 템플릿을 사용한 고급 구성을 참조하세요.
작업 영역을 만드는 사용자에게 해당 Virtual Network에 네트워크 기여자 역할 또는 권한과 Microsoft.Network/virtualNetworks/subnets/write
권한이 할당된 사용자 지정 역할이 할당 Microsoft.Network/virtualNetworks/subnets/join/action
되어야 합니다.
Azure Databricks 작업 영역을 배포할 VNet을 구성해야 합니다. 기존 VNet을 사용하거나 새 VNet을 만들 수 있지만 VNet은 만들려는 Azure Databricks 작업 영역과 동일한 지역 및 동일한 구독에 있어야 합니다. VNet은 /16에서 /24 사이의 CIDR 범위로 크기가 조정되어야 합니다. 더 많은 요구 사항은 가상 네트워크 요구 사항을 참조 하세요.
작업 영역을 구성할 때 기존 서브넷을 사용하거나 새 서브넷의 이름 및 IP 범위를 지정합니다.
Azure Portal에서 + 리소스 만들기 > 분석 > Azure Databricks를 선택하거나 Azure Databricks를 검색하고 만들기 또는 + 추가를 클릭하여 Azure Databricks 서비스 대화 상자를 시작합니다.
사용자 고유의 VNet 빠른 시작에서 Azure Databricks 작업 영역 만들기에 설명된 구성 단계를 따릅니다.
네트워킹 탭에서 가상 네트워크 필드에서 사용할 VNet을 선택합니다.
Important
선택기에서 네트워크 이름이 표시되지 않으면 작업 영역에 대해 지정한 Azure 지역이 원하는 VNet의 Azure 지역과 일치하는지 확인합니다.
서브넷의 이름을 지정하고 크기
/26
까지 블록에 CIDR 범위를 제공합니다. VNet 및 해당 서브넷의 크기에 따른 최대 클러스터 노드에 대한 지침은 주소 공간 및 최대 클러스터 노드를 참조하세요. 작업 영역을 배포한 후에는 서브넷 CIDR 범위를 변경할 수 없습니다.- 기존 서브넷을 지정하려면 기존 서브넷의 정확한 이름을 지정합니다. 기존 서브넷을 사용하는 경우 작업 영역 만들기 양식의 IP 범위를 기존 서브넷의 IP 범위와 정확히 일치하도록 설정합니다.
- 새 서브넷을 만들려면 해당 VNet에 아직 없는 서브넷 이름을 지정합니다. 서브넷은 지정된 IP 범위로 만들어집니다. 기존 서브넷에 아직 할당되지 않은 VNet의 IP 범위 내에서 IP 범위를 지정해야 합니다.
Azure Databricks에는 서브넷 이름이 80자 이하여야 합니다.
서브넷은 클러스터 내부 통신을 허용하는 규칙을 포함하는 연결된 네트워크 보안 그룹 규칙을 가져옵니다. Azure Databricks는 리소스 공급자를 통해
Microsoft.Databricks/workspaces
두 서브넷을 업데이트할 수 있는 권한을 위임했습니다. 이러한 권한은 추가한 다른 네트워크 보안 그룹 규칙이나 모든 네트워크 보안 그룹에 포함된 기본 네트워크 보안 그룹 규칙이 아니라 Azure Databricks에 필요한 네트워크 보안 그룹 규칙에만 적용됩니다.만들기를 클릭하여 Azure Databricks 작업 영역을 VNet에 배포합니다.
Azure Resource Manager 템플릿을 사용한 고급 구성
VNet의 구성을 더 자세히 제어하려면 포털 UI 기반 자동 VNet 구성 및 작업 영역 배포 대신 다음 ARM(Azure Resource Manager) 템플릿을 사용합니다. 예를 들어 기존 서브넷, 기존 네트워크 보안 그룹을 사용하거나 고유한 보안 규칙을 추가합니다.
사용자 지정 Azure Resource Manager 템플릿 또는 Azure Databricks VNet 주입용 작업 영역 템플릿을 사용하여 기존 VNet에 작업 영역을 배포하는 경우, 호스트 및 컨테이너 서브넷을 만들고, 네트워크 보안 그룹을 각 서브넷에 할당하고, 작업 영역을 배포하기 전에 서브넷을 Microsoft.Databricks/workspaces
리소스 공급자에게 위임합니다. 배포하는 각 작업 영역에 대해 별도의 서브넷 쌍을 보유해야 합니다.
올인원 템플릿
하나의 템플릿을 사용하여 VNet 및 Azure Databricks 작업 영역을 만들려면 Azure Databricks VNet 주입 작업 영역용 올인원 템플릿을 사용합니다.
가상 네트워크 템플릿
템플릿을 사용하여 적절한 서브넷이 있는 VNet을 만들려면 Databricks VNet 주입용 VNet 템플릿을 사용합니다.
Azure Databricks 작업 영역 템플릿
템플릿을 사용하여 기존 VNet에 Azure Databricks 작업 영역을 배포하려면 Azure Databricks VNet 주입용 작업 영역 템플릿을 사용합니다.
작업 영역 템플릿을 사용하면 기존 VNet을 지정하고 기존 서브넷을 사용할 수 있습니다.
- 배포하는 각 작업 영역에 대해 별도의 호스트/컨테이너 서브넷 쌍이 있어야 합니다. 작업 영역 간에 서브넷을 공유하거나 Azure Databricks 작업 영역에서 사용하는 서브넷에 다른 Azure 리소스를 배포하는 것은 지원되지 않습니다.
- VNet의 호스트 및 컨테이너 서브넷에는 네트워크 보안 그룹이 연결되어 있어야 하며, 이 Azure Resource Manager 템플릿을
Microsoft.Databricks/workspaces
사용하여 작업 영역을 배포하기 전에 서비스에 위임해야 합니다. - 올바르게 위임된 서브넷이 있는 VNet을 만들려면 Databricks VNet 주입용 VNet 템플릿을 사용합니다.
- 호스트 및 컨테이너 서브넷을 아직 위임하지 않은 경우 기존 VNet을 사용하려면 서브넷 위임 추가 또는 제거를 참조하세요.
네트워크 보안 그룹 규칙
다음 표에는 Azure Databricks에서 사용하는 현재 네트워크 보안 그룹 규칙이 표시됩니다. Azure Databricks가 이 목록에서 규칙을 추가하거나 기존 규칙의 범위를 변경해야 하는 경우 사전 알림을 받게 됩니다. 이 문서와 테이블은 이러한 수정이 발생할 때마다 업데이트됩니다.
Azure Databricks가 네트워크 보안 그룹 규칙을 관리하는 방법
다음 섹션에 나열된 NSG 규칙은 VNet의 호스트 및 컨테이너 서브넷 Microsoft.Databricks/workspaces
을 서비스에 위임하여 Azure Databricks가 NSG에서 자동으로 프로비전하고 관리하는 규칙을 나타냅니다. 이러한 NSG 규칙을 업데이트하거나 삭제할 수 있는 권한이 없으며, 이렇게 하려는 시도는 서브넷 위임에 의해 차단됩니다. Microsoft가 VNet에서 Azure Databricks 서비스를 안정적으로 운영하고 지원할 수 있도록 Azure Databricks는 이러한 규칙을 소유해야 합니다.
이러한 NSG 규칙 중 일부에는 원본 및 대상으로 할당된 VirtualNetwork 가 있습니다. Azure에서 서브넷 수준 서비스 태그가 없는 경우 디자인을 간소화하기 위해 구현되었습니다. 클러스터 A가 동일한 작업 영역의 클러스터 B에 연결할 수 없도록 모든 클러스터는 내부적으로 두 번째 네트워크 정책 계층으로 보호됩니다. 이는 작업 영역이 동일한 고객 관리형 VNet의 다른 서브넷 쌍에 배포된 경우에도 여러 작업 영역에 적용됩니다.
Important
Databricks는 동일한 VNet에 있거나 해당 VNet에 피어된 다른 네트워크 및 서브넷에 연결된 NSG(네트워크 보안 그룹)에 거부 규칙을 추가하는 것이 좋습니다. Azure Databricks 컴퓨팅 리소스에 대한 연결을 제한하도록 인바운드 및 아웃바운드 연결 모두에 대한 연결 거부 규칙을 추가합니다. 클러스터가 네트워크의 리소스에 액세스해야 하는 경우 요구 사항을 충족하는 데 필요한 최소한의 액세스만 허용하는 규칙을 추가합니다.
작업 영역에 대한 네트워크 보안 그룹 규칙
이 섹션의 정보는 2020년 1월 13일 이후에 만든 Azure Databricks 작업 영역에만 적용됩니다. 2020년 1월 13일 SCC(보안 클러스터 연결) 릴리스 이전에 작업 영역이 만들어진 경우 다음 섹션을 참조하세요.
이 표에서는 작업 영역에 대한 네트워크 보안 그룹 규칙을 나열하고 SCC(보안 클러스터 연결)를 사용하지 않도록 설정한 경우에만 포함된 두 개의 인바운드 보안 그룹 규칙을 포함합니다.
Direction | 프로토콜 | 원본 | 원본 포트 | 대상 | 대상 포트 | 사용됨 |
---|---|---|---|---|---|---|
인바운드 | 모두 | VirtualNetwork | 모두 | VirtualNetwork | 모두 | 기본값 |
인바운드 | TCP | AzureDatabricks(서비스 태그) SCC를 사용하지 않도록 설정한 경우에만 |
모두 | VirtualNetwork | 22 | 공용 IP |
인바운드 | TCP | AzureDatabricks(서비스 태그) SCC를 사용하지 않도록 설정한 경우에만 |
모두 | VirtualNetwork | 5557 | 공용 IP |
아웃바운드 | TCP | VirtualNetwork | 모두 | AzureDatabricks(서비스 태그) | 443, 3306, 8443-8451 | 기본값 |
아웃바운드 | TCP | VirtualNetwork | 모두 | SQL | 3306 | 기본값 |
아웃바운드 | TCP | VirtualNetwork | 모두 | 스토리지 | 443 | 기본값 |
아웃바운드 | 모두 | VirtualNetwork | 모두 | VirtualNetwork | 모두 | 기본값 |
아웃바운드 | TCP | VirtualNetwork | 모두 | EventHub | 9093 | 기본값 |
참고 항목
아웃바운드 규칙을 제한하는 경우 Databricks는 포트 111 및 2049를 열어 특정 라이브러리 설치를 사용하도록 설정하는 것이 좋습니다.
Important
Azure Databricks는 글로벌 Azure 퍼블릭 클라우드 인프라에 배포되는 Microsoft Azure 자사 서비스입니다. 컨트롤 플레인의 공용 IP와 고객 컴퓨팅 평면을 비롯한 서비스 구성 요소 간의 모든 통신은 Microsoft Azure 네트워크 백본 내에 유지됩니다. Microsoft 글로벌 네트워크도 참조하세요.
문제 해결
작업 영역 만들기 오류
서브넷 <subnet-id>
에서 서비스 연결 링크를 참조하려면 다음 위임 [Microsoft.Databricks/workspaces]이 필요합니다.
가능한 원인: 호스트 및 컨테이너 서브넷이 서비스에 위임 Microsoft.Databricks/workspaces
되지 않은 VNet에서 작업 영역을 만들고 있습니다. 각 서브넷에는 네트워크 보안 그룹이 연결되어 있어야 하며 제대로 위임되어야 합니다. 자세한 내용은 가상 네트워크 요구 사항을 참조하세요.
서브넷 <subnet-id>
이 작업 영역에서 이미 사용 중입니다. <workspace-id>
가능한 원인: 기존 Azure Databricks 작업 영역에서 이미 사용 중인 호스트 및 컨테이너 서브넷이 있는 VNet에서 작업 영역을 만들고 있습니다. 단일 서브넷에서 여러 작업 영역을 공유할 수 없습니다. 배포하는 각 작업 영역에 대해 호스트 및 컨테이너 서브넷의 새로운 쌍을 보유해야 합니다.
문제 해결
연결할 수 없는 인스턴스: SSH를 통해 리소스에 연결할 수 없습니다.
가능한 원인: 제어 평면에서 작업자로의 트래픽이 차단됩니다. 온-프레미스 네트워크에 연결된 기존 VNet에 배포하는 경우 Azure Databricks 작업 영역을 온-프레미스 네트워크에 연결에서 제공된 정보를 사용하여 설정을 검토합니다.
예기치 않은 시작 실패: 클러스터를 설정하는 동안 예기치 않은 오류가 발생했습니다. 문제가 지속되면 다시 시도하고 Azure Databricks에 문의하세요. 내부 오류 메시지: Timeout while placing node
.
가능한 원인: 작업자에서 Azure Storage 엔드포인트로의 트래픽이 차단됩니다. 사용자 지정 DNS 서버를 사용하는 경우 VNet에서 DNS 서버의 상태도 확인합니다.
클라우드 공급자 시작 실패: 클러스터를 설정하는 동안 클라우드 공급자 오류가 발생했습니다. 자세한 내용은 Azure Databricks 가이드를 참조하세요. Azure 오류 코드: AuthorizationFailed/InvalidResourceReference.
가능한 원인: VNet 또는 서브넷이 더 이상 존재하지 않습니다. VNet 및 서브넷이 존재하는지 확인합니다.
클러스터가 종료되었습니다. 이유: Spark 시작 실패: Spark를 제시간에 시작할 수 없습니다. 이 문제는 오작동하는 Hive 메타스토어, 잘못된 Spark 구성 또는 오작동하는 초기화 스크립트로 인해 발생할 수 있습니다. 이 문제를 해결하려면 Spark 드라이버 로그를 참조하고 문제가 지속되면 Databricks에 문의합니다. 내부 오류 메시지: Spark failed to start: Driver failed to start in time
.
가능한 원인: 컨테이너는 호스팅 인스턴스 또는 작업 영역 스토리지 계정과 통신할 수 없습니다. 다음 홉이 인터넷인 작업 영역 스토리지 계정의 서브넷에 사용자 지정 경로를 추가하여 수정합니다.