빠른 시작: Azure Front Door 표준/프리미엄 만들기 - Azure CLI
이 빠른 시작에서는 Azure CLI를 사용하여 Azure Front Door 표준/프리미엄 프로필을 만드는 방법을 알아봅니다. 두 개의 Web Apps를 원본으로 사용하여 이 프로필을 만들고 WAF 보안 정책을 추가합니다. 그런 다음, Azure Front Door 엔드포인트 호스트 이름을 사용하여 Web Apps에 대한 연결을 확인할 수 있습니다.
참고 항목
웹 워크로드의 경우 Azure DDoS Protection 및 웹 애플리케이션 방화벽을 활용하여 새로운 DDoS 공격으로부터 보호하는 것이 좋습니다. 또 다른 옵션은 웹 애플리케이션 방화벽과 함께 Azure Front Door를 사용하는 것입니다. Azure Front Door는 네트워크 수준 DDoS 공격에 대한 플랫폼 수준 보호를 제공합니다. 자세한 내용은 Azure 서비스에 대한 보안 기준을 참조하세요.
Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
사전 요구 사항
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
리소스 그룹 만들기
Azure에서 관련 리소스를 리소스 그룹에 할당합니다. 기존 리소스 그룹을 사용하거나 리소스 그룹을 새로 만들 수 있습니다.
az group create를 실행하여 리소스 그룹을 만듭니다.
az group create --name myRGFD --location centralus
Azure Front Door 프로필 만들기
이 단계에서는 두 App Services가 원본으로 사용할 Azure Front Door 프로필을 만듭니다.
az afd profile create를 실행하여 Azure Front Door 프로필을 만듭니다.
참고 항목
프리미엄 대신 Azure Front Door 표준을 배포하려는 경우 sku 매개 변수의 값을 Standard_AzureFrontDoor로 대체합니다. 표준 SKU를 선택하면 WAF 정책으로 관리 규칙을 배포할 수 없습니다. 자세한 비교는 Azure Front Door 계층 비교를 참조하세요.
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
웹앱의 두 인스턴스 만들기
이 단계에서는 이 자습서를 위해 서로 다른 Azure 지역에서 실행되는 두 개의 웹앱 인스턴스를 만듭니다. 두 웹 애플리케이션 인스턴스는 모두 활성/활성 모드로 실행되므로 두 인스턴스 중 하나에서 트래픽을 서비스할 수 있습니다. 이 구성은 장애 조치로 작동하는 활성/대기 구성과 다릅니다.
앱 서비스 계획 만들기
웹앱을 만들려면 먼저 하나는 미국 중부에, 다른 하나는 미국 동부에 있는 두 개의 앱 서비스 요금제가 필요합니다.
az appservice plan create를 실행하여 앱 서비스 요금제를 만듭니다.
az appservice plan create \
--name myAppServicePlanCentralUS \
--resource-group myRGFD \
--location centralus
az appservice plan create \
--name myAppServicePlanEastUS \
--resource-group myRGFD \
--location eastus
웹앱 만들기
App Service 플랜이 만들어지면 az webapp create를 실행하여 이전 단계의 각 App Service 플랜에 웹앱을 만듭니다. 웹앱 이름은 전역적으로 고유해야 합니다.
az webapp create \
--name WebAppContoso-01 \
--resource-group myRGFD \
--plan myAppServicePlanCentralUS
az webapp create \
--name WebAppContoso-02 \
--resource-group myRGFD \
--plan myAppServicePlanEastUS
다음 단계에서 Front Door를 배포할 때 백 엔드 주소를 정의할 수 있도록 각 웹앱의 기본 호스트 이름을 적어 둡니다.
Azure Front Door 만들기
Front Door 프로필 만들기
az afd profile create를 실행하여 Azure Front Door 프로필을 만듭니다.
참고 항목
프리미엄 대신 Azure Front Door 표준을 배포하려는 경우 sku 매개 변수의 값을 Standard_AzureFrontDoor
로 대체합니다. 표준 SKU를 선택하면 WAF 정책으로 관리 규칙을 배포할 수 없습니다. 자세한 비교는 Azure Front Door 계층 비교를 참조하세요.
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
엔드포인트 추가
이 단계에서는 Front Door 프로필에 엔드포인트를 만듭니다. Front Door 표준/프리미엄에서 엔드포인트는 도메인 이름과 연결된 하나 이상의 경로를 논리적으로 그룹화한 것입니다. 각 엔드포인트에는 Front Door에서 도메인 이름이 할당되며 경로를 사용하여 엔드포인트를 사용자 지정 도메인에 연결할 수 있습니다. Front Door 프로필에는 여러 엔드포인트가 포함될 수도 있습니다.
az afd endpoint create를 실행하여 프로필에 엔드포인트를 만듭니다.
az afd endpoint create \
--resource-group myRGFD \
--endpoint-name contosofrontend \
--profile-name contosoafd \
--enabled-state Enabled
Front Door의 엔드포인트에 대한 자세한 내용은 Azure Front Door의 엔드포인트를 참조하세요.
원본 그룹 만들기
앱 인스턴스에 대한 트래픽 및 예상 응답을 정의하는 원본 그룹을 만듭니다. 또한 원본 그룹은 상태 프로브에서 원본을 평가하는 방법(이 단계에서 정의 가능)을 정의합니다.
az afd origin-group create를 실행하여 두 개의 웹앱을 포함하는 원본 그룹을 만듭니다.
az afd origin-group create \
--resource-group myRGFD \
--origin-group-name og \
--profile-name contosoafd \
--probe-request-type GET \
--probe-protocol Http \
--probe-interval-in-seconds 60 \
--probe-path / \
--sample-size 4 \
--successful-samples-required 3 \
--additional-latency-in-milliseconds 50
그룹에 원본 추가
이전에 만든 두 앱 인스턴스를 새 원본 그룹에 원본으로 추가합니다. Front Door의 원본은 캐싱이 사용하도록 설정되지 않았거나 캐시가 누락된 경우 Front Door가 콘텐츠를 검색하는 애플리케이션을 나타냅니다.
az afd origin create를 실행하여 첫 번째 앱 인스턴스를 원본 그룹에 원본으로 추가합니다.
az afd origin create \
--resource-group myRGFD \
--host-name webappcontoso-01.azurewebsites.net \
--profile-name contosoafd \
--origin-group-name og \
--origin-name contoso1 \
--origin-host-header webappcontoso-01.azurewebsites.net \
--priority 1 \
--weight 1000 \
--enabled-state Enabled \
--http-port 80 \
--https-port 443
이 단계를 반복하고 두 번째 앱 인스턴스를 원본 그룹에 원본으로 추가합니다.
az afd origin create \
--resource-group myRGFD \
--host-name webappcontoso-02.azurewebsites.net \
--profile-name contosoafd \
--origin-group-name og \
--origin-name contoso2 \
--origin-host-header webappcontoso-02.azurewebsites.net \
--priority 1 \
--weight 1000 \
--enabled-state Enabled \
--http-port 80 \
--https-port 443
원본, 원본 그룹 및 상태 프로브에 대한 자세한 내용은 Azure Front Door의 원본 및 원본 그룹을 참조하세요.
경로 추가
이전에 만든 엔드포인트를 원본 그룹에 매핑하는 경로를 추가합니다. 이 경로는 엔드포인트에서 원본 그룹으로 요청을 전달합니다.
az afd route create를 실행하여 엔드포인트를 원본 그룹에 매핑합니다.
az afd route create \
--resource-group myRGFD \
--profile-name contosoafd \
--endpoint-name contosofrontend \
--forwarding-protocol MatchRequest \
--route-name route \
--https-redirect Enabled \
--origin-group og \
--supported-protocols Http Https \
--link-to-default-domain Enabled
Azure Front Door의 경로에 대한 자세한 내용은 원본에 대한 트래픽 라우팅 방법을 참조하세요.
새 보안 정책 만들기
Front Door의 Azure WAF(Web Application Firewall)는 웹 애플리케이션에 대한 중앙 집중식 보호를 제공하여 일반적인 악용 및 취약성으로부터 보호합니다.
이 자습서에서는 두 개의 관리형 규칙을 추가하는 WAF 정책을 만듭니다. 사용자 지정 규칙을 사용하여 WAF 정책을 만들 수도 있습니다.
WAF 정책 만들기
az network front-door waf-policy create를 실행하여 Front Door에 대한 새 WAF 정책을 만듭니다. 이 예제에서는 사용/방지 모드에 있는 정책을 만듭니다.
참고 항목
관리 규칙은 Front Door 프리미엄 계층에서만 작동합니다. 표준 계층을 선택해 onlu 사용자 지정 규칙을 사용할 수 있습니다.
az network front-door waf-policy create \
--name contosoWAF \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor \
--disabled false \
--mode Prevention
참고 항목
Detection
모드를 선택하면 WAF에서 요청을 차단하지 않습니다.
Front Door의 WAF 정책 설정에 대한 자세한 내용은 Azure Front Door의 Web Application Firewall에 대한 정책 설정을 참조하세요.
WAF 정책에 관리 규칙 할당
Azure 관리형 규칙 세트는 일반적인 보안 위협으로부터 애플리케이션을 쉽게 보호할 수 있는 방법을 제공합니다.
az network front-door waf-policy managed-rules add를 실행하여 WAF 정책에 관리 규칙을 추가합니다. 이 예에서는 정책에 Microsoft_DefaultRuleSet_2.1 및 Microsoft_BotManagerRuleSet_1.0을 추가합니다.
az network front-door waf-policy managed-rules add \
--policy-name contosoWAF \
--resource-group myRGFD \
--type Microsoft_DefaultRuleSet \
--action Block \
--version 2.1
az network front-door waf-policy managed-rules add \
--policy-name contosoWAF \
--resource-group myRGFD \
--type Microsoft_BotManagerRuleSet \
--version 1.0
Front Door의 관리형 규칙에 대해 자세히 알아보려면 Web Application Firewall DRS 규칙 그룹 및 규칙을 참조하세요.
보안 정책 만들기
보안 정책을 만들어 Front Door에 이러한 두 WAF 정책을 적용합니다. 이 설정은 이전에 정의한 엔드포인트에 Azure 관리형 규칙이 적용됩니다.
az afd security-policy create를 실행하여 엔드포인트의 기본 도메인에 WAF 정책을 적용합니다.
참고 항목
도메인 및 waf-policy 매개 변수에서 'mysubscription'을 Azure 구독 ID로 대체합니다. az account subscription list를 실행하여 구독 ID 세부 정보를 가져옵니다.
az afd security-policy create \
--resource-group myRGFD \
--profile-name contosoafd \
--security-policy-name contososecurity \
--domains /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contosofrontend \
--waf-policy /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF
Front Door 테스트
Azure Front Door 표준/프리미엄 프로필을 만들 때 구성이 전역적으로 배포되는 데 몇 분 정도 걸립니다. 완료되면 앞서 만든 프런트 엔드 호스트에 액세스할 수 있습니다.
az afd endpoint show를 실행하여 Front Door 엔드포인트의 호스트 이름을 가져옵니다.
az afd endpoint show --resource-group myRGFD --profile-name contosoafd --endpoint-name contosofrontend
브라우저에서 엔드포인트 호스트 이름(contosofrontend-<hash>.z01.azurefd.net
)으로 이동합니다. 사용자의 요청은 자동으로 원본 그룹에서 가장 지연이 적은 웹앱으로 라우팅됩니다.
즉각적인 글로벌 장애 조치(failover)를 테스트하기 위해 다음 단계를 수행합니다.
브라우저를 열고 엔드포인트 호스트 이름(
contosofrontend-<hash>.z01.azurefd.net
)으로 이동합니다.az webapp stop을 실행하여 Web Apps 중 하나를 중지합니다.
az webapp stop --name WebAppContoso-01 --resource-group myRGFD
브라우저를 새로 고칩니다. 동일한 정보 페이지가 표시됩니다.
팁
이러한 작업에는 약간의 지연이 있습니다. 다시 새로 고쳐야 할 수도 있습니다.
다른 웹앱도 찾아서 중지합니다.
az webapp stop --name WebAppContoso-02 --resource-group myRGFD
브라우저를 새로 고칩니다. 이번에는 오류 메시지가 표시됩니다.
az webapp start를 실행하여 Web Apps 중 하나를 다시 시작합니다. 브라우저를 새로 고치면 페이지가 정상으로 돌아갑니다.
az webapp start --name WebAppContoso-01 --resource-group myRGFD
리소스 정리
Front Door용 리소스가 필요하지 않은 경우 두 리소스 그룹을 모두 삭제합니다. 리소스 그룹을 삭제하면 Front Door와 관련된 모든 리소스도 삭제됩니다.
az group delete를 실행합니다.
az group delete --name myRGFD
다음 단계
사용자 지정 도메인을 Front Door에 추가하는 방법을 알아보려면 다음 문서로 계속 진행하세요.