인터페이스 VPC 엔드포인트를 사용하여 Athena Spark 세션에 연결
Apache Spark 버전 3.5를 사용하는 워크그룹의 경우 인터넷을 통해 연결하는 대신 가상 프라이빗 클라우드(VPC) 내의 인터페이스 VPC 엔드포인트(AWS PrivateLink)를 사용하여 Athena Spark 세션에 직접 연결할 수 있습니다. 인터페이스 VPC 엔드포인트를 사용하는 경우 VPC와 Athena Spark 세션 엔드포인트 사이의 통신은 모두 AWS 네트워크에서 수행됩니다.
각 VPC 엔드포인트는 하나 이상의 탄력적 네트워크 인터페이스(ENI) 및 VPC 서브넷의 프라이빗 IP 주소로 표현됩니다. VPC에 있는 ENI는 퍼블릭 IP 주소가 없어도 Athena Spark 세션 엔드포인트와 통신할 수 있습니다.
VPC를 통해 Athena Spark 세션 엔드포인트를 사용하려면 VPC 내부에 있는 인스턴스에서 연결하거나 Site-to-Site VPN 또는 AWS Direct Connect를 사용하여 프라이빗 네트워크를 VPC에 연결해야 합니다.
지원되는 엔드포인트
다음 Athena Spark 세션 엔드포인트는 AWS PrivateLink를 통한 프라이빗 액세스를 지원합니다.
| 엔드포인트 | 설명 | 서비스 이름 |
|---|---|---|
| Spark Connect | 원격 Spark 워크로드 실행을 위한 gRPC 엔드포인트 | com.amazonaws. |
| Live UI | 브라우저 기반 실시간 Spark 태스크 모니터링 | com.amazonaws. |
| 영구 UI | 완료된 세션을 위한 Spark 기록 서버 | com.amazonaws. |
고려 사항
-
VPC 내에서만 세션 엔드포인트 URL에 액세스할 수 있게 하려면 Athena API VPC 엔드포인트를 통해
GetSessionEndpoint(Spark Connect) 또는GetResourceDashboard(Live UI 및 Persistent UI)를 직접적으로 호출해야 합니다. Athena는 액세스 토큰에 원래 VPC를 포함하고 동일한 VPC에서만 엔드포인트에 액세스하도록 제한합니다. -
VPC 내에서 생성된 세션 엔드포인트 URL은 동일한 VPC 또는 퍼블릭 인터넷에서 액세스할 수 있지만 다른 VPC에서는 액세스할 수 없습니다. VPC 내에서 프로그래밍 방식으로 토큰이 생성되고 결과 대시보드 URL이 로컬 브라우저에서 열리는 일반적인 워크플로를 지원합니다.
-
퍼블릭 인터넷에서 생성된 세션 엔드포인트 URL은 VPC 내에서 액세스할 수 없습니다.
-
Athena Spark Connect, Live UI 또는 Persistent UI 엔드포인트에서 VPC 엔드포인트 정책이 지원되지 않습니다.
-
VPC 엔드포인트 정책은 Athena API 엔드포인트에서 지원됩니다. Athena API 엔드포인트를 간접적으로 호출할 수 있는 IAM 위탁자를 제어하려면 Athena API VPC 엔드포인트(
com.amazonaws.)에 VPC 엔드포인트 정책을 적용합니다.region.athena
Athena Spark 세션 엔드포인트를 위한 VPC 엔드포인트 생성
AWS Management Console 또는 AWS CLI를 사용하여 인터페이스 VPC 엔드포인트를 생성할 수 있습니다.
AWS CLI를 사용하여 엔드포인트를 생성하려면 다음을 수행하세요.
aws ec2 create-vpc-endpoint \ --vpc-id <your-vpc-id> \ --service-name com.amazonaws.<region>.athena.sessions \ --vpc-endpoint-type Interface \ --subnet-ids <subnet-id> \ --security-group-ids <security-group-id> \ --private-dns-enabled
엔드포인트를 생성하고 프라이빗 DNS를 활성화하면 Spark Connect 세션 URL이 자동으로 VPC 엔드포인트로 확인되므로 SparkConnect 클라이언트 구성에서 별도로 변경할 필요가 없습니다. 자세한 내용은 AWS PrivateLink 설명서의 인터페이스 엔드포인트 생성을 참조하세요.
Athena Spark 세션 엔드포인트를 위한 VPC 엔드포인트 정책 생성
Athena Spark Connect, Live UI 또는 Persistent UI 엔드포인트에서 VPC 엔드포인트 정책이 지원되지 않습니다.
액세스를 제어하려면 Athena API 엔드포인트(com.amazonaws.)에 VPC 엔드포인트 정책을 연결하세요. 세션 엔드포인트 URL은 해당 URL이 생성된 VPC에 바인딩되므로 API 엔드포인트를 통해 region.athenaGetSessionEndpoint 또는 GetResourceDashboard를 직접적으로 호출할 수 있는 사용자를 제어하면 해당 세션 엔드포인트에 대한 액세스를 효과적으로 제어할 수 있습니다.
자세한 정보는 VPC 엔드포인트를 통해 서비스에 대한 액세스 제어를 참조하세요.
다음 예제에서는 특정 IAM 역할만 세션 엔드포인트 URL을 생성할 수 있습니다.
{ "Statement": [ { "Action": [ "athena:GetSessionEndpoint", "athena:GetResourceDashboard" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::<account-id>:role/<role-name>" } } ] }