개발 및 테스트에 Azure Storage 에뮬레이터 사용Use the Azure storage emulator for development and testing

Microsoft Azure 저장소 에뮬레이터는 로컬 개발 목적으로 Azure Blob, 큐 및 테이블 서비스를 에뮬레이트하는 도구입니다.The Microsoft Azure storage emulator is a tool that emulates the Azure Blob, Queue, and Table services for local development purposes. Azure 구독을 만들거나 비용을 발생 시 키 지 않고 저장소 서비스에 대해 로컬로 응용 프로그램을 테스트할 수 있습니다.You can test your application against the storage services locally without creating an Azure subscription or incurring any costs. 에뮬레이터에서 응용 프로그램이 작동 하는 방식에 만족 하는 경우 클라우드에서 Azure storage 계정을 사용 하도록 전환 합니다.When you're satisfied with how your application is working in the emulator, switch to using an Azure storage account in the cloud.

스토리지 에뮬레이터 가져오기Get the storage emulator

스토리지 에뮬레이터는 Microsoft Azure SDK의 일부로 제공됩니다.The storage emulator is available as part of the Microsoft Azure SDK. 독립 실행형 설치 관리자(직접 다운로드)를 사용하여 스토리지 에뮬레이터를 설치할 수도 있습니다.You can also install the storage emulator by using the standalone installer (direct download). 스토리지 에뮬레이터를 설치하려면 컴퓨터에 대한 관리자 권한이 있어야 합니다.To install the storage emulator, you must have administrative privileges on your computer.

스토리지 에뮬레이터는 현재 Windows에서만 실행됩니다.The storage emulator currently runs only on Windows. Linux 용 저장소 에뮬레이터가 필요한 경우 한 가지 옵션은 커뮤니티에서 유지 관리 되는 오픈 소스 저장소 에뮬레이터 Azurite입니다.If you need a storage emulator for Linux, one option is the community maintained, open-source storage emulator Azurite.

참고

스토리지 에뮬레이터의 어느 한 버전으로 작성한 데이터에 다른 버전으로 반드시 액세스할 수 있는 것은 아닙니다.Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. 장기간 보존하려는 데이터는 스토리지 에뮬레이터가 아닌 Azure Storage 계정에 저장하는 것이 좋습니다.If you need to persist your data for the long term, we recommended that you store that data in an Azure storage account, rather than in the storage emulator.

스토리지 에뮬레이터는 OData 라이브러리의 특정 버전에 따라 달라집니다.The storage emulator depends on specific versions of the OData libraries. 스토리지 에뮬레이터에서 사용되는 OData DLL을 다른 버전으로 바꾸는 것은 지원되지 않으며 예기치 않은 동작을 초래합니다.Replacing the OData DLLs used by the storage emulator with other versions is unsupported, and may cause unexpected behavior. 그러나 스토리지 서비스가 지원하는 어떤 버전의 OData도 에뮬레이터에 요청을 보내는 데 사용할 수 있습니다.However, any version of OData supported by the storage service may be used to send requests to the emulator.

스토리지 에뮬레이터의 작동 원리How the storage emulator works

저장소 에뮬레이터는 로컬 Microsoft SQL Server 2012 Express LocalDB 인스턴스를 사용 하 여 Azure storage 서비스를 에뮬레이트합니다.The storage emulator uses a local Microsoft SQL Server 2012 Express LocalDB instance to emulate Azure storage services. 스토리지 에뮬레이터가 LocalDB가 아닌 SQL Server의 로컬 인스턴스에 액세스하도록 구성할 수 있습니다.You can choose to configure the storage emulator to access a local instance of SQL Server instead of the LocalDB instance. 자세한 내용은이 문서 뒷부분의 저장소 에뮬레이터 시작 및 초기화 섹션을 참조 하세요.See the Start and initialize the storage emulator section later in this article to learn more.

스토리지 에뮬레이터는 Windows 인증을 사용하여 SQL Server 또는 LocalDB에 연결합니다.The storage emulator connects to SQL Server or LocalDB using Windows authentication.

스토리지 에뮬레이터와 Azure Storage 서비스 간에는 기능에 몇 가지 차이점이 있습니다.Some differences in functionality exist between the storage emulator and Azure storage services. 이러한 차이점에 대한 자세한 내용은 이 문서 다음에 나오는 스토리지 에뮬레이터와 Azure Storage의 차이점 섹션을 참조하세요.For more information about these differences, see the Differences between the storage emulator and Azure Storage section later in this article.

스토리지 에뮬레이터 시작 및 초기화Start and initialize the storage emulator

Azure Storage 에뮬레이터를 시작하려면:To start the Azure storage emulator:

  1. 시작 단추를 선택하거나 Windows 키를 누릅니다.Select the Start button or press the Windows key.
  2. Azure Storage Emulator를 입력하여 시작합니다.Begin typing Azure Storage Emulator.
  3. 표시된 애플리케이션 목록에서 에뮬레이터를 선택합니다.Select the emulator from the list of displayed applications.

스토리지 에뮬레이터가 시작되면 명령 프롬프트 창이 표시됩니다.When the storage emulator starts, a Command Prompt window will appear. 이 콘솔 창을 사용 하 여 저장소 에뮬레이터를 시작 하 고 중지할 수 있습니다.You can use this console window to start and stop the storage emulator. 또한 명령 프롬프트에서 데이터를 지우고, 상태를 가져오고, 에뮬레이터를 초기화할 수 있습니다.You can also clear data, get status, and initialize the emulator from the command prompt. 자세한 내용은 이 문서 뒷부분에 나오는 스토리지 에뮬레이터 명령줄 도구 참조 섹션을 참조하세요.For more information, see the Storage emulator command-line tool reference section later in this article.

