다음을 통해 공유


Databricks 서버리스 프라이빗 Git 구성

비고

Databricks 서버리스 프라이빗 Git은 공개 미리 보기로 제공됩니다. 컴퓨팅 및 네트워킹 비용은 서버리스 컴퓨팅 리소스가 외부 리소스에 연결할 때 적용됩니다. 청구 세부 정보는 Databricks 서버리스 네트워킹 비용 이해 를 참조하세요.

Databricks 서버리스 프라이빗 Git을 사용하면 서버리스 컴퓨팅 및 Azure Private Link를 사용하여 Databricks 작업 영역을 프라이빗 Git 서버에 연결할 수 있습니다. 인터넷 사용자가 액세스할 수 없는 경우 Git 서버는 프라이빗 서버입니다.

다음 다이어그램에서는 전체 시스템 아키텍처를 보여 줍니다.

Databricks 서버리스 프라이빗 Git 아키텍처

서버리스 프라이빗 Git을 사용하는 이유는 무엇인가요?

Git 서버 프록시에 비해 서버리스 프라이빗 Git은 다음과 같은 이점을 제공합니다.

  • 서버리스 Private Git은 Git 요청을 받을 때만 서버리스 컴퓨팅을 획득하며 사용하지 않을 때는 비활성 상태일 수 있습니다. 반면, Git 프록시는 사용자가 Git 요청을 제출할 때 프록시 클러스터가 활성화되어야 합니다.
  • 서버리스 프라이빗 Git은 Azure Private Link를 사용하여 프라이빗 Git 인스턴스에 안전하게 연결합니다.

요구 사항

  • 작업 영역에 대해 서버리스 컴퓨팅을 사용하도록 설정합니다.
  • 프라이빗 Git 서버를 표준 Load Balancer와 동일한 Azure VNet에 배치합니다.
  • 프라이빗 Git 서버에 서명된 인증서와 유효한 HTTPS FQDN(정규화된 도메인 이름)이 있는지 확인합니다.
  • Private Link 서비스에 대한 SLB(표준 Load Balancer)를 사용하여 VNet을 구성합니다.

서버리스 프라이빗 Git 구성

  1. 단계에 따라 VNet의 리소스에 대한 프라이빗 연결을 구성합니다. 이렇게 하면 서버리스에서 SLB 뒤에 있는 네트워크의 백 엔드로 Azure Private Link 연결을 만들 수 있습니다.
  2. NCC(네트워크 연결 구성)를 만들어 표준 부하 분산 장치에 송신을 구성합니다.
    • 프라이빗 Git에 대해 작업 영역당 하나의 NCC만 구성할 수 있습니다. 작업 영역이 여러 개인 Git 서버에 연결하는 경우 모두 동일한 NCC를 사용해야 합니다.
    • 지역 제한 및 작업 영역 첨부 파일 제한과 같은 NCC 제한 사항은 요구 사항을 참조하세요.

Azure 네트워크 연결 구성

  1. 계정 수준 액세스 권한이 있는 서비스 주체를 사용하여 계정 API 토큰을 가져옵니다.
curl --location 'https://accounts.azuredatabricks.net/oidc/accounts/{accountid}/v1/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'client_id=SP_CLIENT_ID_HERE' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default' \
  --data-urlencode 'client_secret=SP_CLIENT_SECRET_HERE'

응답에는 액세스 토큰이 포함됩니다.

{ "access_token": "...", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }

또는 Microsoft Entra ID 액세스 토큰을 사용할 수 있습니다.

BEARER_TOKEN=$(az account get-access-token --resource \
  2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query "accessToken" -o tsv)
  1. API를 사용하여 DNS 논리를 정의하는 프라이빗 엔드포인트 규칙을 추가합니다.

예제에서 다음을 지정합니다.

  • 계정 ID
  • NCC ID
  • 계정 OAuth 토큰
  • Private Link 서비스 리소스 ID
  • domain_name 목록에 있는 Git 서버의 FQDN
curl --location 'https://accounts.azuredatabricks.net/api/2.0/accounts/{accountid}/network-connectivity-configs/{nccid}/private-endpoint-rules' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer BEARER_TOKEN' \
  --data '{
    "resource_id": "/subscriptions/3f262328b/resourceGroups/rg/providers/Microsoft.Network/privateLinkServices/example",
    "domain_names": ["git-server.contoso.com"]
  }'

응답에는 프라이빗 엔드포인트 규칙 세부 정보가 포함됩니다.

{
  "rule_id": "843ba2e5-bbbb-bbbb-bbbb-7f0d55555215",
  "network_connectivity_config_id": "5a9bdc5f-c43d-41cd-9a6d-1b653e20c7d2",
  "resource_id": "/subscriptions/3f262328b/resourceGroups/rg/providers/Microsoft.Network/privateLinkServices/example",
  "endpoint_name": "databricks-5a9bdc5f-c43d-41cd-9a6d-1b653e20c7d2-pe-99cbbac3",
  "connection_state": "PENDING",
  "creation_time": 1740000647980,
  "updated_time": 1740000647949,
  "domain_names": ["git-server.contoso.com"]
}
  1. NCC 프라이빗 엔드포인트 규칙을 설정한 후 몇 분 정도 기다립니다. NCC는 보류 중인 상태의 프라이빗 엔드포인트 규칙을 표시합니다.
  2. 1단계에서 구성한 Private Link 서비스에서 보류 중인 프라이빗 엔드포인트 연결을 승인합니다.

프라이빗 엔드포인트 연결

  1. 계정 콘솔 내의 NCC로 돌아가서 설정되었는지 확인합니다.
  2. 작업 영역에서 Git 작업을 수행합니다. UI 표시기는 서버리스 프라이빗 Git이 활성 상태임을 확인합니다. 서버리스 컴퓨팅이 시작되는 동안 표시기가 표시되는 데 몇 초 정도 걸릴 수 있습니다.

구성한 후 서버리스 프라이빗 Git은 클래식 Git 프록시와 같이 이미 프로비전한 다른 형태의 프라이빗 Git 연결보다 우선합니다. 클래식 Git 프록시 클러스터가 실행 중인 경우 서버리스 프라이빗 Git을 설정한 후 종료합니다.

추가 구성

구성 파일을 사용하여 Git 작업을 사용자 지정합니다.

  1. 아래 사양에 /Workspace/.git_settings/config.json 따라 구성 파일을 만듭니다.
  2. 모든 Git 사용자에게 구성 파일 및 해당 사용자가 참조하는 CA 인증서 파일에 대한 보기 권한을 부여합니다.
  3. Git 폴더 복제와 같은 Git 작업을 수행하여 Git 원격에 대한 연결의 유효성을 검사합니다.
  4. 시스템에서 구성 파일 변경 내용을 적용하는 데 최대 1분이 걸릴 수 있습니다.

최상위 구성 파일 구조

{
  "default": { ... },  // Optional global settings
  "remotes": [ ... ]   // Optional list of per-remote settings
}

default 섹션(선택 사항)

전역 기본값은 특정 원격에서 재정의하지 않는 한 모든 Git 작업에 적용됩니다.

분야 유형 필수 기본값 Description
sslVerify 불리언 아니오 true SSL 인증서를 확인할지 여부입니다.
caCertPath 문자열 아니오 ""(비어 있음) 사용자 지정 CA 인증서에 대한 작업 영역 경로입니다.
httpProxy 문자열 아니오 ""(비어 있음) Git 트래픽을 라우팅하는 HTTP 프록시입니다.
customHttpPort integer 아니오 지정되지 않음 Git 서버의 사용자 지정 HTTP 포트입니다.

remotes 섹션(선택 사항)

개별 원격 Git 서버에 대한 설정을 정의하는 개체 목록입니다. 이러한 설정은 default 블록을 원격별로 재정의합니다.

분야 유형 필수 기본값 Description
urlPrefix 문자열 Yes Git 원격 URL과 일치하는 접두사입니다.
sslVerify 불리언 아니오 true SSL 인증서를 확인할지 여부입니다.
caCertPath 문자열 아니오 ""(비어 있음) 이 원격에 대한 사용자 지정 CA 인증서 경로에 대한 작업 영역 경로입니다.
http프록시 문자열 아니오 ""(비어 있음) Git 트래픽을 라우팅하는 HTTP 프록시입니다.
사용자 정의 HTTP 포트 integer 아니오 지정되지 않음 Git 서버의 사용자 지정 HTTP 포트입니다.

원격 특정 구성이 없는 예제 구성

{
  "default": {
    "sslVerify": false
  }
}

전체 구성 예제

{
  "default": {
    "sslVerify": true,
    "caCertPath": "/Workspace/my_ca_cert.pem",
    "httpProxy": "https://git-proxy-server.company.com",
    "customHttpPort": "8080"
  },
  "remotes": [
    {
      "urlPrefix": "https://my-private-git.company.com/",
      "caCertPath": "/Workspace/my_ca_cert_2.pem"
    },
    {
      "urlPrefix": "https://another-git-server.com/project.git",
      "sslVerify": false
    }
  ]
}

비고

  • default 섹션은 적어도 일부가 존재해야 합니다.
  • remotes 섹션은 선택 사항입니다. 포함된 경우 각 항목에 필드가 urlPrefix 포함되어야 합니다.
  • 지정되지 않은 필드는 기본값을 사용합니다.
  • 알 수 없는 필드는 무시됩니다.

제한점

  • 서버리스 프록시 로그를 사용할 수 없습니다.
  • 서버리스 프라이빗 Git은 Azure 서버리스 지역에서만 사용할 수 있습니다.