내보내기(0) 인쇄
모두 확장

Azure Blob 저장소로 데이터 마이그레이션

업데이트 날짜: 2014년 5월

Azure BLOB 서비스를 사용하면 응용 프로그램에서 비디오, 오디오 및 이미지 파일 등 다량의 구조화되지 않은 텍스트 또는 이진 데이터를 저장할 수 있습니다. BLOB 저장소에는 0개 이상의 BLOB 컨테이너가 들어 있으며 컨테이너에는 0개 이상의 BLOB이 들어 있습니다. BLOB은 파일이나 이미지 등 이진 데이터로 구성된 단일 엔터티입니다.

Blob

저장소 서비스는 두 가지 유형의 Blob, 즉 블록 Blob와 페이지 Blob를 제공합니다.

  • 블록 Blob는 각각 블록 ID로 식별되는 블록으로 구성됩니다. 블록 집합 또는 목록을 작성하거나 해당 블록 ID로 커밋하여 블록 Blob를 만들거나 수정할 수 있습니다. 각 블록을 최대 4MB의 다양한 크기로 만들 수 있습니다. 한 블록 Blob는 최대 크기가 200GB이며 최대 50,000개의 블록을 포함할 수 있습니다. 블록 BLOB를 사용하면 한 BLOB 내에서 블록을 삽입 및 삭제하고 블록 순서를 변경할 수 있으며 한 BLOB의 여러 블록을 동시에 업로드할 수도 있습니다. 이 서비스는 많은 BLOB을 효율적으로 업로드 및 다운로드할 수 있도록 되어 있습니다. 응용 프로그램이 여러 판독기에서 액세스하는 대형 파일을 동시에 저장하는 경우 블록 BLOB 사용을 고려해 보십시오.

  • 페이지 BLOB은 임의 읽기 및 쓰기 작업용으로 최적화된 512바이트 페이지 모음입니다. 페이지 BLOB의 각 페이지는 BLOB 시작 지점으로부터의 오프셋을 사용하여 참조됩니다. 페이지 Blob의 콘텐츠를 추가 또는 업데이트하려면 512바이트 페이지 경계와 일치하는 오프셋과 범위를 지정하여 하나 또는 여러 페이지를 작성합니다. 한 번의 페이지 Blob 쓰기로 한 페이지나 여러 페이지 또는 최대 4MB의 페이지 Blob를 덮어쓸 수 있습니다. 페이지 BLOB에 쓰기 작업은 바로 발생하며 BLOB으로 즉시 커밋됩니다. BLOB의 최대 크기는 1TB이며 BLOB 크기는 512바이트의 배수여야 합니다.

BLOB 저장소에 대한 자세한 개요는 Azure 포털을 참조하십시오.

저자: Sreedhar Pelluru
참여자: James Podgorskiani
검토자: Christian Martinez, Valery Mizonov, Kun Cheng, Steve Howard

블록 BLOB과 페이지 BLOB 비교

블록 BLOB을 사용하여 최대 200GB까지 대형 BLOB을 업로드할 수 있습니다. 블록 BLOB은 네트워크에서 대형 파일을 관리하는 데 도움이 되는 기능으로 최적화되어 있습니다. 이러한 기능 중 하나가 여러 블록을 동시에 업로드 및 다운로드하고 커밋 시 순서를 결정할 수 있는 기능입니다. 한편, 페이지 BLOB은 임의 읽기 및 쓰기 액세스용으로 최적화되어 있으며, 이 BLOB에서는 페이지가 512바이트 경계에 맞춰집니다.

다음은 페이지 BLOB가 사용되는 일부 시나리오입니다.

  • 범위 기반 업데이트가 있는 파일에 액세스하는 응용 프로그램. 이 응용 프로그램은 페이지 BLOB을 파일로 처리하고 범위 지정된 쓰기를 사용하여 BLOB의 변경된 부분을 업데이트합니다. 페이지 BLOB 업데이트에 대한 단독 쓰기 액세스 권한을 얻을 수 있습니다.

  • 페이지 BLOB을 순환 버퍼로 처리하는 응용 프로그램에 대한 사용자 지정 로깅. 페이지 BLOB이 채워질 때 응용 프로그램에서는 BLOB 구조의 시작 지점부터 데이터 쓰기를 시작할 수 있습니다.

마이그레이션 고려 사항