참고

Azurite와 같은 다른 저장소 에뮬레이터가 시스템에서 실행 되는 경우 Azure 저장소 에뮬레이터가 제대로 시작 되지 않을 수 있습니다.The Azure storage emulator may not start correctly if another storage emulator, such as Azurite, is running on the system.

에뮬레이터를 실행 하는 경우 Windows 작업 표시줄 알림 영역에 아이콘이 표시 됩니다.When the emulator is running, you'll see an icon in the Windows taskbar notification area.

스토리지 에뮬레이터 명령 프롬프트 창을 닫으면 스토리지 에뮬레이터가 계속 실행됩니다.When you close the storage emulator Command Prompt window, the storage emulator will continue to run. 스토리지 에뮬레이터 콘솔 창을 다시 불러오려면 스토리지 에뮬레이터를 시작하는 것처럼 위의 단계를 수행합니다.To bring up the Storage Emulator console window again, follow the preceding steps as if starting the storage emulator.

스토리지 에뮬레이터를 처음 실행하면 로컬 스토리지 환경이 자동으로 초기화됩니다.The first time you run the storage emulator, the local storage environment is initialized for you. 초기화 프로세스에서는 LocalDB에 데이터베이스가 작성되며 각 로컬 스토리지 서비스용으로 HTTP 포트가 예약됩니다.The initialization process creates a database in LocalDB and reserves HTTP ports for each local storage service.

스토리지 에뮬레이터는 기본적으로 C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator에 설치됩니다.The storage emulator is installed by default to C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator.

Microsoft Azure Storage Explorer를 사용하여 로컬 스토리지 에뮬레이터 리소스를 사용할 수 있습니다.You can use the Microsoft Azure Storage Explorer to work with local storage emulator resources. 저장소 에뮬레이터를 설치 하 고 시작한 후에 Storage 탐색기 리소스 트리의 "로컬 & 연결 됨"에서 "(에뮬레이터-기본 포트) (키)"를 찾습니다.Look for "(Emulator - Default Ports) (Key)" under "Local & Attached" in the Storage Explorer resources tree after you've installed and started the storage emulator.

다른 SQL 데이터베이스를 사용하여 스토리지 에뮬레이터를 초기화 합니다.Initialize the storage emulator to use a different SQL database

스토리지 에뮬레이터 명령줄 도구를 사용하여 기본 LocalDB 인스턴스가 아닌 SQL 데이터베이스 인스턴스를 가리키도록 스토리지 에뮬레이터를 초기화할 수 있습니다.You can use the storage emulator command-line tool to initialize the storage emulator to point to a SQL database instance other than the default LocalDB instance:

  1. 스토리지 에뮬레이터 시작 및 초기화 섹션에서 설명한대로 스토리지 에뮬레이터 콘솔 창을 엽니다.Open the Storage Emulator console window as described in the Start and initialize the storage emulator section.

  2. 콘솔 창에 다음 명령을 입력합니다. 여기서 <SQLServerInstance>은 SQL Server 인스턴스의 이름입니다.In the console window, type the following command, where <SQLServerInstance> is the name of the SQL Server instance. LocalDB를 사용하려면 SQL Server 인스턴스로 (localdb)\MSSQLLocalDb을 지정합니다.To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

    기본 SQL Server 인스턴스를 사용하도록 에뮬레이터에 지시하는 다음 명령을 사용할 수도 있습니다.You can also use the following command, which directs the emulator to use the default SQL Server instance:

    AzureStorageEmulator.exe init /server .

    또는 LocalDB 인스턴스를 다시 초기화하는 다음 명령을 사용할 수도 있습니다.Or, you can use the following command, which reinitializes the database to the default LocalDB instance:

    AzureStorageEmulator.exe init /forceCreate

이 명령에 대한 자세한 내용은 스토리지 에뮬레이터 명령줄 도구 참조를 참조하세요.For more information about these commands, see Storage emulator command-line tool reference.

LocalDB 설치를 포함하여 SQL Server 인스턴스를 관리하는 데 SSMS(Microsoft SQL Server Management Studio)를 사용할 수 있습니다.You can use the Microsoft SQL Server Management Studio (SSMS) to manage your SQL Server instances, including the LocalDB installation. SMSS 서버에 연결 대화 상자에서 서버 이름: 필드에 (localdb)\MSSQLLocalDb을 지정하여 LocalDB 인스턴스에 연결합니다.In the SMSS Connect to Server dialog, specify (localdb)\MSSQLLocalDb in the Server name: field to connect to the LocalDB instance.

스토리지 에뮬레이터에 대한 인증 요청Authenticating requests against the storage emulator

스토리지 에뮬레이터를 설치하고 시작하면 코드를 테스트할 수 있습니다.Once you've installed and started the storage emulator, you can test your code against it. 익명 요청이 아니면 저장소 에뮬레이터에 대해 수행 하는 모든 요청에 권한이 부여 되어야 합니다.Every request you make against the storage emulator must be authorized, unless it's an anonymous request. 공유 키 인증 또는 SAS(공유 액세스 서명)을 사용하여 스토리지 에뮬레이터에 대한 요청을 인증할 수 있습니다.You can authorize requests against the storage emulator using Shared Key authentication or with a shared access signature (SAS).

공유 키 자격 증명 인증Authorize with Shared Key credentials

