이 문서에서는 Azure Files를 사용한 애플리케이션 개발에 대한 개요를 제공하고 앱의 요구 사항에 따라 가장 적합한 방법을 결정하는 데 도움이 됩니다.
적용 대상
관리 모델 | 청구 모델 | 미디어 계층 | 중복성 | 중소기업 | 네트워크 파일 시스템 (NFS) |
---|---|---|---|---|---|
Microsoft.Storage (마이크로소프트 저장소) | 프로비전된 v2 | HDD(표준) | 로컬(LRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 프로비전된 v2 | HDD(표준) | 영역(ZRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 프로비전된 v2 | HDD(표준) | 지역(GRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 프로비전된 v2 | HDD(표준) | GeoZone(GZRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 프로비전된 v1 | SSD(프리미엄) | 로컬(LRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 프로비전된 v1 | SSD(프리미엄) | 영역(ZRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 종량제 | HDD(표준) | 로컬(LRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 종량제 | HDD(표준) | 영역(ZRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 종량제 | HDD(표준) | 지역(GRS) |
![]() |
![]() |
Microsoft.Storage (마이크로소프트 저장소) | 종량제 | HDD(표준) | GeoZone(GZRS) |
![]() |
![]() |
Azure Files를 사용한 앱 개발 정보
Azure Files는 개발자가 Azure 파일 공유에서 데이터에 액세스하고 리소스를 관리하는 여러 가지 방법을 제공합니다. 다음 표에서는 접근 방식을 나열하고, 작동 방식을 요약하고, 각 방법을 사용하는 시기에 대한 지침을 제공합니다.
접근법 | 작동 방식 | 사용 시기 |
---|---|---|
표준 파일 I/O 라이브러리 | 업계 표준 SMB(서버 메시지 블록) 및 NFS(네트워크 파일 시스템) 프로토콜을 사용하여 탑재된 Azure 파일 공유를 통해 OS 수준 API 호출을 사용합니다. SMB/NFS를 사용하여 파일 공유를 탑재하는 경우 .NET System.IO os , Python io java.io , Java 또는 JavaScript(Node.js)와 같은 java.nio 프로그래밍 언어 또는 fs 프레임워크에 파일 I/O 라이브러리를 사용할 수 있습니다. |
현재 표준 파일 I/O를 사용하는 기존 코드가 있는 업무용 앱이 있으며, 이 앱이 Azure 파일 공유와 호환되도록 코드를 다시 작성하지 않으려는 경우 |
FileREST API | HTTPS 엔드포인트를 직접 호출하여 Azure Files에 저장된 데이터와 상호 작용합니다. 파일 공유 리소스에 대한 프로그래밍 방식 제어를 제공합니다. Azure SDK는 FileREST API를 기반으로 빌드되는 클라이언트 라이브러리를 제공하므로 친숙한 프로그래밍 언어 패러다임을 통해 FileREST API 작업과 상호 작용할 수 있습니다. | 고객을 위해 부가 가치 클라우드 서비스 및 앱을 빌드하고 있으며 네이티브 프로토콜을 통해 사용할 수 없는 고급 기능을 사용하려고 합니다. |
스토리지 리소스 공급자 REST API | ARM(Azure Resource Manager)을 사용하여 스토리지 계정 및 파일 공유를 관리합니다. 다양한 리소스 관리 작업을 위해 REST API 엔드포인트를 호출합니다. | 앱 또는 서비스는 스토리지 계정 또는 파일 공유 만들기, 삭제 또는 업데이트와 같은 리소스 관리 작업을 수행해야 합니다. |
표준 파일 I/O 라이브러리
파일 I/O 라이브러리는 Azure Files 리소스에 액세스하고 작업하는 가장 일반적인 방법입니다. SMB 또는 NFS를 사용하여 파일 공유를 탑재하면 운영 체제에서 로컬 파일 시스템에 대한 API 요청을 리디렉션합니다. 이 방법을 사용하면 .NET System.IO
os
, Python io
java.io
, Java 또는 JavaScript(Node.js)와 같은 java.nio
기본 프로그래밍 언어 또는 fs
프레임워크에 표준 파일 I/O 라이브러리를 사용할 수 있습니다.
앱에 다음이 필요한 경우 파일 I/O 라이브러리를 사용하는 것이 좋습니다.
- 앱 호환성: 이미 표준 파일 I/O를 사용하는 기존 코드가 있는 기간 업무 앱에 적합합니다. 앱이 Azure 파일 공유로 작동하도록 코드를 다시 작성할 필요가 없습니다.
- 사용 편의성: 표준 파일 I/O 라이브러리는 개발자가 잘 알고 있으며 사용하기 쉽습니다. Azure Files의 주요 가치 제안은 SMB 및 NFS를 통해 네이티브 파일 시스템 API를 노출한다는 것입니다.
기타 고려 사항:
- 네트워크 액세스: SMB는 포트 445를 통해 통신하고 NFS는 포트 2049를 통해 통신합니다. 이러한 포트가 클라이언트 컴퓨터에서 차단되지 않았는지 확인합니다. 자세한 내용은 Azure Files에 대한 네트워킹 고려 사항을 참조하세요.
FileREST API
FileREST API는 Azure Files에 프로그래밍 방식으로 액세스할 수 있도록 합니다. 이를 통해 HTTPS 엔드포인트를 호출하여 파일 공유, 디렉터리 및 파일에 대한 작업을 수행할 수 있습니다. FileREST API는 네이티브 프로토콜을 통해 사용할 수 없는 높은 확장성 및 고급 기능을 위해 설계되었습니다. Azure SDK는 FileREST API를 기반으로 빌드되는 클라이언트 라이브러리를 제공합니다.
애플리케이션에 다음이 필요한 경우 FileREST API 및 파일 공유 클라이언트 라이브러리를 사용하는 것이 좋습니다.
- 고급 기능: 네이티브 프로토콜을 통해 사용할 수 없는 작업 및 기능에 액세스합니다.
- 사용자 지정 클라우드 통합: Azure Files와 직접 상호 작용하는 백업, 바이러스 백신 또는 데이터 관리와 같은 사용자 지정 부가 가치 서비스를 빌드합니다.
- 성능 최적화: 데이터 평면 작업을 사용하는 대규모 시나리오의 성능 이점을 활용할 수 있습니다.
FileREST API는 Azure Files를 리소스 계층 구조로 모델화하며 디렉터리 또는 파일 수준에서 수행되는 작업에 권장됩니다. FileREST API를 기반으로 하는 언어별 클라이언트 라이브러리에 대한 자세한 내용은 데이터 액세스에 대한 라이브러리를 참조하세요.
스토리지 리소스 공급자 REST API
Azure Storage 리소스 공급자는 Azure Resource Manager를 기반으로 하는 서비스이며 선언적(템플릿) 및 명령적(직접 API 호출) 메서드를 모두 지원합니다. Azure Storage 리소스 공급자 REST API는 파일 공유를 포함하여 Azure Storage 리소스에 프로그래밍 방식으로 액세스할 수 있도록 합니다. Azure SDK는 Azure Storage 리소스 공급자 REST API를 기반으로 빌드되는 관리 라이브러리를 제공합니다.
스토리지 리소스 공급자는 파일 서비스 또는 파일 공유 수준에서 수행되는 작업에 권장됩니다. Azure Storage 리소스 공급자 REST API를 기반으로 하는 언어별 관리 라이브러리에 대한 자세한 내용은 리소스 관리를 위한 라이브러리를 참조하세요.
Azure Files용 Azure SDK 라이브러리
Azure SDK는 Azure Files 리소스를 사용하기 위한 두 가지 라이브러리 집합을 제공합니다. 하나의 라이브러리 집합은 FileREST API를 기반으로 하며 디렉터리 또는 파일 수준에서 데이터 액세스 작업을 처리하도록 설계되었습니다. 이러한 라이브러리를 데이터 평면이라고도 합니다. 또 다른 라이브러리 집합은 Azure Storage 리소스 공급자 REST API를 기반으로 하며 파일 서비스 또는 파일 공유 수준에서 리소스 관리 작업을 처리하도록 설계되었습니다. 이러한 라이브러리를 컨트롤 플레 인(또는 관리 평면)이라고도 합니다.
데이터 액세스를 위한 라이브러리
데이터 평면 라이브러리는 디렉터리 또는 파일 수준에서 데이터 액세스 작업을 처리하도록 설계되었습니다. 다음 섹션에서는 .NET, Java, Python, JavaScript 및 Go용 파일 공유 클라이언트 라이브러리를 보여줍니다.
다음 표에서는 데이터 액세스를 위한 파일 공유 클라이언트 라이브러리를 보여줍니다.
라이브러리 | 참고 문헌 | 패키지 | 출처 |
---|---|---|---|
Azure.Storage.Files.Shares | 참조 | NuGet | 깃허브 |
특정 데이터 액세스 시나리오에 파일 공유 클라이언트 라이브러리를 사용하는 방법에 대한 자세한 내용은 .NET을 사용하여 Azure Files용 개발을 참조하세요.
리소스 관리를 위한 라이브러리
컨트롤 플레인 라이브러리는 Azure Storage 리소스 공급자 REST API를 기반으로 빌드되므로 Azure Storage 리소스를 관리할 수 있습니다. Azure Storage 리소스 공급자는 Azure Resource Manager를 기반으로 하는 서비스이며 선언적(템플릿) 및 명령적(직접 API 호출) 메서드를 모두 지원합니다.
리소스 관리 라이브러리는 파일 서비스 또는 파일 공유 수준에서 리소스 관리 작업을 처리하도록 설계되었습니다. 작업에 대한 자세한 내용은 파일 서비스 또는 파일 공유를 참조하세요. 다음 섹션에서는 .NET, Java, Python, JavaScript 및 Go용 Azure Storage 관리 라이브러리를 보여 줍니다.
다음 표는 리소스 관리를 위한 Azure Storage 클라이언트 라이브러리를 보여줍니다.
라이브러리 | 참고 문헌 | 패키지 | 출처 |
---|---|---|---|
Azure.ResourceManager.Storage | 참조 | NuGet | 깃허브 |
특정 리소스 관리 시나리오에서 Azure Storage 관리 라이브러리를 사용하는 방법에 관한 자세한 내용은 .NET용 Azure Storage 관리 라이브러리 개발자 가이드를 참조하세요.