Azure Storage에서 정적 웹 사이트 호스팅Static website hosting in Azure Storage

$Web이라는 저장소 컨테이너에서 직접 정적 콘텐츠 (HTML, CSS, JavaScript 및 이미지 파일)를 제공할 수 있습니다.You can serve static content (HTML, CSS, JavaScript, and image files) directly from a storage container named $web. Azure Storage에서 콘텐츠를 호스팅하면 Azure Functions 및 기타 PaaS (Platform as a service) 서비스를 포함 하는 서버 리스 아키텍처를 사용할 수 있습니다.Hosting your content in Azure Storage enables you to use serverless architectures that include Azure Functions and other Platform as a service (PaaS) services.

참고

사이트가 서버 쪽 코드에 종속 되는 경우 대신 Azure App Service 를 사용 합니다.If your site depends on server-side code, use Azure App Service instead.

정적 웹 사이트 설정Setting up a static website

정적 웹 사이트 호스팅은 저장소 계정에서 사용 하도록 설정 해야 하는 기능입니다.Static website hosting is a feature that you have to enable on the storage account.

정적 웹 사이트 호스팅을 사용 하도록 설정 하려면 기본 파일의 이름을 선택한 다음 필요에 따라 사용자 지정 404 페이지의 경로를 제공 합니다.To enable static website hosting, select the name of your default file, and then optionally provide a path to a custom 404 page. $Web 이라는 blob 저장소 컨테이너가 계정에 아직 없는 경우 하나를 만듭니다.If a blob storage container named $web doesn't already exist in the account, one is created for you. 이 컨테이너에 사이트의 파일을 추가 합니다.Add the files of your site to this container.

단계별 지침은 Azure Storage에서 정적 웹 사이트 호스팅을 참조 하세요.For step-by-step guidance, see Host a static website in Azure Storage.

Azure Storage 정적 웹 사이트 메트릭

$Web 컨테이너의 파일은 대/소문자를 구분 하며 익명 액세스 요청을 통해 제공 되며 읽기 작업을 통해서만 사용할 수 있습니다.Files in the $web container are case-sensitive, served through anonymous access requests and are available only through read operations.

콘텐츠 업로드Uploading content

이러한 도구 중 하나를 사용 하 여 $web 컨테이너에 콘텐츠를 업로드할 수 있습니다.You can use any of these tools to upload content to the $web container:

콘텐츠 보기Viewing content

사용자는 웹 사이트의 공용 URL을 사용 하 여 브라우저에서 사이트 콘텐츠를 볼 수 있습니다.Users can view site content from a browser by using the public URL of the website. Azure Portal, Azure CLI 또는 PowerShell을 사용 하 여 URL을 찾을 수 있습니다.You can find the URL by using the Azure portal, Azure CLI, or PowerShell. 이 표를 가이드로 참조하세요.Use this table as a guide.

도구Tool 지침Guidance
Azure PortalAzure portal Azure Portal를 사용 하 여 웹 사이트 URL을 찾습니다.Find the website URL by using the Azure portal
Azure CLIAzure CLI Azure CLI를 사용 하 여 웹 사이트 URL을 찾습니다.Find the website URL by using the Azure CLI
Azure PowerShell 모듈Azure PowerShell module PowerShell을 사용 하 여 웹 사이트 URL 찾기Find the website URL by using PowerShell

사이트의 URL은 지역 코드를 포함 합니다.The URL of your site contains a regional code. 예를 들어 https://contosoblobaccount.z22.web.core.windows.net/ URL에는 지역 코드 z22포함 되어 있습니다.For example the URL https://contosoblobaccount.z22.web.core.windows.net/ contains regional code z22.

이 코드는 URL에 남아 있어야 하지만 내부용 으로만 사용 되며 다른 방법으로는 해당 코드를 사용할 필요가 없습니다.While that code must remain in the URL, it is only for internal use, and you won't have to use that code in any other way.