스토리지 에뮬레이터는 단일 고정 계정과 공유 키 인증에 대해 알려진 인증 키를 지원합니다.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. 스토리지 에뮬레이터에서 사용할 수 있는 공유 키 자격 증명은 이 계정과 키뿐입니다.This account and key are the only Shared Key credentials permitted for use with the storage emulator. 아래에 이 계정과 키의 예제가 나와 있습니다.They are:

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

참고

스토리지 에뮬레이터에서 지원하는 인증 키는 클라이언트 인증 코드의 기능을 테스트할 때만 사용할 수 있으며The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. 보안 기능은 제공하지 않습니다.It does not serve any security purpose. 프로덕션 스토리지 계정과 키를 스토리지 에뮬레이터에서 사용할 수는 없습니다.You cannot use your production storage account and key with the storage emulator. 개발 계정을 프로덕션 데이터에 사용해서는 안 됩니다.You should not use the development account with production data.

스토리지 에뮬레이터는 HTTP를 통해서만 연결을 지원합니다.The storage emulator supports connection via HTTP only. 그러나 프로덕션 Azure Storage 계정에서 리소스에 액세스하기 위한 프로토콜로 HTTPS를 사용하는 것이 좋습니다.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

바로 가기를 사용하여 에뮬레이터 계정에 연결Connect to the emulator account using a shortcut

애플리케이션에서 스토리지 에뮬레이터에 연결하는 가장 쉬운 방법은 바로 가기를 참조하는 애플리케이션의 구성 파일에서 연결 문자열을 구성하는 것입니다.UseDevelopmentStorage=trueThe easiest way to connect to the storage emulator from your application is to configure a connection string in your application's configuration file that references the shortcut UseDevelopmentStorage=true. 예를 들어 app.config 파일의 스토리지 에뮬레이터에 대한 연결 문자열은 다음과 같습니다.Here's an example of a connection string to the storage emulator in an app.config file:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

잘 알려진 계정 이름 및 키를 사용하여 에뮬레이터 계정에 연결Connect to the emulator account using the well-known account name and key

에뮬레이터 계정 이름 및 키를 참조하는 연결 문자열을 만들려면 연결 문자열의 에뮬레이터에서 사용하려는 각각의 서비스에 엔드포인트를 지정해야 합니다.To create a connection string that references the emulator account name and key, you must specify the endpoints for each of the services you wish to use from the emulator in the connection string. 이 작업은 연결 문자열이 프로덕션 스토리지 계정의 엔드포인트와 다른 에뮬레이터 엔드포인트를 참조하도록 하기 위해 반드시 필요합니다.This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. 예를 들어 연결 문자열의 값은 다음과 같이 표시됩니다.For example, the value of your connection string will look like this:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;

이 값은 위에 표시된 바로 가기 UseDevelopmentStorage=true와 동일합니다.This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

HTTP 프록시 지정Specify an HTTP proxy

스토리지 에뮬레이터에 대해 서비스를 테스트할 때 사용할 HTTP 프록시를 지정할 수도 있습니다.You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. 이렇게 하면 스토리지 서비스에 대한 작업을 디버깅하면서 HTTP 요청과 응답을 관찰하는 데 유용할 수 있습니다.This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. 프록시를 지정하려면 DevelopmentStorageProxyUri 옵션을 연결 문자열에 추가하고 해당 값을 프록시 URI로 설정합니다.To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. 예를 들어 스토리지 에뮬레이터를 가리키고 HTTP 프록시를 구성하는 연결 문자열은 다음과 같습니다.For example, here is a connection string that points to the storage emulator and configures an HTTP proxy:

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri

연결 문자열에 대한 자세한 내용은 Azure Storage 연결 문자열 구성을 참조하세요.For more information on connection strings, see Configure Azure Storage connection strings.

공유 액세스 서명을 사용하여 인증Authorize with a shared access signature

참고

이 문서는 새 Azure PowerShell Az 모듈을 사용하도록 업데이트되었습니다.This article has been updated to use the new Azure PowerShell Az module. AzureRM 모듈은 적어도 2020년 12월까지 버그 수정을 수신할 예정이므로 계속 사용하셔도 됩니다.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 새 Az 모듈 및 AzureRM 호환성에 대한 자세한 내용은 새 Azure PowerShell Az 모듈 소개를 참조하세요.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az 모듈 설치 지침은 Azure PowerShell 설치를 참조하세요.For Az module installation instructions, see Install Azure PowerShell.

Xamarin 라이브러리와 같은 일부 Azure Storage 클라이언트 라이브러리는 공유 액세스 서명 (SAS) 토큰 인증만 지원합니다.Some Azure storage client libraries, such as the Xamarin library, only support authentication with a shared access signature (SAS) token. Storage 탐색기 또는 공유 키 인증을 지 원하는 다른 응용 프로그램을 사용 하 여 SAS 토큰을 만들 수 있습니다.You can create the SAS token using Storage Explorer or another application that supports Shared Key authentication.

또한 Azure PowerShell을 사용하여 SAS 토큰을 생성할 수 있습니다.You can also generate a SAS token by using Azure PowerShell. 다음 예제에서는 blob 컨테이너에 대한 모든 권한을 가진 SAS 토큰을 생성합니다.The following example generates a SAS token with full permissions to a blob container:

  1. Azure PowerShell이 아직 없는 경우 설치합니다(최신 버전의 Azure PowerShell cmdlet 사용 권장).Install Azure PowerShell if you haven't already (using the latest version of the Azure PowerShell cmdlets is recommended). 설치 지침은 Azure PowerShell 설치 및 구성 방법을 참조하세요.For installation instructions, see Install and configure Azure PowerShell.
  2. Azure PowerShell을 열고 다음 명령을 실행하여 CONTAINER_NAME을 선택한 이름으로 바꿉니다.Open Azure PowerShell and run the following commands, replacing CONTAINER_NAME with a name of your choosing:
