HDInsight on AKS 클러스터 풀 및 클러스터에서 네트워크 트래픽 제어
참고 항목
2025년 1월 31일에 Azure HDInsight on AKS가 사용 중지됩니다. 2025년 1월 31일 이전에 워크로드가 갑자기 종료되지 않도록 워크로드를 Microsoft Fabric 또는 동등한 Azure 제품으로 마이그레이션해야 합니다. 구독의 나머지 클러스터는 호스트에서 중지되고 제거됩니다.
사용 중지 날짜까지 기본 지원만 사용할 수 있습니다.
Important
이 기능은 현지 미리 보기로 제공됩니다. Microsoft Azure 미리 보기에 대한 보충 사용 약관에는 베타 또는 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 더 많은 약관이 포함되어 있습니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight on AKS 미리 보기 정보를 참조하세요. 질문이나 기능 제안이 있는 경우 세부 정보와 함께 AskHDInsight에 요청을 제출하고 Azure HDInsight 커뮤니티에서 추가 업데이트를 보려면 팔로우하세요.
HDInsight on AKS는 AKS(Azure Kubernetes Service)에서 실행되는 관리 PaaS(서비스 제공 플랫폼)입니다. HDInsight on AKS를 사용하면 컨테이너를 관리하고 모니터링하는 오버헤드 없이 Apache Spark™, Apache Flink®️ 및 Trino와 같은 인기 있는 오픈 소스 분석 워크로드를 배포할 수 있습니다.
기본적으로 HDInsight on AKS 클러스터는 노드의 네트워크 인터페이스에서 대상에 연결할 수 있는 경우 클러스터에서 모든 대상으로의 아웃바운드 네트워크 연결을 허용합니다. 이는 클러스터 리소스가 인터넷이나 가상 네트워크의 모든 공용 또는 개인 IP 주소, 도메인 이름 또는 URL에 액세스할 수 있음을 의미합니다.
그러나 일부 시나리오에서는 보안, 준수를 위해 클러스터의 송신 트래픽을 제어하거나 제한할 수 있습니다.
예를 들어 다음을 수행하려고 할 수 있습니다.
클러스터가 악의적이거나 원치 않는 서비스에 액세스하지 못하도록 방지합니다.
아웃바운드 트래픽에 네트워크 정책이나 방화벽 규칙을 적용합니다.
문제 해결 또는 준수를 위해 클러스터의 송신 트래픽을 모니터링하거나 감사합니다.
송신 트래픽을 제어하는 방법 및 도구
HDInsight on AKS 클러스터에서 송신 트래픽이 흐르는 방식을 관리하기 위한 다양한 옵션과 도구가 있습니다. 이들 중 일부는 클러스터 풀 수준에서 설정하고 나머지는 클러스터 수준에서 설정할 수 있습니다.
부하 분산 장치를 사용한 아웃바운드. 이 송신 경로를 사용하여 클러스터 풀을 배포하면 공용 IP 주소가 프로비전되고 부하 분산 장치 리소스에 할당됩니다. 사용자 지정 VNET(가상 네트워크)은 필요하지 않습니다. 그러나 적극 권장됩니다. 사용자 지정 VNET에서 Azure Firewall 또는 NSG(네트워크 보안 그룹)를 사용하여 네트워크에서 나가는 트래픽을 관리할 수 있습니다.
사용자 정의 라우팅을 사용한 아웃바운드. 이 송신 경로를 사용하여 클러스터 풀을 배포하면 사용자는 Azure Firewall/NAT Gateway 및 사용자 지정 경로 테이블을 사용하여 서브넷 수준에서 송신 트래픽을 관리할 수 있습니다. 이 옵션은 사용자 지정 VNET을 사용하는 경우에만 사용할 수 있습니다.
프라이빗 AKS를 사용하도록 설정합니다. 클러스터 풀에서 프라이빗 AKS를 사용하도록 설정하면 AKS API 서버에 내부 IP 주소가 할당되며 공개적으로 액세스할 수 없습니다. AKS API 서버와 HDInsight on AKS 노드 풀(클러스터) 간의 네트워크 트래픽은 개인 네트워크에 유지됩니다.
프라이빗 수신 클러스터. 프라이빗 수신 옵션이 사용하도록 설정된 클러스터를 배포하면 공용 IP가 만들어지지 않으며 동일한 VNet 내의 클라이언트에서만 클러스터에 액세스할 수 있습니다. 아웃바운드 공용 HDInsight on AKS 종속성에 연결하려면 NAT 게이트웨이 또는 방화벽에서 제공하는 NAT와 같은 고유한 NAT 솔루션을 제공해야 합니다.
다음 섹션에서는 각 방법을 자세히 설명합니다.
부하 분산 장치를 사용한 아웃바운드
부하 분산 장치는 HDInsight on AKS 할당 공용 IP를 통한 송신에 사용됩니다. 클러스터 풀에서 아웃바운드 형식의 부하 분산 장치를 구성하면 HDInsight on AKS에서 만든 부하 분산 장치에서 송신이 예상될 수 있습니다.
Azure Portal을 사용하여 부하 분산 장치 구성으로 아웃바운드를 구성할 수 있습니다.
이 구성을 선택하면 HDInsight on AKS는 클러스터 송신을 위해 프로비전된 공용 IP 주소 만들기를 자동으로 완료하고 부하 분산 장치 리소스에 할당합니다.
HDInsight on AKS가 만든 공용 IP이며 AKS 관리되는 리소스입니다. 즉, AKS가 해당 공용 IP의 수명 주기를 관리하고 공용 IP 리소스에 대한 사용자 작업이 직접 필요하지 않습니다.
클러스터가 만들어지면 특정 수신 공용 IP도 만들어집니다.
요청이 클러스터로 전송되도록 허용하려면 트래픽을 허용 목록에 추가해야 합니다. 또한 대략적인 제어를 수행하도록 NSG에서 특정 규칙을 구성할 수도 있습니다.
사용자 정의 라우팅을 사용한 아웃바운드
참고 항목
userDefinedRouting
아웃바운드 형식은 고급 네트워킹 시나리오이며 시작하기 전에 적절한 네트워크 구성이 필요합니다.
클러스터 풀 만들기 후 아웃바운드 형식 변경은 지원되지 않습니다.
userDefinedRouting이 설정된 경우 HDInsight on AKS는 송신 경로를 자동으로 구성하지 않습니다. 송신 설정은 사용자가 수행해야 합니다.
이전에 구성된 서브넷이 있는 기존 가상 네트워크에 HDInsight on AKS 클러스터를 배포해야 하며 명시적 송신을 설정해야 합니다.
이 아키텍처에서는 방화벽, 게이트웨이 또는 프록시와 같은 어플라이언스에 송신 트래픽을 명시적으로 보내야 하므로 표준 Load Balancer 또는 어플라이언스에 할당된 공용 IP가 NAT(Network Address Translation)를 처리할 수 있습니다.
HDInsight on AKS는 위 섹션에 설명된 부하 분산 장치 형식 클러스터가 있는 아웃바운드와 달리 아웃바운드 공용 IP 주소 또는 아웃바운드 규칙을 구성하지 않습니다. UDR은 송신 트래픽의 유일한 원본입니다.
인바운드 트래픽의 경우 요구 사항에 따라 프라이빗 클러스터를 선택하고(AKS 컨트롤 플레인/API 서버의 트래픽 보안을 보호하기 위해) 공용 또는 내부 부하 분산 장치 기반 트래픽을 사용하려면 각 클러스터 형태에서 사용 가능한 개인 수신 옵션을 선택해야 합니다.
userDefinedRouting
을 사용한 아웃바운드에 대한 클러스터 풀 만들기
HDInsight on AKS 클러스터 풀을 사용하고 UDR(userDefinedRouting)을 송신 경로로 선택하면 표준 Load Balancer가 프로비전되지 않습니다. userDefinedRouting
이 작동하려면 먼저 아웃바운드 리소스에 대한 방화벽 규칙을 설정해야 합니다.
Important
UDR 송신 경로에는 0.0.0.0/0에 대한 경로와 경로 테이블의 방화벽 또는 NVA의 다음 홉 대상이 필요합니다. 경로 테이블에는 인터넷에 대한 기본값 0.0.0.0/0이 이미 있습니다. Azure에는 SNAT용 공용 IP 주소가 필요하기 때문에 이 경로를 추가하는 것만으로는 아웃바운드 인터넷 연결을 가져올 수 없습니다. AKS는 인터넷이 아닌 게이트웨이, NVA 등을 가리키는 0.0.0.0/0 경로를 만들지 확인합니다. UDR을 사용하는 경우 인바운드 요청에 대한 부하 분산 장치 공용 IP 주소는 부하 분산 장치 형식의 서비스를 구성하는 경우에만 만들어집니다. HDInsight on AKS는 UDR 송신 경로를 사용할 때 아웃바운드 요청에 대한 공용 IP 주소를 만들지 않습니다.
다음 단계를 통해 HDInsight on AKS 서비스에서 백 엔드 Azure 리소스 또는 Azure Firewall을 사용하는 기타 네트워크 리소스로의 아웃바운드 트래픽을 잠그는 방법을 이해하게 됩니다. 이 구성은 데이터 반출 또는 악성 프로그램 이식 위험을 방지하는 데 도움이 됩니다.
Azure Firewall을 사용하면 훨씬 더 세분화된 수준에서 아웃바운드 트래픽을 제어하고 Microsoft Cyber Security의 실시간 위협 인텔리전스를 기반으로 트래픽을 필터링할 수 있습니다. 구독 및 가상 네트워크 전반에 걸쳐 애플리케이션 및 네트워크 연결 정책을 중앙에서 만들고, 적용하고 기록할 수 있습니다.
다음은 방화벽 규칙을 설정하고 아웃바운드 연결을 테스트하는 예입니다.
다음은 방화벽 규칙을 구성하고 아웃바운드 연결을 확인하는 방법의 예입니다.
필요한 방화벽 서브넷 만들기
통합 가상 네트워크에 방화벽을 배포하려면 AzureFirewallSubnet 또는 원하는 이름이라는 서브넷이 필요합니다.
Azure Portal에서 앱과 통합된 가상 네트워크로 이동합니다.
왼쪽 탐색 영역에서 서브넷>+ 서브넷을 선택합니다.
이름에 AzureFirewallSubnet을 입력합니다.
서브넷 주소 범위, 기본값을 적용하거나 크기가 /26 이상인 범위를 지정합니다.
저장을 선택합니다.
방화벽 배포 및 해당 IP 가져오기
Azure Portal 메뉴 또는 홈 페이지에서 리소스 만들기를 선택합니다.
검색 상자에 방화벽을 입력하고 Enter 키를 누릅니다.
방화벽을 선택하고 만들기를 선택합니다.
방화벽 만들기 페이지에서 다음 표에 표시된 대로 방화벽을 구성합니다.
설정 값 Resource group 통합 가상 네트워크와 동일한 리소스 그룹입니다. 속성 선택한 이름 지역 통합 가상 네트워크와 동일한 지역입니다. 방화벽 정책 새로 추가를 선택하여 새로 만듭니다. 가상 네트워크 통합 가상 네트워크를 선택합니다. 공용 IP 주소 기존 주소를 선택하거나 새로 추가를 선택하여 주소를 만듭니다. 검토 + 만들기를 클릭합니다.
만들기를 다시 선택합니다. 이 프로세스를 배포하는 데 몇 분 정도 걸립니다.
배포가 완료되면 리소스 그룹으로 이동하여 방화벽을 선택합니다.
방화벽의 개요 페이지에서 개인 IP 주소를 복사합니다. 개인 IP 주소는 가상 네트워크에 대한 라우팅 규칙에서 다음 홉 주소로 사용됩니다.
방화벽으로 모든 트래픽 라우팅
가상 네트워크를 만들 때 Azure는 각 서브넷에 대한 기본 경로 테이블을 자동으로 만들고 테이블에 시스템 기본 경로를 추가합니다. 이 단계에서는 모든 트래픽을 방화벽으로 라우팅하는 사용자 정의 경로 테이블을 만든 다음, 통합 가상 네트워크의 App Service 서브넷과 연결합니다.
Azure Portal 메뉴에서 모든 서비스를 선택하거나 검색하여 어느 페이지에서든 모든 서비스를 선택합니다.
네트워킹 아래에서 경로 테이블을 선택합니다.
추가를 선택합니다.
다음 예제와 같이 경로 테이블을 구성합니다.
만든 방화벽과 동일한 지역을 선택해야 합니다.
검토 + 만들기를 선택합니다.
만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택합니다.
왼쪽 탐색 메뉴에서 경로 > 추가를 선택합니다.
다음 표와 같이 새 경로를 구성합니다.
설정 값 대상 형식 IP 주소 대상 IP 주소/CIDR 범위 0.0.0.0/0 다음 홉 유형 가상 어플라이언스 다음 홉 주소 복사한 방화벽의 개인 IP 주소 왼쪽 탐색 메뉴에서 서브넷 > 연결을 선택합니다.
가상 네트워크에서 통합 가상 네트워크를 선택합니다.
서브넷에서 사용하려는 HDInsight on AKS 서브넷을 선택합니다.
확인을 선택합니다.
방화벽 정책 구성
HDInsight on AKS 서브넷의 아웃바운드 트래픽은 이제 통합 가상 네트워크를 통해 방화벽으로 라우팅됩니다. 아웃바운드 트래픽을 제어하려면 방화벽 정책에 애플리케이션 규칙을 추가합니다.
방화벽의 개요 페이지로 이동하여 방화벽 정책을 선택합니다.
방화벽 정책 페이지의 왼쪽 탐색에서 네트워크 및 애플리케이션 규칙을 추가합니다. 예를 들어, 네트워크 규칙 > 규칙 컬렉션 추가를 선택합니다.
규칙에서 서브넷을 원본 주소로 사용하여 네트워크 규칙을 추가하고 FQDN 대상을 지정합니다. 마찬가지로 애플리케이션 규칙을 추가합니다.
- 여기에 제공된 아웃바운드 트래픽 규칙을 추가해야 합니다. 클러스터가 작동하도록 트래픽을 허용하려면 애플리케이션 및 네트워크 규칙 추가에 대한 이 문서를 참조하세요. (AKS ApiServer는 ClusterPool을 만든 후에만 가져올 수 있으므로 ClusterPool을 만든 후에 AKS ApiServer를 추가해야 합니다.)
- 클러스터가 액세스할 수 있도록 동일한 서브넷에 있는 모든 종속 리소스에 대해 프라이빗 엔드포인트를 추가할 수도 있습니다(예: 스토리지).
추가를 선택합니다.
공용 IP가 만들어졌는지 확인
방화벽 규칙을 설정하면 클러스터 풀을 만드는 동안 서브넷을 선택할 수 있습니다.
클러스터 풀이 만들어지면 MC 그룹에서 공용 IP가 만들어지지 않은 것을 확인할 수 있습니다.
Important
Outbound with userDefinedRouting
송신 경로를 사용하여 클러스터 풀 설정에서 클러스터를 만들기 전에 클러스터 풀과 일치하는 AKS 클러스터에 Virtual Network, 경로 테이블 및 NSG(사용된 경우)와 같은 라우팅을 정의하는 데 사용되는 네트워크 리소스에 대한 Network Contributor
역할을 제공해야 합니다. 역할을 할당하는 방법에 대해 자세히 알아보기
참고 항목
UDR 송신 경로 및 프라이빗 수신 클러스터를 사용하여 클러스터 풀을 배포하면 HDInsight on AKS는 자동으로 프라이빗 DNS 영역을 만들고 항목을 매핑하여 클러스터에 액세스하기 위한 FQDN을 확인합니다.
프라이빗 AKS를 사용한 클러스터 풀 만들기
프라이빗 AKS를 사용하는 경우 컨트롤 플레인 또는 API 서버에는 RFC1918 - 프라이빗 인터넷 주소 할당 문서에 정의된 내부 IP 주소가 있습니다. 프라이빗 AKS의 이 옵션을 사용하면 API 서버와 HDInsight on AKS 워크로드 클러스터 간의 네트워크 트래픽이 개인 네트워크에만 유지되도록 할 수 있습니다.
프라이빗 AKS 클러스터를 프로비전하는 경우 AKS는 기본값으로 프라이빗 DNS 영역이 있는 프라이빗 FQDN과 Azure 공용 DNS에 해당 A 레코드가 있는 추가 공용 FQDN을 만듭니다. 에이전트 노드는 프라이빗 DNS 영역의 A 레코드를 사용하여 API 서버와 통신할 프라이빗 엔드포인트의 개인 IP 주소를 확인합니다.
HDInsight on AKS는 프라이빗 수신을 위해 AKS에서 만든 관리 그룹의 HDInsight에 있는 프라이빗 DNS 영역에 레코드를 자동으로 삽입합니다.
프라이빗 수신이 있는 클러스터
HDInsight on AKS를 사용하여 클러스터를 만들면 누구나 액세스할 수 있는 공용 FQDN 및 IP 주소가 있습니다. 프라이빗 수신 기능을 사용하면 개인 네트워크만 클라이언트와 HDInsight on AKS 클러스터 간에 데이터를 보내고 받을 수 있는지 확인할 수 있습니다.
참고 항목
이 기능을 사용하면 HDInsight on AKS는 수신을 위해 프라이빗 DNS 영역에 A 레코드를 자동으로 만듭니다.
이 기능은 클러스터에 대한 공용 인터넷 액세스를 방지합니다. 클러스터는 내부 부하 분산 장치와 개인 IP를 가져옵니다. HDInsight on AKS는 클러스터 Virtual Network에 연결하고 이름 확인을 수행하기 위해 클러스터 풀이 만든 프라이빗 DNS 영역을 사용합니다.
각 프라이빗 클러스터에는 공용 FQDN과 프라이빗 FQDN이라는 두 개의 FQDN이 포함되어 있습니다.
공용 FQDN: {clusterName}.{clusterPoolName}.{subscriptionId}.{region}.hdinsightaks.net
공용 FQDN은 하위 도메인이 있는 CNAME으로만 확인될 수 있으므로 FQDN이 최종적으로 올바른 개인 IP 주소로 확인될 수 있도록 올바른 Private DNS zone setting
과 함께 사용해야 합니다.
프라이빗 DNS 영역은 프라이빗 FQDN을 IP (privatelink.{clusterPoolName}.{subscriptionId})
로 확인할 수 있어야 합니다.
참고 항목
HDInsight on AKS는 클러스터 풀, 가상 네트워크에 프라이빗 DNS 영역을 만듭니다. 클라이언트 애플리케이션이 동일한 가상 네트워크에 있는 경우 프라이빗 DNS 영역을 다시 구성할 필요가 없습니다. 다른 가상 네트워크에서 클라이언트 애플리케이션을 사용하는 경우 가상 네트워크 피어링을 사용하고 클러스터 풀 가상 네트워크의 프라이빗 dns 영역에 바인딩하거나 가상 네트워크의 프라이빗 엔드포인트 및 프라이빗 dns 영역을 사용하여 프라이빗 엔드포인트 프라이빗 IP에 A-레코드를 추가해야 합니다.
프라이빗 FQDN: {clusterName}.privatelink.{clusterPoolName}.{subscriptionId}.{region}.hdinsightaks.net
프라이빗 FQDN은 프라이빗 수신이 사용하도록 설정된 클러스터에만 할당됩니다. 클러스터의 개인 IP로 확인되는 프라이빗 DNS 영역의 A-레코드입니다.