응용 프로그램을 마이그레이션하여 Azure Blob 저장소를 사용하려는 경우 다음과 같은 다양한 요인을 고려하십시오.

  • BLOB 저장소에 저장할 수 있는 데이터 유형에는 어떤 것이 있습니까?

  • 마이그레이션 응용 프로그램에서 BLOB에 저장된 데이터에 어떻게 액세스할 수 있습니까?

  • 저장소에서 마이그레이션된 응용 프로그램의 고가용성, 확장성, 재해 복구 및 보안 요구 사항을 지원합니까?

  • BLOB 저장소에 기존 데이터를 어떻게 업로드할 수 있습니까?

데이터 고려 사항

BLOB 저장소를 사용하기 위해 응용 프로그램을 다시 디자인하기 전에 먼저 BLOB 저장소가 저장할 데이터에 적합한지 여부를 평가하십시오. BLOB 저장소는 문서, 사진, 오디오 및 비디오와 같은 다량의 구조화되지 않은 텍스트 또는 이진 데이터를 저장하기 위한 것입니다.

BLOB 저장소를 사용하여 응용 프로그램이 종속되어 있는 파일/이진 파일을 저장할 수도 있습니다. 종속 파일을 BLOB에 저장하면 전체 응용 프로그램 패키지(.Cspkg) 파일을 업데이트하거나 업로드하지 않고 종속 파일만 업데이트할 수 있습니다. 또한 개별 BLOB에 다양한 종속 파일 버전을 저장하여 응용 프로그램에서 특정 버전과 관련된 종속 파일을 동적으로 로드하도록 할 수도 있습니다.

BLOB 저장소와 Azure SQL 데이터베이스 비교

Azure SQL 데이터베이스는 데이터베이스 안에 큰 개체를 저장할 수 있도록 하기 위해 varbinary(max) 데이터 형식을 지원합니다. 응용 프로그램에서 사진, 오디오 및 비디오 같은 큰 이진 개체를 SQL Server 데이터베이스에 저장하고 액세스하는 경우 응용 프로그램을 Azure 플랫폼으로 마이그레이션할 때 SQL 데이터베이스를 사용할지 BLOB 저장소를 사용할지 여부를 결정하십시오.

varbinary 열의 FILESTREAM 특성을 사용하여 SQL Server 데이터베이스에 크기가 2GB 이상인 파일을 저장하려는 경우에는 SQL 데이터베이스에서 현재는 FILESTREAM을 지원하지 않으므로 Azure 플랫폼으로 마이그레이션할 때 BLOB 저장소 사용을 고려하십시오. 파일 크기가 2GB 미만이고 SQL Server의 FILESTREAM 기능을 사용하지 않는 경우라도 응용 프로그램 특성에 따라 BLOB 저장소 사용을 고려해 볼 수 있습니다. BLOB 저장소가 더 저렴하고 확장성도 더 좋으며 REST API를 사용하는 모든 클라이언트에서 액세스할 수 있기 때문입니다.

BLOB 저장소에 큰 개체를 저장한 후에는 SQL 데이터베이스 인스턴스의 테이블 열에 BLOB에 대한 참조를 저장할 수 있습니다. SQL 데이터베이스 인스턴스의 최대 크기는 현재 150GB입니다. 그러므로 SQL 데이터베이스 인스턴스에 큰 개체를 저장할 경우 공간이 부족해 질 수도 있습니다. BLOB 저장소의 최대 크기는 200TB로, 사실상 Azure 저장소의 크기 제한인 셈입니다. BLOB 저장소의 각 BLOB 최대 크기는 200GB(블록 BLOB) 또는 1TB(페이지 BLOB)입니다.

예를 들어 이미지와 같은 그래픽 리소스가 포함된 내부 웹 응용 프로그램을 마이그레이션하려는 경우 해당 URL을 SQL 데이터베이스(또는 테이블 저장소)에 저장하고 클라이언트 프로그램에서 해당 URL을 검색하여 URL에서 이미지를 표시하게 할 수 있습니다.

SQL 데이터베이스 - Blob

SQL 데이터베이스에서 BLOB을 옮기고 BLOB 저장소에는 BLOB에 대한 참조만을 저장하므로 응용 프로그램의 성능이 다소 저하될 수도 있습니다. 클라이언트 응용 프로그램에서 먼저 SQL 데이터베이스 인스턴스에 쿼리하여 BLOB의 위치를 확인하고 나서 BLOB 저장소에 쿼리하여 이미지나 큰 개체와 같은 BLOB 데이터를 가져오기 때문입니다. SQL 데이터베이스와 BLOB 저장소의 데이터를 함께 백업/복원할 수 없으므로 BLOB 저장소 및 SQL 데이터베이스의 백업이 트랜잭션 면에서 일관되지 않을 수도 있습니다.

