Databricks

AWS Account &
Workspace 구성

Marketplace 구독부터 PrivateLink까지
AWS Console 기반 구성 가이드
AGENDA

구성 가이드 목차

PART 0

Databricks on AWS 아키텍처

Databricks on AWS — 전체 아키텍처

Control Plane + Compute Plane 분리 구조

center

Control Plane vs Compute Plane

두 영역의 역할과 위치

항목 Control Plane Databricks 관리 Compute Plane 고객 AWS 계정
위치 Databricks AWS 계정 고객 AWS 계정 VPC
구성요소 Web UI, REST API, Cluster Manager EC2 인스턴스 (클러스터 노드)
데이터 Notebook, Unity Catalog 메타데이터 DBFS Root Storage (S3), 고객 데이터
역할 오케스트레이션, IAM 실제 연산 수행, 데이터 접근

핵심: 고객 데이터는 고객 AWS 계정에 머무름 — Control Plane은 메타데이터와 오케스트레이션만 담당

참고: [Databricks Concepts](https://docs.databricks.com/aws/en/getting-started/concepts)

Classic vs Serverless Workspace

두 가지 컴퓨팅 모드 비교

항목 Classic Workspace Serverless Workspace
Compute 위치 고객 VPC 내 EC2 Databricks 관리 VPC
고객 구성 IAM Role, S3, VPC, SG 직접 구성 구성 불필요
네트워크 제어 완전 제어 가능 NCC로 관리
PrivateLink 구성 가능 (Backend + Frontend) NCC 기반 별도 구성
적합 시나리오 프로덕션, 보안 요건 PoC, 빠른 시작

이 가이드는 Classic Workspace 구성을 다룹니다 — 고객이 AWS 리소스를 직접 구성하는 방식

Serverless Workspace 아키텍처

Databricks가 관리하는 Compute Plane

center

출처: [Serverless Compute Overview](https://docs.databricks.com/aws/en/getting-started/high-level-architecture)

Workspace 구성에 필요한 AWS 리소스

Classic Workspace 기준 — 고객이 준비해야 할 것

분류 AWS 리소스 용도 Databricks 등록
IAM Cross-Account IAM Role EC2 프로비저닝 권한 위임 Credential Configuration
IAM UC Storage IAM Role Unity Catalog 데이터 접근 Storage Credential
S3 Root Storage Bucket DBFS 워크스페이스 데이터 Storage Configuration
S3 UC Managed Storage Bucket Unity Catalog 관리 데이터 External Location
VPC VPC + Private Subnet x2 Databricks 클러스터 실행 Network Configuration
VPC Public Subnet + NAT GW 아웃바운드 인터넷 접근
VPC Security Group 클러스터 통신 포트 제어 Network Configuration
VPC VPC Endpoints (PrivateLink) 프라이빗 연결 VPC Endpoint
KMS Customer Managed Key (선택) 노트북/DBFS 암호화 CMK Configuration
참고: [Create a workspace using the account console](https://docs.databricks.com/aws/en/admin/account-settings-e2/workspaces)

PrivateLink 아키텍처 — Backend

Compute Plane → Control Plane 프라이빗 연결

center

출처: [PrivateLink Concepts — Classic Compute](https://docs.databricks.com/aws/en/security/network/classic/privatelink-concepts)

PrivateLink 아키텍처 — Frontend

사용자 → Workspace 프라이빗 접근

center

출처: [PrivateLink Concepts — Front-End](https://docs.databricks.com/aws/en/security/network/classic/privatelink-concepts)

구성 단계 전체 흐름

AWS Console + Databricks Account Console 매핑

단계 AWS Console 작업 Databricks Account Console 등록 참고 문서
1. Credential IAM Role + Policy 생성 Cloud resources → Credential configuration Docs
2. Storage S3 Bucket + Policy 생성 Cloud resources → Storage configuration Docs
3. VPC/Subnet/SG VPC + Subnets + SG 생성 AWS Console (VPC) Docs
4. VPC Endpoints PrivateLink Endpoint 생성 AWS Console + Security → Networking → VPC endpoints Docs
5. Network Endpoint 포함 Network 등록 Security → Networking → Classic network configurations Docs
6. Access Private Access 설정 Security → Networking → Private access settings Docs
7. Workspace Workspace 생성 Workspaces → Create workspace Docs
PART 1

AWS Marketplace 구독

AWS Marketplace 구독 절차

AWS Console에서 수동으로 진행

Step 1 — Marketplace 접속

  • AWS Marketplace에서 "Databricks" 검색
  • 또는 직접 접속: aws.amazon.com/marketplace → Databricks Data Intelligence Platform

Step 2 — 구독 및 계정 생성

  1. "Subscribe" 클릭 → EULA 동의
  2. "Set up your account" → Databricks 등록 페이지로 리다이렉트
  3. 회사명, 이메일, 비밀번호 입력 → 계정 생성 완료
  4. AWS Marketplace로 돌아와 "Continue to Databricks" 클릭

Step 3 — 결과

  • Databricks Account 생성 + AWS Marketplace 과금 연결
  • Serverless Workspace 즉시 사용 가능
참고: [Subscribe via AWS Marketplace](https://docs.databricks.com/aws/en/admin/account-settings/account) · [AWS Marketplace Listing](https://aws.amazon.com/marketplace/pp/prodview-wtyi5lgtce6n6)

Marketplace vs Direct 계약

고객 상황에 따른 최적 선택

항목 Marketplace (PAYG) Marketplace (Private Offer) Direct 계약
과금 AWS 인보이스 통합 AWS 인보이스 통합 Databricks 별도 인보이스
EDP 적용 O — AWS EDP 소진 가능 O X
가격 리스트 가격 협상 할인가 협상 할인가
약정 없음 (종량제) 연간/다년 약정 연간/다년 약정
셋업 속도 수분 (셀프서비스) 수일~수주 수일~수주

핵심: AWS EDP 잔여 크레딧이 있는 고객은 Marketplace 구독이 유리 — Databricks 비용이 EDP 소진에 포함됨

기존 계정에 Marketplace 연결

이미 Databricks 계정이 있는 경우

연결 절차

  1. Databricks Account Console 로그인
  2. SettingsSubscription & billing
  3. "Add payment method"AWS Marketplace account 선택
  4. AWS Marketplace로 리다이렉트 → 구독 완료
  5. 메뉴에서 "Set to primary payment method" 선택

주의사항

  • 1 AWS Marketplace 계정 = 1 Databricks 계정 매핑 (N:1은 가능)
  • "You've already accepted this offer" 오류 → 이미 다른 Databricks 계정에 연결됨
  • 구독 취소 ≠ Databricks 계정 삭제 (과금 수단만 제거)
PART 2

사전 준비 (Prerequisites)

사전 준비 체크리스트

구성 시작 전 반드시 확인

AWS 계정 요구사항

  • IAM Role, S3, VPC 생성 권한 보유
  • STS 엔드포인트: us-west-2 리전 활성화 필수 (배포 리전과 무관)
  • SCP: sts:AssumeRole 허용 확인

Databricks 계정 요구사항

  • Account Admin 권한
  • Enterprise 티어 (PrivateLink 사용 시 필수)

Databricks AWS Account ID (IAM Trust 설정용)

환경 Account ID
Standard AWS 414351767826
AWS GovCloud 044793339203
GovCloud DoD 170661010020
참고: [Databricks account IDs for AWS trust policy](https://docs.databricks.com/aws/en/admin/account-settings-e2/credentials)
PART 3

Credential 구성

Cross-Account IAM Role — 개요

Databricks가 고객 AWS 계정에 EC2를 프로비저닝하기 위한 역할

AWS Console 작업 순서

  1. IAM → Roles → Create role 에서 Cross-Account Role 생성
  2. Trust Policy 설정 (Databricks AWS 계정 신뢰)
  3. Permission Policy 부여 (EC2/VPC 관련 권한)
  4. Account ConsoleCloud resourcesCredential configurationAdd 에서 Role ARN 등록
참고: [Create a cross-account IAM role](https://docs.databricks.com/aws/en/admin/account-settings-e2/credentials)

Cross-Account IAM Role — Policy 유형

고객 VPC 관리 방식에 따라 3가지 정책

Policy Type 설명 사용 시점
managed Databricks가 VPC 생성/관리 PoC, 빠른 시작
customer 고객이 VPC 생성, Databricks는 EC2만 관리 프로덕션 권장
restricted customer + ARN 조건 제한 (VPC ID, SG ID 등) 엄격 보안 요건
참고: [Terraform: databricks_aws_crossaccount_policy](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/aws_crossaccount_policy)

Cross-Account IAM Role — Trust Policy

IAM → Roles → Trust relationships 에서 설정

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": { "AWS": "arn:aws:iam::414351767826:root" },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringEquals": { "sts:ExternalId": "<YOUR-DATABRICKS-ACCOUNT-ID>" }
    }
  }]
}
필드 설명
Principal 414351767826 Databricks Standard AWS Account
ExternalId Databricks Account UUID Account Console 상단에서 확인
참고: [Trust policy](https://docs.databricks.com/aws/en/admin/account-settings-e2/credentials) · [Terraform: databricks_aws_assume_role_policy](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/aws_assume_role_policy)

Cross-Account IAM Role — Permission Policy

customer 타입 주요 권한 (Customer-Managed VPC용)

EC2 관련 Actions

  • ec2:RunInstances, TerminateInstances, DescribeInstances, DescribeVolumes
  • ec2:CreateVolume, DeleteVolume, AttachVolume, DetachVolume
  • ec2:CreateTags, DeleteTags, DescribeSubnets, DescribeSecurityGroups
  • ec2:RequestSpotInstances, CancelSpotInstanceRequests, DescribeSpotPriceHistory

Spot Service-Linked Role

  • iam:CreateServiceLinkedRole, iam:PutRolePolicy on AWSServiceRoleForEC2Spot

Terraform databricks_aws_crossaccount_policy data source로 최신 Policy JSON 자동 생성 가능

참고: [Cross-account policy](https://docs.databricks.com/aws/en/admin/account-settings-e2/credentials) · [Terraform: databricks_aws_crossaccount_policy](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/aws_crossaccount_policy)

Credential 등록 — Account Console

Databricks Account Console에서 등록

절차

  1. accounts.cloud.databricks.com 로그인
  2. 좌측 메뉴: Cloud resourcesCredential configuration
  3. Add credential configuration 클릭
  4. 입력:
    • Credential configuration name: 식별 이름 (예: prod-crossaccount-cred)
    • Role ARN: 위에서 생성한 IAM Role ARN (예: arn:aws:iam::123456789012:role/databricks-crossaccount)
  5. Add 클릭

결과

  • Credential ID 생성됨 → Workspace 생성 시 사용

IAM Role 생성 직후 등록 시 eventual consistency 문제로 실패할 수 있음 — 10~30초 대기 후 재시도

PART 4

Storage 구성

Root S3 Bucket — 생성 요건

AWS Console → S3 → Create bucket

필수 설정

항목 설정값
Bucket Region Workspace와 동일 리전 (예: ap-northeast-2)
Block all public access On (모두 체크)
Server-side encryption AES-256 (SSE-S3) 또는 SSE-KMS
Bucket versioning Disabled (선택)
ACL ACLs disabled (권장)
참고: [Configure storage for workspace](https://docs.databricks.com/aws/en/admin/account-settings-e2/storage) · [Terraform: databricks_aws_bucket_policy](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/aws_bucket_policy)

Root S3 Bucket — Bucket Policy

S3 → Bucket → Permissions → Bucket policy 에서 설정

{
  "Sid": "Grant Databricks Access",
  "Effect": "Allow",
  "Principal": { "AWS": "arn:aws:iam::414351767826:root" },
  "Action": [
    "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject",
    "s3:DeleteObject", "s3:ListBucket", "s3:GetBucketLocation"
  ],
  "Resource": ["arn:aws:s3:::<BUCKET>/*", "arn:aws:s3:::<BUCKET>"],
  "Condition": {
    "StringEquals": {
      "aws:PrincipalTag/DatabricksAccountId": ["<ACCOUNT-ID>"]
    }
  }
}

<BUCKET> = S3 버킷 이름, <ACCOUNT-ID> = Databricks Account UUID — 반드시 교체

Storage 등록 — Account Console

Databricks Account Console에서 등록

절차

  1. accounts.cloud.databricks.com 로그인
  2. 좌측 메뉴: Cloud resourcesStorage configuration
  3. Add storage configuration 클릭
  4. 입력:
    • Storage configuration name: 식별 이름 (예: prod-root-storage)
    • Bucket name: S3 Bucket 이름 (ARN 아님, 이름만)
  5. Add 클릭

결과

  • Storage Configuration ID 생성됨 → Workspace 생성 시 사용

이 설정은 수정 불가 — 변경 필요 시 삭제 후 재생성 (Workspace가 연결된 경우 삭제 불가)

참고: [Configure storage](https://docs.databricks.com/aws/en/admin/account-settings-e2/storage) · [Terraform: databricks_mws_storage_configurations](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mws_storage_configurations)
PART 5

Network 구성

VPC 생성 — 요구사항

AWS Console → VPC → Create VPC

항목 설정값
CIDR /16 ~ /17 권장 (예: 10.4.0.0/16)
DNS hostnames Enabled
DNS resolution Enabled
예약 CIDR (충돌 회피) 127.187.216.0/24, 192.168.216.0/24, 198.18.216.0/24, 172.17.0.0/16

Subnet 구성

Subnet 수량 용도 비고
Private 2개+ Databricks 클러스터 서로 다른 AZ, netmask /17~/25
Public 1개 NAT GW + IGW 아웃바운드 인터넷
VPC Endpoint 1개 PrivateLink 전용 local route만, NAT 없음
참고: [Configure customer-managed VPC](https://docs.databricks.com/aws/en/admin/account-settings-e2/networks)

VPC — Security Group 규칙

AWS Console → VPC → Security Groups → Create

Security Group — 필수 규칙

AWS Console → VPC → Security Groups → Create security group

Egress (아웃바운드) 규칙

Port Protocol Destination 용도
All TCP/UDP Self (동일 SG) 클러스터 내부 통신
443 TCP 0.0.0.0/0 Control Plane, 외부 라이브러리
3306 TCP 0.0.0.0/0 Legacy Hive Metastore
6666 TCP 0.0.0.0/0 SCC Relay 통신
8443-8451 TCP 0.0.0.0/0 Compute → Control Plane API
2443 TCP 0.0.0.0/0 FIPS (Compliance Security Profile)

Ingress (인바운드) 규칙

Port Protocol Source 용도
All TCP TCP Self (동일 SG) 노드 간 통신
All UDP UDP Self (동일 SG) 노드 간 통신
참고: [Security group rules](https://docs.databricks.com/aws/en/admin/account-settings-e2/networks)

권장 AWS Service VPC Endpoints

AWS Console → VPC → Endpoints → Create endpoint

Service Type Service Name Private DNS 용도
S3 Gateway com.amazonaws.ap-northeast-2.s3 N/A DBFS, Delta Lake
STS Interface com.amazonaws.ap-northeast-2.sts Enabled IAM 인증
Kinesis Interface com.amazonaws.ap-northeast-2.kinesis-streams Enabled 로그 전송
  • S3 Gateway: Route Table에 연결 (Private Subnet의 Route Table)
  • STS/Kinesis Interface: Private Subnet에 배치, Security Group 필요 (443 inbound)

Network ACL 설정

AWS Console → VPC → Network ACLs

Inbound Rules

Rule # Type Protocol Port Range Source Allow/Deny
100 All Traffic All All 0.0.0.0/0 ALLOW
* All Traffic All All 0.0.0.0/0 DENY

Outbound Rules

Rule # Type Protocol Port Range Destination Allow/Deny
100 HTTPS TCP 443 0.0.0.0/0 ALLOW
110 Custom TCP TCP 3306 0.0.0.0/0 ALLOW
120 Custom TCP TCP 6666 0.0.0.0/0 ALLOW
130 Custom TCP TCP 8443-8451 0.0.0.0/0 ALLOW
140 Custom TCP TCP 2443 0.0.0.0/0 ALLOW
150 All Traffic All All VPC CIDR ALLOW
* All Traffic All All 0.0.0.0/0 DENY

NACL은 stateless — Security Group과 달리 inbound/outbound 규칙을 모두 명시적으로 설정해야 합니다. 응답 트래픽도 자동 허용되지 않습니다.

참고: [Configure customer-managed VPC](https://docs.databricks.com/aws/en/admin/account-settings-e2/networks)

Network 등록 — 사전 조건

Security → Networking → Classic network configurations

순서 주의: Network Configuration 생성 시 VPC Endpoint를 지정해야 함 → PART 6의 VPC Endpoint 등록을 먼저 완료 후 진행

입력 항목 요약

항목
Network configuration name 식별 이름
VPC ID vpc-xxxxxxxx
Subnet IDs Private Subnet 2개 (서로 다른 AZ)
Security Group IDs SG ID (최대 5개)
VPC Endpoints — REST API 등록된 Workspace Endpoint 선택
VPC Endpoints — Dataplane relay 등록된 SCC Relay Endpoint 선택

Network 등록 — 절차

Security → Networking → Classic network configurations

  1. Add network configuration 클릭
  2. 이전 슬라이드의 항목 입력 + VPC Endpoints 지정
  3. AddNetwork ID 생성됨 → Workspace 생성 시 사용

Network configuration은 수정 불가 — 변경 시 새로 생성 후 Workspace에서 교체 (3단계 프로세스)

PART 6

Backend PrivateLink 구성

PrivateLink 개요

Backend vs Frontend 비교

항목 Backend (Classic) 필수 권장 Frontend (Inbound) 옵션
방향 Compute → Control Plane 사용자 → Workspace
용도 클러스터가 API/Relay에 접근 Web UI, REST API, DB Connect
VPC Endpoint 2개 (REST API + SCC Relay) 1개 (REST API만)
배치 위치 Compute VPC Transit VPC (또는 동일 VPC)
DNS 추가 구성 불필요 (private DNS enabled) Route 53 Private Hosted Zone 필요
핵심 이점 인터넷 없이 클러스터 운영 End-to-End 프라이빗 접근

Enterprise 티어 필수 — Customer-Managed VPC + SCC 활성화 필요

참고: [PrivateLink Concepts](https://docs.databricks.com/aws/en/security/network/classic/privatelink-concepts) · [Enable PrivateLink](https://docs.databricks.com/aws/en/security/network/classic/privatelink)

ap-northeast-2 (서울) VPC Endpoint Service Names

이 값으로 AWS VPC Endpoint를 생성합니다

Workspace (REST API) Endpoint

com.amazonaws.vpce.ap-northeast-2.vpce-svc-0babb9bde64f34d7e

SCC Relay Endpoint

com.amazonaws.vpce.ap-northeast-2.vpce-svc-0dc0e98a5800db5c4

AWS Console → VPC → Endpoints → "Find service by name" 에 위 값을 붙여넣기 → Verify service 클릭

출처: [Databricks regional endpoint service names](https://docs.databricks.com/aws/en/resources/ip-domain-region) · [Terraform: databricks_mws_vpc_endpoint](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mws_vpc_endpoint)

전체 리전 VPC Endpoint Service Names

모든 리전 — 복사용 참조표

Region Workspace (REST API) SCC Relay
ap-northeast-2 com.amazonaws.vpce.ap-northeast-2.vpce-svc-0babb9bde64f34d7e com.amazonaws.vpce.ap-northeast-2.vpce-svc-0dc0e98a5800db5c4
ap-northeast-1 com.amazonaws.vpce.ap-northeast-1.vpce-svc-02691fd610d24fd64 com.amazonaws.vpce.ap-northeast-1.vpce-svc-02aa633bda3edbec0
us-east-1 com.amazonaws.vpce.us-east-1.vpce-svc-09143d1e626de2f04 com.amazonaws.vpce.us-east-1.vpce-svc-00018a8c3ff62ffdf
us-east-2 com.amazonaws.vpce.us-east-2.vpce-svc-041dc2b4d7796b8d3 com.amazonaws.vpce.us-east-2.vpce-svc-090a8fab0d73e39a6
us-west-2 com.amazonaws.vpce.us-west-2.vpce-svc-0129f463fcfbc46c5 com.amazonaws.vpce.us-west-2.vpce-svc-0158114c0c730c3bb
eu-central-1 com.amazonaws.vpce.eu-central-1.vpce-svc-081f78503812597f7 com.amazonaws.vpce.eu-central-1.vpce-svc-08e5dfca9572c85c4
eu-west-1 com.amazonaws.vpce.eu-west-1.vpce-svc-0da6ebf1461278016 com.amazonaws.vpce.eu-west-1.vpce-svc-09b4eb2bc775f4e8c
ap-southeast-1 com.amazonaws.vpce.ap-southeast-1.vpce-svc-02535b257fc253ff4 com.amazonaws.vpce.ap-southeast-1.vpce-svc-0557367c6fc1a0c5c
전체 리전: [IP addresses and domains](https://docs.databricks.com/aws/en/resources/ip-domain-region)

Backend — Step 1: VPC Endpoint Subnet 생성

AWS Console → VPC → Subnets → Create subnet

요구사항

항목 설정값
VPC Databricks Compute VPC
CIDR 최소 /27 (예: 10.4.100.0/24)
용도 VPC Endpoint 전용 (워크스페이스 서브넷과 분리)

Route Table 설정

  • 새 Route Table 생성 → VPC Endpoint Subnet에 연결
  • Local route만 유지 — NAT GW route 추가하지 않음
Destination Target
10.4.0.0/16 (VPC CIDR) local

VPC Endpoint Subnet에는 NAT Gateway 라우트를 넣지 않음 — local 전용

Backend — Step 2: VPC Endpoint Security Group

AWS Console → VPC → Security Groups → Create

규칙 — 양방향 TCP 포트 443, 2443, 6666

Inbound Rules:

Port Protocol Source 용도
443 TCP VPC CIDR (예: 10.4.0.0/16) REST API (HTTPS)
2443 TCP VPC CIDR FIPS / Compliance
6666 TCP VPC CIDR SCC Relay

Outbound Rules:

Port Protocol Destination 용도
443 TCP VPC CIDR REST API return
2443 TCP VPC CIDR FIPS return
6666 TCP VPC CIDR Relay return
참고: [PrivateLink security group requirements](https://docs.databricks.com/aws/en/security/network/classic/privatelink)

Backend — Step 3: AWS VPC Endpoint 생성

AWS Console → VPC → Endpoints → Create endpoint (x2)

Endpoint 1: Workspace (REST API)

항목 설정값
Service category Other endpoint services
Service name com.amazonaws.vpce.ap-northeast-2.vpce-svc-0babb9bde64f34d7e
VPC Compute VPC
Subnets VPC Endpoint Subnet
Security groups VPC Endpoint SG (443/2443/6666)
Enable DNS name Yes (Enable private DNS names)

Endpoint 2: SCC Relay

항목 설정값
Service name com.amazonaws.vpce.ap-northeast-2.vpce-svc-0dc0e98a5800db5c4
나머지 Workspace Endpoint와 동일 설정

"Verify service" 클릭 시 "Service name verified" 확인 후 진행. private_dns_enabled = true 필수

Backend — Step 4: Databricks에 VPC Endpoint 등록

Account Console → Security → Networking → VPC endpoints

절차 (2회 반복 — REST API, Relay 각각)

  1. SecurityNetworkingVPC endpointsRegister VPC endpoint
  2. 입력:
    • VPC endpoint name: 식별 이름 (예: prod-rest-vpce, prod-relay-vpce)
    • VPC endpoint ID: vpce-xxxxxxxx (AWS에서 생성한 ID)
    • Region: ap-northeast-2
  3. Register 클릭

이후: Network Configuration 생성 시 연결

  • VPC Endpoint 등록 완료 후 → PART 5의 Network 등록 단계에서 Network Configuration 생성 시 VPC Endpoint를 지정
  • Network Configuration 생성 화면에서 REST API / Dataplane relay Endpoint 선택
참고: [Register VPC endpoints](https://docs.databricks.com/aws/en/security/network/classic/privatelink)

Backend — Step 5: Private Access Settings

Account Console → Security → Networking → Private access settings

설정

  1. Add private access settings 클릭
  2. 입력:
    • Name: 식별 이름
    • Region: ap-northeast-2
    • Public access: 단계적 전환 권장

접근 수준 옵션

설정 Public access Access level 결과
하이브리드 (검증 기간) Enabled ACCOUNT 퍼블릭 + PrivateLink 모두 허용
프라이빗 전용 Disabled ACCOUNT 계정 내 모든 VPC Endpoint 허용
특정 Endpoint만 Disabled ENDPOINT 지정된 Endpoint만 허용

처음에는 Public access = Enabled로 시작 → 검증 완료 후 Disabled로 전환 권장

참고: [Private access settings](https://docs.databricks.com/aws/en/security/network/classic/privatelink) · [Terraform: databricks_mws_private_access_settings](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mws_private_access_settings)

기존 Workspace에 PrivateLink 적용

이미 운영 중인 Workspace에 PrivateLink를 추가하는 절차

전체 순서

  1. VPC Endpoint 생성 — AWS Console에서 REST API + SCC Relay Endpoint 생성
  2. Databricks 등록 — Account Console → VPC endpoints에 등록
  3. 새 Network Config 생성 — VPC Endpoint를 포함한 Network Configuration 생성
  4. Workspace 업데이트 — 기존 Workspace의 Network Configuration을 새 것으로 변경

Workspace 업데이트 시 일시적 다운타임 발생 가능 — 실행 중인 클러스터와 작업이 중단됩니다. 반드시 유지보수 윈도우에 수행하세요.

참고: [Create a workspace](https://docs.databricks.com/aws/en/admin/account-settings-e2/workspaces)

기존 Workspace — 네트워크 변경 절차

Account Console → Workspaces → 해당 Workspace 클릭

변경 절차

  1. Account Console → Workspaces 메뉴에서 대상 Workspace 클릭
  2. Update 버튼 클릭
  3. Network configuration 항목에서 새 Network Config 선택 (PrivateLink VPC Endpoint 포함)
  4. Private access settings도 함께 지정
  5. Confirm update → 프로비저닝 시작 (~5-10분)

확인 사항

상태 의미
UPDATING 네트워크 변경 중
RUNNING 변경 완료 — 정상
FAILED 실패 — 에러 확인

변경 중 클러스터/작업이 중단됨 — Scheduled Job 일시 중지, Interactive 클러스터 종료 후 수행 권장. PrivateLink DNS 전파까지 추가 10-20분 대기 필요.

참고: [Update a workspace](https://docs.databricks.com/aws/en/admin/account-settings-e2/workspaces)
PART 7

[옵션] Frontend PrivateLink 구성

Frontend PrivateLink — 왜 필요한가?

사용자 → Workspace 접근을 프라이빗하게

구성 사용자 접근 경로
Backend만 사용자 → 인터넷 → Workspace → PrivateLink → Compute
Backend + Frontend 사용자 → VPN/DX → Transit VPC → PrivateLink → Workspace → PrivateLink → Compute

적용 시점: VPN/DirectConnect로 AWS에 접근하는 고객, 퍼블릭 인터넷 접근 정책상 불가한 환경. End-to-End 프라이빗 연결 — 인터넷 경유 Zero

참고: [Inbound PrivateLink](https://docs.databricks.com/aws/en/security/network/front-end/front-end-private-connect) · [PrivateLink DNS](https://docs.databricks.com/aws/en/security/network/classic/privatelink-dns)

Frontend — Backend과의 차이점

구성 요소 비교

항목 Backend Frontend (추가분)
VPC Compute VPC Transit VPC (별도 또는 동일)
VPC Endpoint 2개 (REST + Relay) 1개 (REST API만)
SG 포트 443, 2443, 6666 443만
DNS private DNS enabled Route 53 Private Hosted Zone
추가 없음 Route 53 Inbound Resolver (On-prem)

Single VPC vs Dual VPC

방식 설명 적합 시나리오
Single VPC Compute VPC에 Frontend도 배치, REST API Endpoint 겸용 PoC, 소규모
Dual VPC (권장) Transit VPC(Frontend) + Compute VPC(Backend) 분리 프로덕션, 대규모

Frontend — Step 1: Transit VPC 생성

Transit VPC + Security Group

항목 설정값
CIDR 예: 10.5.0.0/16
DNS hostnames / resolution 둘 다 Enabled
Security Group Inbound TCP 443 from Corporate CIDR (예: 10.0.0.0/8)
Security Group Outbound TCP 443 to Corporate CIDR

Frontend — Step 1b: VPC Endpoint 생성

AWS Console → VPC → Endpoints → Create endpoint

항목 설정값
Service name com.amazonaws.vpce.ap-northeast-2.vpce-svc-0babb9bde64f34d7e
VPC Transit VPC
Subnet Transit Endpoint Subnet
Enable private DNS names No (Route 53으로 관리)

Frontend Endpoint는 반드시 Enable private DNS names = No

Frontend — Step 2: Databricks 등록

Account Console에서 등록

VPC Endpoint 등록

  1. SecurityNetworkingVPC endpointsRegister VPC endpoint
  2. 입력:
    • VPC endpoint name: prod-frontend-rest-vpce
    • VPC endpoint ID: Transit VPC의 vpce-xxxxxxxx
    • Region: ap-northeast-2
  3. Register 클릭

Private Access Settings — Allowed Endpoints 추가

  • Frontend Endpoint도 Allowed VPC endpoint IDs에 추가 필요
  • Public access = Disabled 전환 시 Backend + Frontend 모두 등록

Frontend — Step 3: Route 53 DNS 구성

Route 53 → Hosted zones → Create hosted zone (Private)

항목 설정값
Domain name cloud.databricks.com
Type Private hosted zone
Associated VPC Transit VPC

A Record (Alias) 추가

Record name Type Alias Target
<workspace-deployment-name> A (Alias) Frontend VPC Endpoint

DNS 흐름: <ws>.cloud.databricks.com → Private Hosted Zone → Endpoint Private IP

참고: [PrivateLink DNS](https://docs.databricks.com/aws/en/security/network/classic/privatelink-dns)

Frontend — Step 4: Route 53 Inbound Resolver

On-Premises에서 Private Hosted Zone 해석 (VPN/DX 사용 시)

항목 설정값
VPC Transit VPC
Security Group TCP/UDP 53 from Corporate Network
IP addresses 2개+ (서로 다른 AZ)

Corporate DNS Conditional Forwarder

Domain Forward To
*.cloud.databricks.com Resolver IP
*.aws.databricksapps.com Resolver IP

검증: nslookup <ws>.cloud.databricks.com10.x.x.x 반환 시 정상

SSO/Unified Login 시 CNAME 추가: accounts-pl-auth.privatelink.cloud.databricks.com

Frontend PrivateLink — 구성 체크리스트

놓치기 쉬운 항목들

# 체크 항목 상태
1 Transit VPC DNS Hostnames/Resolution 활성화
2 VPC Endpoint 생성 (REST API, port 443)
3 Enable private DNS names = No
4 Databricks Account Console에 VPC Endpoint 등록
5 Route 53 Private Hosted Zone 생성 (cloud.databricks.com)
6 A Record (Alias) → VPC Endpoint 매핑
7 Route 53 Inbound Resolver 생성 (On-prem 접근 시)
8 Corporate DNS Conditional Forwarder 설정
9 nslookup 검증 — Private IP 반환 확인
10 Private Access Settings — Public access = Disabled 전환
11 SSO/Unified Login CNAME 추가 (필요시)
12 *.aws.databricksapps.com DNS 포워딩 (Apps 사용시)
PART 8

Workspace 생성

Workspace 생성 — Account Console

accounts.cloud.databricks.com → Workspaces → Create workspace

입력 항목

항목 설정값
Workspace name 식별 이름 (예: prod-workspace-apne2)
Region ap-northeast-2 (Seoul)
Credential configuration PART 3에서 생성한 Credential 선택
Storage configuration PART 4에서 생성한 Storage 선택
Network configuration PART 5-6에서 생성한 Network 선택 (PrivateLink 포함)
Private access settings PART 6에서 생성한 PAS 선택
Pricing tier Enterprise (PrivateLink 사용 시 필수)
CMK (선택) Managed services CMK / Storage CMK

Create workspace 클릭 → 프로비저닝 시작

참고: [Create a workspace](https://docs.databricks.com/aws/en/admin/account-settings-e2/workspaces) · [Terraform: databricks_mws_workspaces](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mws_workspaces)

Workspace 생성 후 확인

프로비저닝 완료까지 대기

상태 확인

상태 의미
PROVISIONING 생성 중
RUNNING 정상 — 사용 가능
FAILED 실패 — 에러 메시지 확인

소요 시간

단계 시간
Workspace 프로비저닝 ~5-7분
PrivateLink DNS 전파 +10-20분
클러스터 생성 가능 프로비저닝 후 최소 20분 대기

PrivateLink 워크스페이스는 프로비저닝 완료 후 20분 대기 필요 — DNS 전파 시간. 로컬 DNS 캐시 플러시: sudo killall -HUP mDNSResponder (macOS) 또는 ipconfig /flushdns (Windows)

Unity Catalog Storage Credential

Workspace와 별개로 UC용 IAM Role 필요

Trust Policy Principals

Principal ARN
UC Master Role arn:aws:iam::414351767826:role/unity-catalog-prod-UCMasterRole-14S5ZJVKOTYTL
Self-Assume arn:aws:iam::<YOUR-ACCOUNT>:role/<THIS-ROLE>

ExternalId: Databricks Account UUID

필요 Permission

서비스 Actions
S3 GetObject, PutObject, DeleteObject, ListBucket (/unity-catalog/*)
KMS Decrypt, Encrypt, GenerateDataKey (CMK 사용 시)
STS AssumeRole (self-assume)
SNS/SQS File Events 자동화 (권장)
참고: [Storage credential for AWS](https://docs.databricks.com/aws/en/connect/unity-catalog/storage-credentials) · [Managed storage](https://docs.databricks.com/aws/en/data-governance/unity-catalog/create-metastore)

External Location — File Events IAM 권한

S3 변경 알림을 위한 SQS/SNS 권한

  • External Location 생성 시 File Events가 기본 활성화
  • File Events = S3 파일 변경 시 SQS/SNS로 알림 → Auto Loader, Job Trigger에 사용
  • SQS/SNS 권한 없으면 Test Connection의 "File Events Read" 체크 실패
  • File Events 불필요 시: External Location → Advanced Options → File Events 비활성화 가능
기능 File Events 필요
기본 S3 읽기/쓰기 불필요
Auto Loader (Directory Listing) 불필요
Auto Loader (File Notification) 필수
Job File-Arrival Trigger 필수

External Location — File Events IAM Policy

SQS/SNS 권한 상세

Setup Actions

  • s3:GetBucketNotification, s3:PutBucketNotification
  • sns:CreateTopic, sns:TagResource, sns:Publish, sns:Subscribe
  • sns:GetTopicAttributes, sns:SetTopicAttributes, sns:ListSubscriptionsByTopic
  • sqs:CreateQueue, sqs:DeleteMessage, sqs:ReceiveMessage, sqs:SendMessage
  • sqs:GetQueueUrl, sqs:GetQueueAttributes, sqs:SetQueueAttributes, sqs:TagQueue

Resource Scope

arn:aws:sqs:*:*:csms-*
arn:aws:sns:*:*:csms-*

csms-* prefix = Databricks가 자동 생성·관리하는 리소스 (Customer-Side Managed Service)

주의사항 & 트러블슈팅

자주 발생하는 이슈

IAM Role 등록 실패

  • IAM Role 생성 직후 Databricks 등록 시 eventual consistency 문제
  • 10~30초 대기 후 재시도 (Terraform 사용 시 time_sleep 리소스)

Network 수정 시 3단계 프로세스

  1. 새 Network Configuration 생성
  2. Workspace에서 새 Network로 교체
  3. 기존 Network Configuration 삭제
  • 직접 수정 → INVALID_STATE 에러
  • DNS 캐시 플러시: sudo killall -HUP mDNSResponder / ipconfig /flushdns
  • nslookup <workspace>.cloud.databricks.com → Private IP 확인
  • VPC Endpoint 상태: available 확인 (AWS Console → VPC → Endpoints)
  • Security Group: 443, 6666 양방향 확인

구성 완료 체크리스트

전체 과정 최종 확인

# 단계 AWS 리소스 Databricks 등록 확인
1 Marketplace 구독 AWS Marketplace 구독 Databricks 계정 생성
2 Credential IAM Cross-Account Role Credential Configuration
3 Storage S3 Bucket + Bucket Policy Storage Configuration
4 Network VPC + 2 Private Subnets + SG Network Configuration
5 Backend PL 2x VPC Endpoints (REST + Relay) VPC Endpoint 등록 + Network 연결
6 Access Settings Private Access Settings
7 Workspace Workspace 생성 (RUNNING 확인)
8 [옵션] Frontend Transit VPC + 1x Endpoint + R53 VPC Endpoint 등록
9 UC Storage IAM Role + S3 Storage Credential
10 최종 검증 브라우저 접속 + 클러스터 생성
PART 10

UC Metastore 구성

Unity Catalog Metastore — 개요

UC의 최상위 데이터 거버넌스 컨테이너

Metastore란?

  • Unity Catalog의 최상위 컨테이너 — Catalog → Schema → Table 계층 구조의 루트
  • 리전당 1개 Metastore 생성 (예: ap-northeast-2에 1개)
  • 여러 Workspace가 공유 가능 — 동일 리전의 Workspace에 할당

사전 준비 리소스

리소스 용도 비고
S3 Bucket (UC 전용) Managed Storage — UC 관리 테이블 데이터 저장 Root Storage와 별도 생성
IAM Role (UC Storage Credential) S3 접근 권한 위임 Trust Policy에 UC Master Role 포함

Metastore는 Account-Level 리소스 — Workspace와 독립적으로 생성 후 할당하는 구조

참고: [Create a Unity Catalog metastore](https://docs.databricks.com/aws/en/data-governance/unity-catalog/create-metastore)

Unity Catalog Metastore — 생성 절차

Account Console → Catalog → Create metastore

Step 1 — Metastore 생성

  1. accounts.cloud.databricks.com 로그인
  2. 좌측 메뉴: CatalogCreate metastore
  3. 입력:
항목 설정값
Name 식별 이름 (예: apne2-uc-metastore)
Region ap-northeast-2
S3 path s3://<UC-BUCKET>/unity-catalog
IAM Role ARN UC Storage Credential IAM Role
  1. Create 클릭

Step 2 — Workspace 할당

  1. 생성된 Metastore 클릭 → Assign to workspace
  2. 대상 Workspace 선택 → Assign
  3. 각 Workspace에서 UC 카탈로그, 스키마, 테이블 사용 가능
참고: [Create a Unity Catalog metastore](https://docs.databricks.com/aws/en/data-governance/unity-catalog/create-metastore)
PART 11

Serverless Networking (NCC)

Serverless Networking — NCC 개요

Serverless Compute의 네트워크 제어

NCC란?

  • NCC = Network Connectivity Configuration
  • Serverless Compute (SQL Warehouse, Notebook 등)가 고객 데이터 소스에 프라이빗하게 접근하기 위한 설정
  • Classic Workspace의 VPC 구성과는 별도로 관리

Account Console 경로

  • Account ConsoleSecurityNetworkingNetwork connectivity configurations

제한 사항

항목 제한
리전당 NCC 수 최대 10개
NCC당 Workspace 수 최대 50개

NCC는 Account-Level 리소스 — 여러 Workspace에서 공유 가능

참고: [Serverless private connectivity](https://docs.databricks.com/aws/en/security/network/serverless-network-security/serverless-private-connectivity)

Serverless NCC — Private Endpoint Rules

NCC에 프라이빗 엔드포인트 규칙 추가

지원 Endpoint 유형

Endpoint 유형 용도 리전당 최대
S3 Private Endpoint S3 버킷에 프라이빗 접근 30개
VPC Resource Endpoint (via NLB) RDS, Kafka 등 VPC 리소스 접근 100개

설정 절차

  1. Account ConsoleSecurityNetworkingNetwork connectivity configurations
  2. 대상 NCC 클릭 (또는 Create 으로 새로 생성)
  3. Add private endpoint rule 클릭
  4. 입력:
    • S3: Bucket 이름 입력
    • VPC Resource: Resource ID (NLB ARN 등) 입력
  5. Add → Endpoint 프로비저닝 (~수 분)

Private Endpoint Rule 추가 후 프로비저닝 완료까지 수 분 소요 — 상태가 ACTIVE인지 확인 후 사용

참고: [Serverless private connectivity](https://docs.databricks.com/aws/en/security/network/serverless-network-security/serverless-private-connectivity)
APPENDIX

Terraform 자동화

Terraform으로 자동화하기

위 매뉴얼 과정을 IaC로 전환 가능

Provider — Account-Level (MWS) + AWS

provider "databricks" {
  alias = "mws"
  host  = "https://accounts.cloud.databricks.com"
  account_id = var.databricks_account_id
  client_id = var.client_id       # Service Principal OAuth
  client_secret = var.client_secret
}

Terraform 리소스 매핑

AWS Console 작업 → Terraform Resource

AWS Console 작업 Terraform Resource
IAM Role 생성 aws_iam_role + aws_iam_role_policy
S3 Bucket 생성 aws_s3_bucket + aws_s3_bucket_policy
VPC/Subnet/SG aws_vpc / aws_subnet / aws_security_group
VPC Endpoint aws_vpc_endpoint
Credential 등록 databricks_mws_credentials
Storage 등록 databricks_mws_storage_configurations
Network 등록 databricks_mws_networks
VPC Endpoint 등록 databricks_mws_vpc_endpoint
Private Access databricks_mws_private_access_settings
Workspace databricks_mws_workspaces

Terraform Helper Data Sources

Policy JSON 자동 생성 — 매뉴얼 복사-붙여넣기 실수 방지

Data Source 용도
databricks_aws_assume_role_policy Trust Policy JSON 생성
databricks_aws_crossaccount_policy IAM Permission Policy JSON 생성 (customer/managed/restricted)
databricks_aws_bucket_policy S3 Bucket Policy JSON 생성
data "databricks_aws_crossaccount_policy" "this" {
  provider    = databricks.mws
  policy_type = "customer"
}
참고: [crossaccount_policy](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/aws_crossaccount_policy) · [assume_role_policy](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/aws_assume_role_policy) · [bucket_policy](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/aws_bucket_policy)

Terraform 리소스 의존성 흐름

전체 Dependency Chain

IAM Role → databricks_mws_credentials ─────────┐
                                                 │
S3 Bucket → databricks_mws_storage_configs ─────┤
                                                 │
VPC/Subnet/SG                                    │
  ├─ aws_vpc_endpoint(REST) → mws_vpc_endpoint ┐│
  ├─ aws_vpc_endpoint(Relay)→ mws_vpc_endpoint ┤│
  └─ databricks_mws_networks(vpc_endpoints) ────┤
                                                 │
databricks_mws_private_access_settings ─────────┤
                                                 ▼
                        databricks_mws_workspaces

Terraform 공식 예제 & 참고

GitHub 저장소

예제 설명
aws-workspace-basic 기본 워크스페이스
aws-databricks-modular-privatelink PrivateLink 모듈화 구성
aws-databricks-uc Unity Catalog 포함
aws-workspace-with-firewall Egress 방화벽 포함
aws-exfiltration-protection 데이터 유출 방지

참고 문서 — 전체 링크 모음

Databricks 공식 문서

참고 문서 — Terraform & GitHub

Terraform Provider 문서

GitHub 예제 저장소

이 가이드는 Databricks 공식 문서와 Terraform Provider 소스 기반으로 검증되었습니다 · 2026년 3월

===== 표지 =====

===== Agenda =====

===== PART 0: Architecture =====

===== PART 1: Marketplace =====

===== PART 2: Prerequisites =====

===== PART 3: Credential =====

===== PART 4: Storage =====

===== PART 5: Network =====

===== PART 6: Backend PrivateLink =====

===== PART 7: Frontend PrivateLink =====

===== PART 8: Workspace 생성 =====

===== PART 10: UC Metastore =====

===== PART 11: Serverless NCC =====

===== Appendix: Terraform =====

===== 마무리 =====