$context = New-AzStorageContext -Local

New-AzStorageContainer CONTAINER_NAME -Permission Off -Context $context

$now = Get-Date

New-AzStorageContainerSASToken -Name CONTAINER_NAME -Permission rwdl -ExpiryTime $now.AddDays(1.0) -Context $context -FullUri

새 컨테이너에 대해 결과적으로 생성된 공유 액세스 서명 URI는 다음과 유사해야 합니다.The resulting shared access signature URI for the new container should be similar to:

http://127.0.0.1:10000/devstoreaccount1/sascontainer?sv=2012-02-12&se=2015-07-08T00%3A12%3A08Z&sr=c&sp=wl&sig=t%2BbzU9%2B7ry4okULN9S0wst%2F8MCUhTjrHyV9rDNLSe8g%3Dsss

이 예제를 사용하여 만든 공유 액세스 서명은 하루 동안 유효 합니다.The shared access signature created with this example is valid for one day. 서명은 컨테이너 내에서 blob에 대해 모든 권한을 부여합니다(읽기, 쓰기, 삭제, 나열).The signature grants full access (read, write, delete, list) to blobs within the container.

공유 액세스 서명에 대 한 자세한 내용은 SAS (공유 액세스 서명)를 사용 하 여 Azure Storage 리소스에 대 한 제한 된 액세스 권한 부여를 참조 하세요.For more information on shared access signatures, see Grant limited access to Azure Storage resources using shared access signatures (SAS).

스토리지 에뮬레이터에서 리소스의 주소 지정Addressing resources in the storage emulator

저장소 에뮬레이터의 서비스 끝점은 Azure storage 계정에 대 한 끝점과 다릅니다.The service endpoints for the storage emulator are different from the endpoints for an Azure storage account. 로컬 컴퓨터는 도메인 이름 확인을 수행 하지 않으므로 저장소 에뮬레이터 끝점이 로컬 주소가 되어야 합니다.The local computer doesn't do domain name resolution, requiring the storage emulator endpoints to be local addresses.

Azure Storage 계정에 리소스 주소를 지정할 때는 다음 체계를 사용합니다.When you address a resource in an Azure storage account, you use the following scheme. 계정 이름은 URI 호스트 이름의 일부이고 주소를 지정하는 리소스는 URI 경로의 일부입니다.The account name is part of the URI host name, and the resource being addressed is part of the URI path:

<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>

예를 들어, 다음 URI는 Azure Storage 계정의 blob에 대한 올바른 주소입니다.For example, the following URI is a valid address for a blob in an Azure storage account:

https://myaccount.blob.core.windows.net/mycontainer/myblob.txt

로컬 컴퓨터가 도메인 이름 확인을 수행 하지 않기 때문에 계정 이름은 호스트 이름이 아닌 URI 경로의 일부입니다.Because the local computer doesn't do domain name resolution, the account name is part of the URI path instead of the host name. 스토리지 에뮬레이터의 리소스에 대해 다음 URI 형식을 사용합니다.Use the following URI format for a resource in the storage emulator:

http://<local-machine-address>:<port>/<account-name>/<resource-path>

예를 들어 스토리지 에뮬레이터의 Blob에 액세스하려는 경우 다음 주소를 사용할 수 있습니다.For example, the following address might be used for accessing a blob in the storage emulator:

http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt

스토리지 에뮬레이터에 대한 서비스 엔드포인트는 다음과 같습니다.The service endpoints for the storage emulator are:

  • Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>
  • 큐 서비스: http://127.0.0.1:10001/<account-name>/<resource-path>Queue service: http://127.0.0.1:10001/<account-name>/<resource-path>
  • Table service: http://127.0.0.1:10002/<account-name>/<resource-path>Table service: http://127.0.0.1:10002/<account-name>/<resource-path>

RA-GRS를 사용하여 보조 계정 주소 지정Addressing the account secondary with RA-GRS

버전 3.1부터는 스토리지 에뮬레이터에 대해 RA-GRS(읽기 권한 지역 중복 복제)를 사용할 수 있습니다.Beginning with version 3.1, the storage emulator supports read-access geo-redundant replication (RA-GRS). 계정 이름에-secondary를 추가 하 여 보조 위치에 액세스할 수 있습니다.You can access the secondary location by appending -secondary to the account name. 예를 들어 스토리지 에뮬레이터에서 읽기 전용 보조 계정을 사용하여 Blob에 액세스하려는 경우 다음 주소를 사용할 수 있습니다.For example, the following address might be used for accessing a blob using the read-only secondary in the storage emulator:

http://127.0.0.1:10000/myaccount-secondary/mycontainer/myblob.txt

참고

스토리지 에뮬레이터를 사용하여 프로그래밍 방식으로 보조 계정에 액세스하려는 경우 .NET용 Storage 클라이언트 라이브러리 버전 3.2 이상을 사용합니다.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. 자세한 내용은 .NET용 Microsoft Azure Storage 클라이언트 라이브러리를 참조하세요.See the Microsoft Azure Storage Client Library for .NET for details.

스토리지 에뮬레이터 명령줄 도구 참조Storage emulator command-line tool reference