또 한 가지 고려해야 할 사항은 응용 프로그램이 데이터 저장소에 대해 수행하는 트랜잭션 수입니다. SQL 데이터베이스에서는 수행되는 트랜잭션에 대한 별도의 비용이 청구되지 않는 반면, Azure 저장소에 대해 수행되는 트랜잭션에는 비용이 청구됩니다. 자주 액세스하지 않는 데이터는 Azure 저장소에 저장하기에 적합한 반면, 자주 액세스하는 데이터는 SQL 데이터베이스에 저장하는 것이 보다 더 경제적일 수 있습니다.

데이터 액세스 고려 사항

프로그래밍 언어로 작성되어 운영 체제에서 실행되는 클라이언트 응용 프로그램은 HTTP(S) REST API를 사용하여 Azure BLOB에 액세스할 수 있습니다. 특정 운영 체제 및 프로그래밍 언어를 대상으로 한 클라이언트 라이브러리를 사용하여 BLOB 저장소에 액세스할 수도 있습니다. .NET, Node.js, Java 및 PHP용 라이브러리가 있으며, 이러한 라이브러리는 Azure 개발자 센터에서 사용할 수 있습니다. 예를 들어 .NET 저장소 클라이언트 라이브러리는 .NET 개발자가 보다 쉽게 개발할 수 있도록 REST API 전체에서 강력한 형식의 .NET 래퍼를 제공합니다.

Azure 플랫폼에서 BLOB 저장소에 응용 프로그램에 사용되는 구조화되지 않은 데이터를 저장하기로 결정한 경우 저장소 클라이언트 라이브러리를 사용하여 데이터에 액세스하는 코드의 일부를 다시 작성해야 합니다.

Blob 저장소의 이점

Azure BLOB 저장소에 데이터를 저장하는 경우 다음과 같은 주요 이점을 자동으로 얻게 됩니다.

  • 확장성. Azure Blob 저장소는 Azure CDN을 통해 확장성이 매우 뛰어난 BLOB 분산 시스템을 지원합니다. "Azure 저장소 확장성 및 성능 목표" 문서에서도 자세한 내용을 확인할 수 있습니다. CDN은 여러 서버의 사용량이 많은 BLOB을 제공하여 응용 프로그램을 확장하고 트래픽 요구를 충족시킵니다. 이 시스템은 가용성과 영속성도 높습니다.

  • 고가용성/내결함성: Azure에 저장된 Blob는 하드웨어 오류 복구를 위해 동일한 데이터 센터 내의 세 위치에 복제됩니다. 또한 모든 Azure 저장소 서비스와 마찬가지로 여러 오류 도메인에 데이터가 복제되어 가용성이 향상됩니다.

  • 재해 복구: Azure에서는 중대한 재해 시 지리적 중복 복제와 로컬 중복 복제 간에 선택할 수 있습니다. 자세한 내용은 "방법: 저장소 계정 복제 관리" 문서를 참조하십시오.

  • 보안: Azure 저장소 서비스에 대한 모든 요청은 인증되어야 합니다. 단, 공용 컨테이너 리소스에 대한 익명 요청이 아니어야 합니다. 자세한 내용은 저장소 계정에 대한 액세스 인증을 참조하십시오.

  • 어디서든 모든 클라이언트에서 데이터 액세스: HTTP를 통해 REST API를 사용하여 Azure Blob 저장소에 액세스할 수 있습니다. 모든 운영 체제의 모든 클라이언트 응용 프로그램에서 REST를 사용하여 BLOB 저장소에 액세스할 수 있습니다.

기존 데이터를 Azure BLOB 저장소로 마이그레이션

확장성이 매우 뛰어난 BLOB 저장소를 활용하기 위해 응용 프로그램을 다시 디자인한 후 파일 시스템이나 SQL Server 데이터베이스에서 기존 데이터를 마이그레이션해야 할 수도 있습니다. 이렇게 하려면 BLOB 저장소에 대한 HTTP(S) REST API 또는 .NET 클라이언트 라이브러리를 사용하여 코드를 작성하거나 Red Gate Software의 Cloud Storage Studio와 같은 도구를 사용할 수 있습니다.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft