실제 프로덕션 환경에서는 유저 데이터 등 유출되면 치명적인 데이터가 있다. 이러한 보안 문제를 해결 하기 위해, Databricks Workspace를 구성할 때 인터넷을 거치지 않는 private link 구성을 활용했다.
위의 그림처럼, Control Plane 과 Data Plane 간의 통신을 구성하기 위해서 AWS Private Link 를 사용하여 구성했다. 크게 2가지로, Secure Cluster Connectivity 를 위한 VPC endpoint 와 REST APIs 를 위한 VPC endpoint 를 생성해주면된다.
참고로 Front-end VPC endpoint 는 따로 생성해주어도 괜찮지만, 사실 Backend REST API와 동일한 서비스이므로 같은 VPC endpoint 를 활용할 수도 있다.
AWS PrivateLink
VPC 엔드포인트와 엔드포인트 서비스 간 트래픽은 퍼블릭 인터넷을 거치지 않고, AWS 네트워크 내부에서 연결되므로 안전하게 통신할 수 있다. Databricks의 경우에도 Control Plane 이 Databricks 의 AWS 계정에 있을 것이며, 이 Control Plane과 우리가 직접 구성하는 Customer VPC Data Plane 을 Private Link 를 통해 통신하도록 구성한 것이다.
VPC Endpoint
서비스를 사용할 때, VPC Endpoint 를 생성해서 서비스끼리 연결할 수 있다. VPC Endpoint 는 여러 유형이 있으며, 각각의 서비스 엔드포인트에 맞게 알맞은 유형을 사용해야 한다. Databricks Workspace를 구성하기 위해서, STS endpoint와 S3 endpoint 또한 필요하다.
Databricks Customer Managed VPC 공식 문서에는 VPC endpoints 를 구성하는 것이 'recommended'된다고 하지만.. 사실상 얘네 둘은 PrivateLink 로 구성할 때 있어서 필수적으로 구성해주어야 한다. 여기서 눈여겨볼 점은 S3 VPC Endpoint는 'Gateway' 유형이고, STS의 경우 'Interface' 유형이다.
VPC Endpoint 유형에 대해 정리해 보면 다음과 같다.
1. Gateway Endpoint
NAT Gateway 가 없어도 VPC에 연결된 Routing Table을 보고 트래픽을 전달할 수 있다. S3 서비스에 바로 VPC endpoint 를 통해 연결할 수 있다. 아래의 그림처럼 Databricks의 클러스터 또한 Private Subnet에서 띄우도록 구성했으므로, VPC Endpoint 와 Routing Table 의 구성을 이용하여 S3 서비스로 트래픽을 보낼 수 있다.
2. Interface Endpoint
AWS PrivateLink 기술을 사용하여 구성되는 것이 바로 Interface Endpoint 이다. VPC 내부에 전용 라우팅 테이블이 생성된다. Interface Endpoint 를 생성하면, ENI (Endpoint Network Interface) 가 하나 생성되며, IP가 할당된다. 따라서 interface endpoint 를 사용하는 경우 이 endpoint들의 IP 주소를 관리하기 위한 별도의 subnet을 두는 것이 권장된다. ENI는 VPC 내부에서 IP주소를 사용하여 다른 AWS 서비스와 통신한다.
3. Gateway Loadbalancer Endpoint
위의 Endpoint 들과는 달리, 부하 분산을 위한 로드밸런싱 기능이 추가된다. 여러 VPC 나 AWS 계정 사이에서, 트래픽을 분산시켜준다. Gateway Load Balancer에 직접 연결해서 인터넷을 타지 않고, VPC 내부의 어플리케이션에 접근하도록 하는 서비스이다.
VPC Endpoint 의 장점
1. 보안 강화
Public Internet 망에 노출되지 않고 VPC 내부에서 직접 연결하므로 외부 인터넷망에서 발생하는 여러가지 보안 문제를 예방할 수 있다. 물론 VPC Endpoint로 연결된 서비스와 통신하는 EC2 인스턴스에 대해 위협이 있으므로 100% 보장되는 것은 아니다. 따라서 Security Group 사용 등 다른 보안 장치 또한 필요하다.
2. 비용 절감
NAT Gateway , VPN 연결, AWS Direct Connect와 같이 비용이 발생하는 서비스를 사용하지 않아도 된다.
참고 자료
'Data Engineering > Databricks & Delta Lake' 카테고리의 다른 글
[Databricks] Delta Live Table 로 파이프라인 개발 & 데이터 퀄리티 모니터링하기 (0) | 2024.04.14 |
---|---|
[Databricks] 데이터브릭스의 Unity Catalog 기능에 대해 살펴보기 (0) | 2024.03.31 |
[TIL] Delta Table에 upsert 하기 (0) | 2024.02.14 |
[Databricks] 데이터브릭스 무료 버전 사용하는 방법 (Databricks Community Edition) (0) | 2023.10.29 |
[Databricks] DLT Pipeline 으로 AWS DMS CDC 구현하기 (0) | 2023.06.22 |