빠른 시작: Azure CLI를 사용하여 Azure Front Door 만들기
이 빠른 시작에서는 Azure CLI를 사용하여 Azure Front Door를 만드는 방법을 알아봅니다. 두 개의 Azure 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 Standard를 배포하려면 sku 매개 변수의 값을 .로 Standard_AzureFrontDoor
바꿔야 합니다. WAF 정책을 사용하는 관리되는 규칙은 표준 SKU에서 사용할 수 없습니다. 자세한 비교는 Azure Front Door 계층 비교를 참조하세요.
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
웹앱의 두 인스턴스 만들기
이 단계에서는 서로 다른 Azure 지역에서 실행되는 두 개의 웹앱 인스턴스를 만듭니다. 두 인스턴스는 모두 활성/활성 모드에서 작동합니다. 즉, 트래픽을 처리할 수 있습니다. 이 설정은 하나의 인스턴스가 장애 조치(failover) 역할을 하는 Active/Stand-By 구성과 다릅니다.
앱 서비스 계획 만들기
먼저 두 개의 App Service 계획(미국 중부 및 미국 동부에 하나씩)을 만듭니다.
다음 명령을 실행하여 App Service 계획을 만듭니다.
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 \
--name WebAppContoso-01 \
--resource-group myRGFD \
--plan myAppServicePlanCentralUS
az webapp create \
--name WebAppContoso-02 \
--resource-group myRGFD \
--plan myAppServicePlanEastUS
다음 단계에서 Azure Front Door를 배포할 때 백 엔드 주소를 정의해야 하므로 각 웹앱의 기본 호스트 이름을 기록해 둡니다.
Azure Front Door 만들기
Azure Front Door 프로필 만들기
az afd profile create를 실행하여 Azure Front Door 프로필을 만듭니다.
참고 항목
프리미엄 대신 Azure Front Door Standard를 배포하려면 매개 변수Standard_AzureFrontDoor
를 sku
.로 설정합니다. WAF 정책을 사용하는 관리되는 규칙은 표준 SKU에서 사용할 수 없습니다. 자세한 비교는 Azure Front Door 계층 비교를 참조하세요.
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
엔드포인트 추가
Azure Front Door 프로필에서 엔드포인트를 만듭니다. 엔드포인트는 도메인 이름과 연결된 하나 이상의 경로를 논리적으로 그룹화한 것입니다. 각 엔드포인트에는 Azure Front Door에서 도메인 이름이 할당되며 경로를 사용하여 엔드포인트를 사용자 지정 도메인과 연결할 수 있습니다. Azure Front Door 프로필에는 여러 엔드포인트가 포함될 수 있습니다.
az afd endpoint create를 실행하여 프로필에 엔드포인트를 만듭니다.
az afd endpoint create \
--resource-group myRGFD \
--endpoint-name contosofrontend \
--profile-name contosoafd \
--enabled-state Enabled
Azure 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
원본 그룹에 원본 추가
이전에 만든 두 앱 인스턴스를 새 원본 그룹에 원본으로 추가합니다. Azure Front Door의 원본은 캐싱을 사용하지 않거나 캐시 누락이 발생할 때 Azure 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의 경로에 대한 자세한 내용은 원본에 대한 트래픽 라우팅 방법을 참조하세요.
새 보안 정책 만들기
Azure Front Door의 AZURE WAF(웹 애플리케이션 방화벽)는 웹 애플리케이션에 대한 중앙 집중식 보호를 제공하여 일반적인 악용 및 취약성을 방지합니다.
이 자습서에서는 두 개의 관리되는 규칙을 포함하는 WAF 정책을 만듭니다. 사용자 지정 규칙을 사용하여 WAF 정책을 만들 수도 있습니다.
WAF 정책 만들기
az network front-door waf-policy create를 실행 하여 Azure Front Door에 대한 새 WAF 정책을 만듭니 다. 이 예제에서는 사용/방지 모드에 있는 정책을 만듭니다.
참고 항목
관리되는 규칙은 Azure Front Door 프리미엄 계층에서만 사용할 수 있습니다. 표준 계층에서 사용자 지정 규칙을 사용할 수 있습니다.
az network front-door waf-policy create \
--name contosoWAF \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor \
--disabled false \
--mode Prevention
참고 항목
모드를 선택하면 Detection
WAF에서 요청을 차단하지 않습니다.
Azure Front Door에 대한 WAF 정책 설정에 대한 자세한 내용은 Azure Front Door의 웹 애플리케이션 방화벽에 대한 정책 설정을 참조 하세요.
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
Azure Front Door의 관리되는 규칙에 대한 자세한 내용은 웹 애플리케이션 방화벽 DRS 규칙 그룹 및 규칙을 참조하세요.
보안 정책 적용
이제 보안 정책을 만들어 AZURE Front Door에 WAF 정책을 적용합니다. 이 설정은 이전에 정의한 엔드포인트에 Azure 관리 규칙을 적용합니다.
az afd security-policy create를 실행하여 엔드포인트의 기본 도메인에 WAF 정책을 적용합니다.
참고 항목
'mysubscription'을 도메인 및 waf-policy 매개 변수의 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
Azure Front Door 테스트
Azure Front Door 프로필을 만든 후 구성을 전역적으로 배포하는 데 몇 분 정도 걸립니다. 완료되면 앞서 만든 프런트 엔드 호스트에 액세스할 수 있습니다.
az afd 엔드포인트 쇼를 실행하여 Azure 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
리소스 정리
Azure Front Door에 대해 만든 리소스가 더 이상 필요하지 않은 경우 리소스 그룹을 삭제할 수 있습니다. 이 작업은 Azure Front Door 및 연결된 모든 리소스를 제거합니다.
다음 명령을 실행하여 리소스 그룹을 삭제합니다.
az group delete --name myRGFD
다음 단계
다음 문서를 진행하여 Azure Front Door에 사용자 지정 도메인을 추가하는 방법을 알아봅니다.