버전 3.0부터 스토리지 에뮬레이터를 시작할 때 콘솔 창이 표시됩니다.Starting in version 3.0, a console window is displayed when you start the Storage Emulator. 콘솔 창에서 명령줄을 사용 하 여 에뮬레이터를 시작 및 중지 합니다.Use the command line in the console window to start and stop the emulator. 또한 명령줄에서 상태를 쿼리하고 다른 작업을 수행할 수 있습니다.You can also query for status and do other operations from the command line.

참고

Microsoft Azure 컴퓨팅 에뮬레이터가 설치되어 있으면 스토리지 에뮬레이터를 시작할 때 시스템 트레이 아이콘이 표시됩니다.If you have the Microsoft Azure compute emulator installed, a system tray icon appears when you launch the Storage Emulator. 해당 아이콘을 마우스 오른쪽 단추로 클릭하면 표시되는 메뉴에서 그래픽 방식으로 스토리지 에뮬레이터를 시작하고 중지할 수 있습니다.Right-click on the icon to reveal a menu that provides a graphical way to start and stop the Storage Emulator.

명령줄 구문Command-line syntax

AzureStorageEmulator.exe [start] [stop] [status] [clear] [init] [help]

옵션Options

옵션 목록을 보려면 명령 프롬프트에 /help 을(를) 입력합니다.To view the list of options, type /help at the command prompt.

옵션Option 설명Description 명령Command 인수Arguments
시작Start 스토리지 에뮬레이터를 시작합니다.Starts up the storage emulator. AzureStorageEmulator.exe start [-inprocess] -다시 처리: 새 프로세스를 만드는 대신 현재 프로세스에서 에뮬레이터를 시작 합니다.-Reprocess: Start the emulator in the current process instead of creating a new process.
중지Stop 스토리지 에뮬레이터를 중지합니다.Stops the storage emulator. AzureStorageEmulator.exe stop
상태Status 스토리지 에뮬레이터의 상태를 인쇄합니다.Prints the status of the storage emulator. AzureStorageEmulator.exe status
지우기Clear 명령줄에 지정된 모든 서비스의 데이터를 지웁니다.Clears the data in all services specified on the command line. AzureStorageEmulator.exe clear [blob] [table] [queue] [all] blob: blob 데이터를 지웁니다.blob: Clears blob data.
queue: 큐 데이터를 지웁니다.queue: Clears queue data.
table: 테이블 데이터를 지웁니다.table: Clears table data.
all: 모든 서비스의 모든 데이터를 지웁니다.all: Clears all data in all services.
InitInit 에뮬레이터를 설정 하기 위해 일회성 초기화를 수행 합니다.Does one-time initialization to set up the emulator. AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] -server serverName\instanceName: SQL 인스턴스를 호스팅하는 서버를 지정합니다.-server serverName\instanceName: Specifies the server hosting the SQL instance.
-sqlinstance instanceName: 기본 서버 인스턴스에서 사용할 SQL 인스턴스의 이름을 지정합니다.-sqlinstance instanceName: Specifies the name of the SQL instance to be used in the default server instance.
-forcecreate: 이미 존재하는 경우라도 SQL Database를 강제로 생성합니다.-forcecreate: Forces creation of the SQL database, even if it already exists.
-skipcreate: SQL 데이터베이스 만들기를 건너뜁니다.-skipcreate: Skips creation of the SQL database. 이 옵션은 -forcecreate보다 우선합니다.This takes precedence over -forcecreate.
-reserveports: 서비스와 연결된 HTTP 포트를 예약하려고 합니다.-reserveports: Attempts to reserve the HTTP ports associated with the services.
-unreserveports: 서비스와 연결된 HTTP 포트에 대한 예약을 제거하려고 합니다.-unreserveports: Attempts to remove reservations for the HTTP ports associated with the services. 이 옵션은 -reserveports보다 우선합니다.This takes precedence over -reserveports.
-inprocess: 새 프로세스를 생성하는 대신 현재 프로세스의 초기화를 수행합니다.-inprocess: Performs initialization in the current process instead of spawning a new process. 포트 예약을 변경할 경우 관리자 권한으로 현재 프로세스를 시작해야 합니다.The current process must be launched with elevated permissions if changing port reservations.

스토리지 에뮬레이터와 Azure Storage의 차이점Differences between the storage emulator and Azure Storage

