
| 항목 | 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은 메타데이터와 오케스트레이션만 담당
| 항목 | Classic Workspace | Serverless Workspace |
|---|---|---|
| Compute 위치 | 고객 VPC 내 EC2 | Databricks 관리 VPC |
| 고객 구성 | IAM Role, S3, VPC, SG 직접 구성 | 구성 불필요 |
| 네트워크 제어 | 완전 제어 가능 | NCC로 관리 |
| PrivateLink | 구성 가능 (Backend + Frontend) | NCC 기반 별도 구성 |
| 적합 시나리오 | 프로덕션, 보안 요건 | PoC, 빠른 시작 |
이 가이드는 Classic Workspace 구성을 다룹니다 — 고객이 AWS 리소스를 직접 구성하는 방식

| 분류 | 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 |


| 단계 | 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 |
aws.amazon.com/marketplace → Databricks Data Intelligence Platform| 항목 | Marketplace (PAYG) | Marketplace (Private Offer) | Direct 계약 |
|---|---|---|---|
| 과금 | AWS 인보이스 통합 | AWS 인보이스 통합 | Databricks 별도 인보이스 |
| EDP 적용 | O — AWS EDP 소진 가능 | O | X |
| 가격 | 리스트 가격 | 협상 할인가 | 협상 할인가 |
| 약정 | 없음 (종량제) | 연간/다년 약정 | 연간/다년 약정 |
| 셋업 속도 | 수분 (셀프서비스) | 수일~수주 | 수일~수주 |
핵심: AWS EDP 잔여 크레딧이 있는 고객은 Marketplace 구독이 유리 — Databricks 비용이 EDP 소진에 포함됨
us-west-2 리전 활성화 필수 (배포 리전과 무관)sts:AssumeRole 허용 확인| 환경 | Account ID |
|---|---|
| Standard AWS | 414351767826 |
| AWS GovCloud | 044793339203 |
| GovCloud DoD | 170661010020 |
| Policy Type | 설명 | 사용 시점 |
|---|---|---|
managed |
Databricks가 VPC 생성/관리 | PoC, 빠른 시작 |
customer |
고객이 VPC 생성, Databricks는 EC2만 관리 | 프로덕션 권장 |
restricted |
customer + ARN 조건 제한 (VPC ID, SG ID 등) | 엄격 보안 요건 |
{
"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 상단에서 확인 |
ec2:RunInstances, TerminateInstances, DescribeInstances, DescribeVolumesec2:CreateVolume, DeleteVolume, AttachVolume, DetachVolumeec2:CreateTags, DeleteTags, DescribeSubnets, DescribeSecurityGroupsec2:RequestSpotInstances, CancelSpotInstanceRequests, DescribeSpotPriceHistoryiam:CreateServiceLinkedRole, iam:PutRolePolicy on AWSServiceRoleForEC2SpotTerraform databricks_aws_crossaccount_policy data source로 최신 Policy JSON 자동 생성 가능
prod-crossaccount-cred)arn:aws:iam::123456789012:role/databricks-crossaccount)IAM Role 생성 직후 등록 시 eventual consistency 문제로 실패할 수 있음 — 10~30초 대기 후 재시도
| 항목 | 설정값 |
|---|---|
| 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 (권장) |
{
"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 — 반드시 교체
prod-root-storage)이 설정은 수정 불가 — 변경 필요 시 삭제 후 재생성 (Workspace가 연결된 경우 삭제 불가)
| 항목 | 설정값 |
|---|---|
| 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 | 수량 | 용도 | 비고 |
|---|---|---|---|
| Private | 2개+ | Databricks 클러스터 | 서로 다른 AZ, netmask /17~/25 |
| Public | 1개 | NAT GW + IGW | 아웃바운드 인터넷 |
| VPC Endpoint | 1개 | PrivateLink 전용 | local route만, NAT 없음 |
| 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) |
| Port | Protocol | Source | 용도 |
|---|---|---|---|
| All TCP | TCP | Self (동일 SG) | 노드 간 통신 |
| All UDP | UDP | Self (동일 SG) | 노드 간 통신 |
| 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 | 로그 전송 |
| 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 |
| 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 규칙을 모두 명시적으로 설정해야 합니다. 응답 트래픽도 자동 허용되지 않습니다.
순서 주의: 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 configuration은 수정 불가 — 변경 시 새로 생성 후 Workspace에서 교체 (3단계 프로세스)
| 항목 | 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 활성화 필요
com.amazonaws.vpce.ap-northeast-2.vpce-svc-0babb9bde64f34d7e
com.amazonaws.vpce.ap-northeast-2.vpce-svc-0dc0e98a5800db5c4
AWS Console → VPC → Endpoints → "Find service by name" 에 위 값을 붙여넣기 → Verify service 클릭
| 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 |
| 항목 | 설정값 |
|---|---|
| VPC | Databricks Compute VPC |
| CIDR | 최소 /27 (예: 10.4.100.0/24) |
| 용도 | VPC Endpoint 전용 (워크스페이스 서브넷과 분리) |
| Destination | Target |
|---|---|
10.4.0.0/16 (VPC CIDR) |
local |
VPC Endpoint Subnet에는 NAT Gateway 라우트를 넣지 않음 — local 전용
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 |
| 항목 | 설정값 |
|---|---|
| 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) |
| 항목 | 설정값 |
|---|---|
| Service name | com.amazonaws.vpce.ap-northeast-2.vpce-svc-0dc0e98a5800db5c4 |
| 나머지 | Workspace Endpoint와 동일 설정 |
"Verify service" 클릭 시 "Service name verified" 확인 후 진행. private_dns_enabled = true 필수
prod-rest-vpce, prod-relay-vpce)vpce-xxxxxxxx (AWS에서 생성한 ID)ap-northeast-2ap-northeast-2| 설정 | Public access | Access level | 결과 |
|---|---|---|---|
| 하이브리드 (검증 기간) | Enabled | ACCOUNT | 퍼블릭 + PrivateLink 모두 허용 |
| 프라이빗 전용 | Disabled | ACCOUNT | 계정 내 모든 VPC Endpoint 허용 |
| 특정 Endpoint만 | Disabled | ENDPOINT | 지정된 Endpoint만 허용 |
처음에는 Public access = Enabled로 시작 → 검증 완료 후 Disabled로 전환 권장
Workspace 업데이트 시 일시적 다운타임 발생 가능 — 실행 중인 클러스터와 작업이 중단됩니다. 반드시 유지보수 윈도우에 수행하세요.
| 상태 | 의미 |
|---|---|
| UPDATING | 네트워크 변경 중 |
| RUNNING | 변경 완료 — 정상 |
| FAILED | 실패 — 에러 확인 |
변경 중 클러스터/작업이 중단됨 — Scheduled Job 일시 중지, Interactive 클러스터 종료 후 수행 권장. PrivateLink DNS 전파까지 추가 10-20분 대기 필요.
| 구성 | 사용자 접근 경로 |
|---|---|
| Backend만 | 사용자 → 인터넷 → Workspace → PrivateLink → Compute |
| Backend + Frontend | 사용자 → VPN/DX → Transit VPC → PrivateLink → Workspace → PrivateLink → Compute |
적용 시점: VPN/DirectConnect로 AWS에 접근하는 고객, 퍼블릭 인터넷 접근 정책상 불가한 환경. End-to-End 프라이빗 연결 — 인터넷 경유 Zero
| 항목 | 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 | Compute VPC에 Frontend도 배치, REST API Endpoint 겸용 | PoC, 소규모 |
| Dual VPC (권장) | Transit VPC(Frontend) + Compute VPC(Backend) 분리 | 프로덕션, 대규모 |
| 항목 | 설정값 |
|---|---|
| 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 |
| 항목 | 설정값 |
|---|---|
| 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
prod-frontend-rest-vpcevpce-xxxxxxxxap-northeast-2| 항목 | 설정값 |
|---|---|
| Domain name | cloud.databricks.com |
| Type | Private hosted zone |
| Associated VPC | Transit VPC |
| Record name | Type | Alias Target |
|---|---|---|
<workspace-deployment-name> |
A (Alias) | Frontend VPC Endpoint |
DNS 흐름: <ws>.cloud.databricks.com → Private Hosted Zone → Endpoint Private IP
| 항목 | 설정값 |
|---|---|
| VPC | Transit VPC |
| Security Group | TCP/UDP 53 from Corporate Network |
| IP addresses | 2개+ (서로 다른 AZ) |
| Domain | Forward To |
|---|---|
*.cloud.databricks.com |
Resolver IP |
*.aws.databricksapps.com |
Resolver IP |
검증: nslookup <ws>.cloud.databricks.com → 10.x.x.x 반환 시 정상
SSO/Unified Login 시 CNAME 추가: accounts-pl-auth.privatelink.cloud.databricks.com
| # | 체크 항목 | 상태 |
|---|---|---|
| 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 사용시) |
☐ |
| 항목 | 설정값 |
|---|---|
| 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 |
| 상태 | 의미 |
|---|---|
| PROVISIONING | 생성 중 |
| RUNNING | 정상 — 사용 가능 |
| FAILED | 실패 — 에러 메시지 확인 |
| 단계 | 시간 |
|---|---|
| Workspace 프로비저닝 | ~5-7분 |
| PrivateLink DNS 전파 | +10-20분 |
| 클러스터 생성 가능 | 프로비저닝 후 최소 20분 대기 |
PrivateLink 워크스페이스는 프로비저닝 완료 후 20분 대기 필요 — DNS 전파 시간. 로컬 DNS 캐시 플러시: sudo killall -HUP mDNSResponder (macOS) 또는 ipconfig /flushdns (Windows)
| 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
| 서비스 | Actions |
|---|---|
| S3 | GetObject, PutObject, DeleteObject, ListBucket (/unity-catalog/*) |
| KMS | Decrypt, Encrypt, GenerateDataKey (CMK 사용 시) |
| STS | AssumeRole (self-assume) |
| SNS/SQS | File Events 자동화 (권장) |
| 기능 | File Events 필요 |
|---|---|
| 기본 S3 읽기/쓰기 | 불필요 |
| Auto Loader (Directory Listing) | 불필요 |
| Auto Loader (File Notification) | 필수 |
| Job File-Arrival Trigger | 필수 |
s3:GetBucketNotification, s3:PutBucketNotificationsns:CreateTopic, sns:TagResource, sns:Publish, sns:Subscribesns:GetTopicAttributes, sns:SetTopicAttributes, sns:ListSubscriptionsByTopicsqs:CreateQueue, sqs:DeleteMessage, sqs:ReceiveMessage, sqs:SendMessagesqs:GetQueueUrl, sqs:GetQueueAttributes, sqs:SetQueueAttributes, sqs:TagQueuearn:aws:sqs:*:*:csms-*
arn:aws:sns:*:*:csms-*
csms-* prefix = Databricks가 자동 생성·관리하는 리소스 (Customer-Side Managed Service)
time_sleep 리소스)INVALID_STATE 에러sudo killall -HUP mDNSResponder / ipconfig /flushdnsnslookup <workspace>.cloud.databricks.com → Private IP 확인available 확인 (AWS Console → VPC → Endpoints)| # | 단계 | 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 | 최종 검증 | — | 브라우저 접속 + 클러스터 생성 | ☐ |
ap-northeast-2에 1개)| 리소스 | 용도 | 비고 |
|---|---|---|
| S3 Bucket (UC 전용) | Managed Storage — UC 관리 테이블 데이터 저장 | Root Storage와 별도 생성 |
| IAM Role (UC Storage Credential) | S3 접근 권한 위임 | Trust Policy에 UC Master Role 포함 |
Metastore는 Account-Level 리소스 — Workspace와 독립적으로 생성 후 할당하는 구조
| 항목 | 설정값 |
|---|---|
| Name | 식별 이름 (예: apne2-uc-metastore) |
| Region | ap-northeast-2 |
| S3 path | s3://<UC-BUCKET>/unity-catalog |
| IAM Role ARN | UC Storage Credential IAM Role |
| 항목 | 제한 |
|---|---|
| 리전당 NCC 수 | 최대 10개 |
| NCC당 Workspace 수 | 최대 50개 |
NCC는 Account-Level 리소스 — 여러 Workspace에서 공유 가능
| Endpoint 유형 | 용도 | 리전당 최대 |
|---|---|---|
| S3 Private Endpoint | S3 버킷에 프라이빗 접근 | 30개 |
| VPC Resource Endpoint (via NLB) | RDS, Kafka 등 VPC 리소스 접근 | 100개 |
Private Endpoint Rule 추가 후 프로비저닝 완료까지 수 분 소요 — 상태가 ACTIVE인지 확인 후 사용
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
}
| 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 |
| 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"
}
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
| 예제 | 설명 |
|---|---|
aws-workspace-basic |
기본 워크스페이스 |
aws-databricks-modular-privatelink |
PrivateLink 모듈화 구성 |
aws-databricks-uc |
Unity Catalog 포함 |
aws-workspace-with-firewall |
Egress 방화벽 포함 |
aws-exfiltration-protection |
데이터 유출 방지 |
이 가이드는 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 =====
===== 마무리 =====