정적 웹 사이트 호스팅을 사용 하도록 설정할 때 지정한 인덱스 문서는 사용자가 사이트를 열고 특정 파일을 지정 하지 않을 때 표시 됩니다 (예: https://contosoblobaccount.z22.web.core.windows.net).The index document that you specify when you enable static website hosting, appears when users open the site and don't specify a specific file (For example: https://contosoblobaccount.z22.web.core.windows.net).

서버에서 404 오류를 반환 하 고 웹 사이트를 사용 하도록 설정할 때 오류 문서를 지정 하지 않은 경우 기본 404 페이지가 사용자에 게 반환 됩니다.If the server returns a 404 error, and you have not specified an error document when you enabled the website, then a default 404 page is returned to the user.

참고

CORS 는 정적 웹 사이트에서 지원 되지 않습니다.CORS is not supported with static website.

웹 컨테이너의 공용 액세스 수준을 설정 하는 경우의 영향Impact of the setting the public access level of the web container

$Web 컨테이너의 공용 액세스 수준을 수정할 수 있지만 이러한 파일은 익명 액세스 요청을 통해 제공 되므로 기본 정적 웹 사이트 끝점에는 영향을 주지 않습니다.You can modify the public access level of the $web container, but this has no impact on the primary static website endpoint because these files are served through anonymous access requests. 이는 모든 파일에 대 한 공용 (읽기 전용) 액세스를 의미 합니다.That means public (read-only) access to all files.

다음 스크린샷은 Azure Portal의 공용 액세스 수준 설정을 보여 줍니다.The following screenshot shows the public access level setting in the Azure portal:

포털에서 공용 액세스 수준을 설정 하는 방법을 보여 주는 스크린샷

기본 정적 웹 사이트 끝점에는 영향을 주지 않지만 공용 액세스 수준에 대 한 변경 내용은 주 blob service 끝점에 영향을 줍니다.While the primary static website endpoint is not affected, a change to the public access level does impact the primary blob service endpoint.

예를 들어 $web 컨테이너의 공용 액세스 수준을 Private (익명 액세스 없음) 에서 blob (blob에 대 한 익명 읽기 액세스)로 변경 하는 경우 주 정적 웹 사이트 끝점에 대 한 공용 액세스 수준이 변경 되지 않습니다 https://contosoblobaccount.z22.web.core.windows.net/index.html.For example, if you change the public access level of the $web container from Private (no anonymous access) to Blob (anonymous read access for blobs only), then the level of public access to the primary static website endpoint https://contosoblobaccount.z22.web.core.windows.net/index.html doesn't change.

그러나 기본 blob 서비스 끝점에 대 한 공용 액세스 https://contosoblobaccount.blob.core.windows.net/$web/index.html 개인에서 공용으로 변경 됩니다.However, the public access to the primary blob service endpoint https://contosoblobaccount.blob.core.windows.net/$web/index.html does change from private to public. 이제 사용자는 이러한 두 끝점 중 하나를 사용 하 여 해당 파일을 열 수 있습니다.Now users can open that file by using either of these two endpoints.

Content Delivery Network (CDN) 및 SSL (Secure Socket Layer) 지원Content Delivery Network (CDN) and Secure Socket Layer (SSL) support

사용자 지정 도메인 및 HTTPS를 통해 정적 웹 사이트 파일을 사용할 수 있도록 설정 하려면 Azure CDN을 사용 하 여 https를 통한 사용자 지정 도메인으로 blob 액세스를참조 하세요.To make your static website files available over your custom domain and HTTPS, see Using the Azure CDN to access blobs with custom domains over HTTPS. 이 프로세스의 일부로, 기본 blob service 끝점과는 달리 CDN을 기본 정적 웹 사이트 끝점으로 가리켜야 합니다.As a part of this process, you need to point your CDN to the primary static website endpoint as opposed to the primary blob service endpoint. CDN 구성이 즉시 실행 되지 않을 때 콘텐츠가 표시 될 때까지 몇 분 정도 기다려야 할 수 있습니다.You might need to wait a few minutes before your content is visible as the CDN configuration is not immediately executed.

정적 웹 사이트를 업데이트 하는 경우 CDN 끝점을 제거 하 여 CDN에 지 서버에서 캐시 된 콘텐츠를 지워야 합니다.When you update your static website, be sure to clear cached content on the CDN edge servers by purging the CDN endpoint. 자세한 내용은 Azure CDN 엔드포인트 제거를 참조하세요.For more information, see Purge an Azure CDN endpoint.

참고

HTTPS는 기본적으로 계정 웹 끝점을 통해 지원 되므로 웹 끝점은 HTTP 및 HTTPS를 통해 액세스할 수 있습니다.HTTPS is supported natively through the account web endpoint, so the web endpoint is accessible via both HTTP and HTTPS. 그러나 저장소 계정이 HTTPS를 통한 보안 전송을 요구 하도록 구성 된 경우 사용자는 HTTPS 끝점을 사용 해야 합니다.However, if the storage account is configured to require secure transfer over HTTPS, then users must use the HTTPS endpoint. 자세한 내용은 Azure Storage에서 보안 전송 필요를 참조 하세요.For more information, see Require secure transfer in Azure Storage.

HTTPS를 통한 사용자 지정 도메인을 사용 하려면 현재 Azure CDN를 사용 해야 합니다.The use of custom domains over HTTPS requires the use of Azure CDN at this time.

사용자 지정 도메인 이름Custom domain names

사용자 지정 도메인을 통해 정적 웹 사이트를 사용할 수 있도록 설정할 수 있습니다.You can make your static website available via a custom domain. 자세히 알아보려면 Azure Storage 계정에 대 한 사용자 지정 도메인 이름 구성을 참조 하세요.To learn more, see configure a custom domain name for your Azure Storage account.

Azure에서 도메인을 호스트 하는 방법에 대 한 자세한 내용은 Azure DNS에서 도메인호스팅을 참조 하세요.For an in-depth look at hosting your domain on Azure, see Host your domain in Azure DNS.

가격Pricing

정적 웹 사이트 호스팅을 무료로 사용할 수 있습니다.You can enable static website hosting free of charge. 사이트에서 활용 하는 blob 저장소 및 운영 비용에 대해서만 요금이 청구 됩니다.You're billed only for the blob storage that your site utilizes and operations costs. Azure Blob Storage에 대한 가격의 자세한 내용은 Azure Blob Storage 가격 책정 페이지를 참조하세요.For more details on prices for Azure Blob Storage, check out the Azure Blob Storage Pricing Page.

메트릭Metrics

정적 웹 사이트 페이지에서 메트릭을 사용 하도록 설정할 수 있습니다.You can enable metrics on static website pages. 메트릭을 사용 하도록 설정 하면 $web 컨테이너에 있는 파일에 대 한 트래픽 통계가 메트릭 대시보드에 보고 됩니다.Once you've enabled metrics, traffic statistics on files in the $web container are reported in the metrics dashboard.

정적 웹 사이트 페이지에서 메트릭을 사용 하도록 설정 하려면 정적 웹 사이트 페이지에서 메트릭 사용을 참조 하세요.To enable metrics on your static website pages, see Enable metrics on static website pages.

다음 단계Next steps