저장소 에뮬레이터는 로컬에서 에뮬레이트된 환경 이므로 클라우드의 Azure storage 계정 및 에뮬레이터를 사용 하는 것 사이에 차이가 있습니다.Because the storage emulator is a local emulated environment, there are differences between using the emulator and an Azure storage account in the cloud:

  • 스토리지 에뮬레이터는 단일 고정 계정과 알려진 인증 키만 지원합니다.The storage emulator supports only a single fixed account and a well-known authentication key.
  • 저장소 에뮬레이터는 확장 가능한 저장소 서비스가 아니며 많은 수의 동시 클라이언트를 지원 하지 않습니다.The storage emulator isn't a scalable storage service and doesn't support a large number of concurrent clients.
  • 스토리지 에뮬레이터에서 리소스의 주소 지정에 설명한 대로, 스토리지 에뮬레이터 및 Azure Storage 계정에서 리소스의 주소가 서로 다르게 지정됩니다.As described in Addressing resources in the storage emulator, resources are addressed differently in the storage emulator versus an Azure storage account. 차이점은 도메인 이름 확인은 클라우드에서 사용할 수 있지만 로컬 컴퓨터에서는 사용할 수 없기 때문입니다.The difference is because domain name resolution is available in the cloud but not on the local computer.
  • 버전 3.1부터는 스토리지 에뮬레이터 계정에 대해 RA-GRS(읽기 권한 지역 중복 복제)를 사용할 수 있습니다.Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). 에뮬레이터에서 모든 계정은 RA-GRS를 사용 하도록 설정 되어 있으며 주 복제본과 보조 복제본 사이에 지연이 발생 하지 않습니다.In the emulator, all accounts have RA-GRS enabled and there's never any lag between the primary and secondary replicas. Blob 서비스 통계 가져오기, 큐 서비스 통계 가져오기 및 테이블 서비스 통계 가져오기 작업은 보조 계정에서 지원되며 기본 SQL 데이터베이스에 따라 현재 시간으로 LastSyncTime 응답 요소의 값을 항상 반환합니다.The Get Blob Service Stats, Get Queue Service Stats, and Get Table Service Stats operations are supported on the account secondary and will always return the value of the LastSyncTime response element as the current time according to the underlying SQL database.
  • 파일 서비스 및 SMB 프로토콜 서비스 끝점은 현재 저장소 에뮬레이터에서 지원 되지 않습니다.The File service and SMB protocol service endpoints aren't currently supported in the storage emulator.
  • 에뮬레이터에서 지원 되지 않는 저장소 서비스 버전을 사용 하는 경우 에뮬레이터가 VersionNotSupportedByEmulator 오류 (HTTP 상태 코드 400-잘못 된 요청)를 반환 합니다.If you use a version of the storage services that is not supported by the emulator, the emulator returns a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Blob Storage의 차이점Differences for Blob storage

다음과 같은 차이점이 에뮬레이터의 Blob Storage에 적용됩니다.The following differences apply to Blob storage in the emulator:

  • 스토리지 에뮬레이터는 blob 크기를 최대 2GB까지만 지원합니다.The storage emulator only supports blob sizes up to 2 GB.
  • 스토리지 에뮬레이터에서 blob 이름의 최대 길이는 256자인 반면, Azure Storage에서 blob 이름의 최대 길이는 1024자입니다.The maximum length of a blob name in the storage emulator is 256 characters, while the maximum length of a blob name in Azure Storage is 1024 characters.
  • 증분 복사를 사용하면 덮어쓴 Blob의 스냅샷을 복사할 수 있으며 이로 인해 서비스에 오류가 반환됩니다.Incremental copy allows snapshots from overwritten blobs to be copied, which returns a failure on the service.
  • 페이지 범위 가져오기 Diff는 증분 복사 Blob을 사용 하 여 복사한 스냅숏 간에 작동 하지 않습니다.Get Page Ranges Diff doesn't work between snapshots copied using Incremental Copy Blob.
  • 요청에 임대 ID가 지정 되지 않은 경우에도 활성 임대를 사용 하 여 저장소 에뮬레이터에 있는 blob에 대 한 Put Blob 작업이 성공할 수 있습니다.A Put Blob operation may succeed against a blob that exists in the storage emulator with an active lease even if the lease ID hasn't been specified in the request.
  • 추가 Blob 작업은 에뮬레이터에서 지원되지 않습니다.Append Blob operations are not supported by the emulator. 추가 Blob에 대한 작업을 시도하면 FeatureNotSupportedByEmulator 오류(HTTP 상태 코드 400 - 잘못된 요청)가 반환됩니다.Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Table Storage의 차이점Differences for Table storage

