다음을 통해 공유


다중 테넌시를 위한 Azure NAT Gateway 고려 사항

Azure NAT Gateway는 Azure 가상 네트워크 내에서 호스트되는 리소스에서 아웃바운드 네트워크 연결을 제어합니다. 이 문서에서는 NAT Gateway가 다중 테넌트 애플리케이션에 영향을 줄 수 있는 SNAT(원본 네트워크 주소 변환) 포트 소모를 완화하는 방법을 검토합니다. 또한 NAT Gateway가 다중 테넌트 솔루션의 아웃바운드 트래픽에 고정 IP 주소를 할당하는 방법도 검토합니다.

참고

Azure Firewall과 같은 방화벽을 사용하면 아웃바운드 트래픽을 제어하고 기록할 수 있습니다. 또한 Azure Firewall은 NAT Gateway에 유사한 SNAT 포트 확장 및 아웃바운드 IP 주소 제어를 제공합니다. NAT Gateway는 비용이 적게 들지만 기능이 적고 보안 제품이 아닙니다.

다중 테넌시를 지원하는 NAT Gateway의 기능

대규모 SNAT 포트

SNAT 포트는 애플리케이션이 동일한 포트에서 동일한 공용 IP 주소에 여러 개의 동시 아웃바운드 연결을 만들 때 할당됩니다. SNAT 포트는 부하 분산 장치 내에서 유한한 리소스입니다. 애플리케이션이 동일한 호스트에 대한 많은 수의 별도 연결을 여는 경우 사용 가능한 모든 SNAT 포트를 사용할 수 있습니다. 이 상황을 SNAT 포트 고갈이라고 합니다.

대부분의 애플리케이션에서 SNAT 포트 소모는 애플리케이션이 HTTP 연결 또는 TCP 포트를 잘못 처리하고 있음을 나타냅니다. 그러나 일부 다중 테넌트 애플리케이션은 연결을 적절하게 재사용하더라도 SNAT 포트 제한을 초과할 위험이 있습니다. 예를 들어 애플리케이션이 동일한 데이터베이스 게이트웨이 뒤에 있는 많은 테넌트별 데이터베이스에 연결할 때 이러한 상황이 발생할 수 있습니다.

다중 테넌트 애플리케이션에서 SNAT 포트 소모를 관찰하는 경우 애플리케이션이 모범 사례를 따르는지 확인해야 합니다. HTTP 연결을 다시 사용하고 외부 서비스에 연결할 때마다 새 연결을 다시 만들지 않도록 합니다. NAT Gateway를 배포하여 문제를 해결할 수 있지만 코드가 모범 사례를 따르지 않으면 나중에 문제가 다시 발생할 수 있습니다.

이 문제는 Azure App Service 및 Azure Functions와 같은 여러 고객 간에 SNAT 포트 할당을 공유하는 Azure 서비스를 사용할 때 더욱 악화됩니다.

SNAT가 고갈된 것을 확인하고 애플리케이션 코드가 아웃바운드 연결을 올바르게 처리한다고 확신하는 경우 NAT Gateway를 배포하는 것이 좋습니다. 이 방법은 일반적으로 Azure App Service 및 Azure Functions를 기반으로 구축된 다중 테넌트 솔루션을 배포하는 고객이 사용합니다.

NAT 게이트웨이에 연결된 각 공용 IP 주소는 인터넷에 아웃바운드를 연결하기 위한 64,512개의 SNAT 포트를 제공합니다. NAT 게이트웨이는 1백만 개 이상의 SNAT 포트를 제공하는 최대 16개의 공용 IP 주소를 사용하도록 확장할 수 있습니다. 이 제한을 초과하여 확장해야 하는 경우 여러 서브넷 또는 VNet에 여러 NAT Gateway 인스턴스를 배포하는 것을 고려할 수 있습니다. 서브넷의 각 가상 머신은 필요한 경우 사용 가능한 SNAT 포트를 사용할 수 있습니다.

아웃바운드 IP 주소 제어

아웃바운드 IP 주소 제어는 다음 요구 사항이 모두 있는 경우 다중 테넌트 애플리케이션에서 유용할 수 있습니다.

  • 아웃바운드 트래픽에 대한 전용 고정 IP 주소를 자동으로 제공하지 않는 Azure 서비스를 사용합니다. 이러한 서비스에는 Azure App Service, Azure Functions, API Management(소비 계층에서 실행되는 경우) 및 Azure Container Instances가 포함됩니다.
  • 인터넷을 통해 테넌트의 네트워크에 연결해야 합니다.
  • 테넌트는 각 요청의 IP 주소를 기준으로 들어오는 트래픽을 필터링해야 합니다.

NAT Gateway 인스턴스가 서브넷에 적용되면 해당 서브넷의 아웃바운드 트래픽은 NAT 게이트웨이와 연결된 공용 IP 주소를 사용합니다.

참고

여러 공용 IP 주소를 단일 NAT Gateway와 연결하면 아웃바운드 트래픽이 해당 IP 주소에서 올 수 있습니다. 대상에서 방화벽 규칙을 구성해야 할 수 있습니다. 각 IP 주소를 허용하거나 공용 IP 주소 접두사 리소스를 사용하여 동일한 범위의 공용 IP 주소 세트를 사용해야 합니다.

격리 모델

각 테넌트에 대해 다른 아웃바운드 공용 IP 주소를 제공해야 하는 경우 개별 NAT Gateway 리소스를 배포해야 합니다. 각 서브넷은 단일 NAT Gateway 인스턴스와 연결할 수 있습니다. 더 많은 NAT 게이트웨이를 배포하려면 여러 서브넷 또는 가상 네트워크를 배포해야 합니다. 따라서 여러 컴퓨팅 리소스 세트를 배포해야 할 수 있습니다.

다중 테넌트 네트워크 토폴로지를 디자인하는 방법에 대한 자세한 내용은 다중 테넌트 솔루션의 네트워킹에 대한 아키텍처 접근 방식을 검토합니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

  • John Downs | 수석 고객 엔지니어, FastTrack for Azure

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계