다음과 같은 차이점이 에뮬레이터의 Table Storage에 적용됩니다.The following differences apply to Table storage in the emulator:

  • 저장소 에뮬레이터의 Table service에 있는 날짜 속성은 SQL Server 2005에서 지원 되는 범위만 지원 합니다 (1753 년 1 월 1 일 이후 여야 함).Date properties in the Table service in the storage emulator support only the range supported by SQL Server 2005 (they're required to be later than January 1, 1753). 1753년 1월 1일 이전의 모든 날짜는 이 값으로 변경됩니다.All dates before January 1, 1753 are changed to this value. 날짜의 정밀도는 SQL Server 2005의 정밀도로 제한되며, 즉 날짜의 정밀도는 1/300 초입니다.The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
  • 스토리지 에뮬레이터는 각각 512 바이트 미만의 파티션 키 및 행 키 속성 값을 지원합니다.The storage emulator supports partition key and row key property values of less than 512 bytes each. 계정 이름, 테이블 이름 및 키 속성 이름의 총 크기는 900 바이트를 초과할 수 없습니다.The total size of the account name, table name, and key property names together can't exceed 900 bytes.
  • 스토리지 에뮬레이터의 테이블에 있는 행의 총 크기는 1MB 미만으로 제한 합니다.The total size of a row in a table in the storage emulator is limited to less than 1 MB.
  • 스토리지 에뮬레이터에서 데이터 형식 Edm.Guid 또는 Edm.Binary의 속성은 쿼리 필터 문자열의 Equal (eq)NotEqual (ne) 비교 연산자만 지원합니다.In the storage emulator, properties of data type Edm.Guid or Edm.Binary support only the Equal (eq) and NotEqual (ne) comparison operators in query filter strings.

Queue Storage의 차이점Differences for Queue storage

에뮬레이터에서 Queue Storage에 특정 차이점이 있습니다.There are no differences specific to Queue storage in the emulator.

스토리지 에뮬레이터 릴리스 정보Storage emulator release notes

버전 5.10Version 5.10

  • 저장소 에뮬레이터는 Blob, Queue 및 Table service 끝점에서 저장소 서비스 버전 2019-07-07을 거부 하지 않습니다.The storage emulator won't reject version 2019-07-07 of the storage services on Blob, Queue, and Table service endpoints.

버전 5.9Version 5.9

  • 저장소 에뮬레이터는 Blob, Queue 및 Table service 끝점에서 저장소 서비스 버전 2019-02-02을 거부 하지 않습니다.The storage emulator won't reject version 2019-02-02 of the storage services on Blob, Queue, and Table service endpoints.

버전 5.8Version 5.8

  • 저장소 에뮬레이터는 Blob, Queue 및 Table service 끝점에서 저장소 서비스 버전 2018-11-09을 거부 하지 않습니다.The storage emulator won't reject version 2018-11-09 of the storage services on Blob, Queue, and Table service endpoints.

버전 5.7Version 5.7

  • 로깅을 사용하도록 설정한 경우 충돌을 야기하는 버그가 수정되었습니다.Fixed a bug that would cause a crash if logging was enabled.

버전 5.6Version 5.6

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2018-03-28 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2018-03-28 of the storage services on Blob, Queue, and Table service endpoints.

버전 5.5Version 5.5

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2017-11-09 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2017-11-09 of the storage services on Blob, Queue, and Table service endpoints.
  • BLOB 생성 시간을 반환하는 BLOB Created 속성에 대한 지원이 추가되었습니다.Support has been added for the blob Created property, which returns the blob's creation time.

버전 5.4Version 5.4

  • 설치 안정성을 향상하기 위해, 에뮬레이터가 더 이상 설치 중에 포트를 예약하려고 시도하지 않습니다.To improve installation stability, the emulator no longer attempts to reserve ports at install time. 포트 예약을 원하는 경우 init 명령의 -reserveports 옵션을 사용 하 여 지정 합니다.If you want port reservations, use the -reserveports option of the init command to specify them.

버전 5.3Version 5.3

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2017-07-29 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2017-07-29 of the storage services on Blob, Queue, and Table service endpoints.

버전 5.2Version 5.2

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2017-04-17 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2017-04-17 of the storage services on Blob, Queue, and Table service endpoints.
  • 테이블 속성 값이 제대로 인코딩되지 않은 버그를 수정 했습니다.Fixed a bug where table property values weren't being properly encoded.

버전 5.1Version 5.1

  • 서비스가 DataServiceVersion 헤더를 반환하지 않았던 일부 응답에서 스토리지 에뮬레이터가 이 헤더를 반환하는 버그를 수정했습니다.Fixed a bug where the storage emulator was returning the DataServiceVersion header in some responses where the service was not.

버전 5.0Version 5.0

  • 스토리지 에뮬레이터 설치 관리자가 더 이상 기존 MSSQL 및 .NET Framework 설치를 확인하지 않습니다.The storage emulator installer no longer checks for existing MSSQL and .NET Framework installs.
  • 스토리지 에뮬레이터 설치 관리자가 더 이상 설치 시 데이터베이스를 만들지 않습니다.The storage emulator installer no longer creates the database as part of install. 필요한 경우 시작 시 데이터베이스가 만들어집니다.Database will still be created if needed as part of startup.
  • 데이터베이스를 만들 때 더 이상 관리자 권한이 필요하지 않습니다.Database creation no longer requires elevation.
  • 시작 시 더 이상 포트 예약이 필요하지 않습니다.Port reservations are no longer needed for startup.
  • init-reserveports(권한 상승 필요), -unreserveports(권한 상승 필요), -skipcreate 옵션을 추가합니다.Adds the following options to init: -reserveports (requires elevation), -unreserveports (requires elevation), -skipcreate.
  • 이제 시스템 트레이 아이콘의 저장소 에뮬레이터 UI 옵션은 명령줄 인터페이스를 시작 합니다.The Storage Emulator UI option on the system tray icon now launches the command-line interface. 이전 GUI는 더 이상 사용할 수 없습니다.The old GUI is no longer available.
  • 일부 DLL이 제거되거나 이름이 바뀌었습니다.Some DLLs have been removed or renamed.

버전 4.6Version 4.6

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2016-05-31 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2016-05-31 of the storage services on Blob, Queue, and Table service endpoints.

버전 4.5Version 4.5

  • 백업 데이터베이스의 이름을 바꿀 때 설치 및 초기화가 실패 하는 버그를 수정 했습니다.Fixed a bug that caused installation and initialization to fail when the backing database is renamed.

버전 4.4Version 4.4

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2015-12-11 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2015-12-11 of the storage services on Blob, Queue, and Table service endpoints.
  • 스토리지 에뮬레이터의 blob 데이터 가비지 수집은 이제 많은 수의 blob 처리할 때 더 효율적입니다.The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • 컨테이너 ACL XML이 스토리지 서비스의 방법과는 약간 다르게 유효성 검사가 이뤄지게 하던 버그를 수정했습니다.Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • 때로 최대 및 최소 DateTime 값이 잘못된 표준 시간대에 보고되도록 하던 버그를 수정했습니다.Fixed a bug that sometimes caused max and min DateTime values to be reported in the incorrect time zone.

버전 4.3Version 4.3

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2015-07-08 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2015-07-08 of the storage services on Blob, Queue, and Table service endpoints.

버전 4.2Version 4.2

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2015-04-05 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2015-04-05 of the storage services on Blob, Queue, and Table service endpoints.

버전 4.1Version 4.1

  • 저장소 에뮬레이터는 이제 Blob, 큐 및 Table service 끝점에서 2015-02-21 버전의 저장소 서비스를 지원 합니다.The storage emulator now supports version 2015-02-21 of the storage services on Blob, Queue, and Table service endpoints. 새로운 Blob 추가 기능을 지원 하지 않습니다.It doesn't support the new Append Blob features.
  • 이제 에뮬레이터에서 지원 되지 않는 저장소 서비스 버전에 대 한 의미 있는 오류 메시지를 반환 합니다.The emulator now returns a meaningful error message for unsupported versions of storage services. 최신 버전의 에뮬레이터를 사용하는 것이 좋습니다.We recommend using the latest version of the emulator. VersionNotSupportedByEmulator 오류 (HTTP 상태 코드 400-잘못 된 요청)를 가져오는 경우 에뮬레이터의 최신 버전을 다운로드 합니다.If you get a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request), download the latest version of the emulator.
  • 경합 조건으로 인해 동시 병합 작업 중 잘못된 테이블 엔터티 데이터가 발생하는 버그가 수정되었습니다.Fixed a bug wherein a race condition caused table entity data to be incorrect during concurrent merge operations.

버전 4.0Version 4.0

  • 스토리지 에뮬레이터 실행 파일의 이름이 AzureStorageEmulator.exe로 바뀌었습니다.The storage emulator executable has been renamed to AzureStorageEmulator.exe.

버전 3.2Version 3.2

  • 스토리지 에뮬레이터는 이제 Blob, 큐 및 Table service 엔드포인트에서 2014-02-14 버전의 스토리지 서비스를 지원합니다.The storage emulator now supports version 2014-02-14 of the storage services on Blob, Queue, and Table service endpoints. 파일 서비스 끝점은 현재 저장소 에뮬레이터에서 지원 되지 않습니다.File service endpoints aren't currently supported in the storage emulator. 2014-02-14 버전에 대한 자세한 내용은 Azure Storage 서비스에 대한 버전 관리 를 참조하세요.See Versioning for the Azure Storage Services for details about version 2014-02-14.

버전 3.1Version 3.1

  • 읽기 액세스 지역 중복 스토리지 (RA-GRS)는 이제 스토리지 에뮬레이터에서 지원됩니다.Read-access geo-redundant storage (RA-GRS) is now supported in the storage emulator. @No__t-0, Get Queue Service StatsGet Table Service Stats Api는 계정 보조에 대해 지원 되며, 기본 SQL 데이터베이스에 따라 항상 LastSyncTime response 요소의 값을 현재 시간으로 반환 합니다.The Get Blob Service Stats, Get Queue Service Stats, and Get Table Service Stats APIs are supported for the account secondary and will always return the value of the LastSyncTime response element as the current time according to the underlying SQL database. 스토리지 에뮬레이터를 사용하여 프로그래밍 방식으로 보조 계정에 액세스하려는 경우 .NET용 Storage 클라이언트 라이브러리 버전 3.2 이상을 사용합니다.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. 자세한 내용은 .NET용 Microsoft Azure Storage 클라이언트 라이브러리 참조를 참조하세요.See the Microsoft Azure Storage Client Library for .NET Reference for details.

버전 3.0Version 3.0

  • Azure 스토리지 에뮬레이터는 컴퓨팅 에뮬레이터와 같은 패키지에 더 이상 제공되지 않습니다.The Azure storage emulator is no longer shipped in the same package as the compute emulator.
  • 저장소 에뮬레이터 그래픽 사용자 인터페이스는 더 이상 사용 되지 않습니다.The storage emulator graphical user interface is deprecated. 스크립트 가능한 명령줄 인터페이스로 대체 되었습니다.It has been replaced by a scriptable command-line interface. 명령줄 인터페이스에 대한 자세한 내용은 스토리지 에뮬레이터 명령줄 도구 참조를 참조하세요.For details on the command-line interface, see Storage Emulator Command-Line Tool Reference. 그래픽 인터페이스는 버전 3.0에 계속 있지만 시스템 트레이 아이콘을 마우스 오른쪽 단추로 클릭하고 스토리지 에뮬레이터 UI 표시 보기를 선택하여 Compute 에뮬레이터를 설치할 때에만 액세스 할 수 있습니다.The graphical interface will continue to be present in version 3.0, but it can only be accessed when the Compute Emulator is installed by right-clicking on the system tray icon and selecting Show Storage Emulator UI.
  • 이제 Azure Storage 서비스의 2013-08-15 버전이 완벽 하게 지원됩니다.Version 2013-08-15 of the Azure storage services is now fully supported. (이전에 이 버전은 스토리지 에뮬레이터 버전 2.2.1 미리 보기에서만 지원되었습니다.)(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

다음 단계Next steps

  • 커뮤니티에서 유지 관리 되는 플랫폼 간 오픈 소스 저장소 에뮬레이터 Azurite를 평가 합니다.Evaluate the cross-platform, community-maintained open-source storage emulator Azurite.
  • .NET을 사용한 Azure Storage 샘플에는 애플리케이션을 개발할 때 사용할 수 있는 몇 가지 코드 샘플에 대한 링크가 있습니다.Azure Storage samples using .NET contains links to several code samples you can use when developing your application.
  • Microsoft Azure Storage Explorer를 사용하여 클라우드 스토리지 계정 및 스토리지 에뮬레이터의 리소스를 사용할 수 있습니다.You can use the Microsoft Azure Storage Explorer to work with resources in your cloud Storage account, and in the storage emulator.