login register Sysop! about ME  
qrcode
    최초 작성일 :    2012년 07월 13일
  최종 수정일 :    2012년 07월 13일
  작성자 :    Taeyo
  편집자 :    Taeyo (김 태영)
  읽음수 :    5,045

강좌 목록으로 돌아가기

필자의 잡담~

태오입니다. 이번 컬럼은 Windows Azure CDN에 대해서 설명하고 있습니다. CDN이 무엇인지 Azure CDN을 이용하려면 어떻게 해야하는 지를 말이죠. 컬럼의 원문은 http://www.windowsazure.com/en-us/develop/net/common-tasks/cdn/ 입니다.

이 글은 Windows Azure 공식 컬럼인 http://www.windowsazure.com/en-us/develop/net/common-tasks/cdn/ 의 글을 편역한 내용입니다. 마이크로소프트의 공식 번역 문서가 아니며 태오 사이트 MS 컬럼 번역팀에서 번역한 내용입니다. 그렇기에, 일부 오역이나 오타가 존재할 수 있는 점 미리 양해를 구합니다. 원문에 대한 모든 저작권은 마이크로소프트에 있으며, 컬럼 내용과 관련한 질의 문답 역시 원문 사이트에 문의하시는 것을 추천드립니다.

Windows Azure에서 CDN 사용하기

Windows Azure CDN(Content Delivery Network)은 미국, 유럽, 아시아, 호주 및 남아메리카에 있는 물리적인 컴퓨트 인스턴스에 정적 콘텐트 및 블랍들을 캐시함으로써 고-대역폭 콘텐트를 범세계적으로 전달하기 위한 방안을 제공합니다. 현재 CDN 노드 위치의 목록은 Windows Azure CDN Node Locations을 참고하세요. 번역하는 현재 시점에는 서울을 포함하여 전 세계 24곳에 CDN 노드가 존재하고 있습니다.

Windows Azure 데이터를 캐시하는 CDN을 사용하는 경우에 얻을 수 있는 이점은 다음과 같습니다.

  • 콘텐트 원본 위치로부터 멀리 떨어져 있는 사용자에게 더 나은 성능과 사용자 경험을 제공할 수 있을 뿐만 아니라, 응용 프로그램이 로드하는 콘텐트가 전 세계적으로 흩어져 있어서 콘텐트를 로드하는 데 많은 시간이 소요되는 경우에도 사용자에게 더 나은 성능과 사용자 경험을 제공할 수 있습니다.
  • 특정 시점에 부하가 몰리는 경우(예를 들면, 유명 제품이 시판되는 첫 날)를 부드럽게 해결하기 위해서 스케일을 넓게 분산시킬 수 있습니다.

Windows Azure CDN을 사용하려면, 반드시 Windows Azure 구독 계정을 가지고 있어야만 하고, Windows Azure 관리 포탈에 있는 스토리지 계정이나 호스트 서비스 기능을 활성화 시켜야 합니다. CDN은 구독 계정에 대한 부가적인 애드온 기능이며, 별도의 비용 결제(billing plan)를 요구합니다.

1 단계 : 스토리지 계정 만들기

Windows Azure 구독 계정에 대해서 새로운 스토리지 계정을 만들려면 다음의 과정을 따라 하시면 됩니다. 스토리지 계정을 사용해야만 Windows Azure 스토리지 서비스에 접근할 수 있어요. 스토리지 계정이란 Windows Azure 스토리지 서비스 구성요소인 Blob 서비스, 대기열(Queue) 서비스, 테이블 서비스 각각에 접근하기 위한 최상위 수준의 네임스페이스를 의미합니다. Windows Azure 스토리지 서비스에 대해 더 알고 싶으시다면 Using the Windows Azure Storage Services를 참고하시기 바랍니다.

스토리지 계정을 만들려면, 구독계정에 대해 서비스 관리자이거나 공동 관리자이어야만 합니다.

주의 : WIDNOWS SERVICE 관리 API를 사용하여 이러한 작업을 수행하는 것에 대해 알고 싶다면 CREATE STORAGE ACCOUNT 컬럼을 참고하시기 바랍니다.

Windows Azure 구독계정에 대해 스토리지 계정을 만들려면 다음과 같이 하세요.

  1. Windows Azure 관리 포탈에 로그인 합니다.
  2. 좌측 하단에 있는 +NEW 버튼을 클릭하고, Storage를 클릭합니다.
  3. Quick Create를 클릭합니다. 그러면, Create a New Storage Account 대화상자가 나타날 거에요.


    출처 : http://www.windowsazure.com/media/devcenter/shared/cdn_createnewstorageacct.png

  4. URL 입력상자에는 서브 도메인 명을 입력하면 되는데요. 이 항목은 3-24 글자의 소문자 및 숫자를 가질 수 있습니다.

    이 값은 구독계정에 대한 Blob, Queue, Table 리소스에 접근하기 위해서 사용되는 URI의 호스트 명으로 쓰입니다. 예를 들면, Blob 서비스 안에 있는 컨테이너 리소스에 접근하려면, 다음과 같은 URI를 사용하면 됩니다. <StorageAccountLabel> 부분은 여러분이 URL 입력 상자에 기입한 값으로 대체하면 됩니다.

    http://<StorageAcountLabel>.blob.core.windows.net/<mycontainer>

    중요 : URL에 입력된 값은 스토리지 계정 URI의 서브 도메인 명으로 사용될 뿐만 아니라 Windows Azure 안에 있는 모든 호스트 서비스 사이에서 고유해야 합니다.

    또한, 이 값은 포탈 사이트에서 스토리지 계정의 이름으로도 사용되며, 계정을 프로그래밍적으로 접근하는 경우에도 사용됩니다.

    팁 : 만일 여러분의 고객들이 여러분의 자체 서브 도메인 명을 통해서 Blob에 접근하도록 하고 싶다면, 스토리지 계정에 사용자 정의 도메인을 만들 수도 있습니다. 좀 더 자세한 정보는 How to Register a Custom Subdomain Name for Accessing Blobs in Windows Azure를 참고하세요.
  5. Region/Affinity Group 드롭다운 목록에서 스토리지 계정의 지리적 위치를 선택하세요. 선호(affinity) 그룹을 만드는 방법은 How to Create an Affinity Group in Windows Azure를 참고하시면 됩니다.
  6. Create Storage Account를 클릭하세요. 그러면 스토리지 계정을 만드는 과정이 시작되는데요. 이 과정은 몇 분 정도 걸릴 수 있습니다.
  7. 스토리지 계정이 성공적으로 생성되었는지를 확인하려면, Storage 메뉴 목록에서 해당 계정이 Online 상태로 나타나고 있는지를 확인해 보시면 됩니다.

2 단계 : 스토리지 계정에 CDN 적용하기

CDN은 뛰어난 성능과 가용성을 제공하기 위해서 전략적으로 전 세계 곳곳의 적절한 장소에 정적 콘텐트를 캐시합니다. 정적인 콘텐트를 캐시하도록 CDN을 사용할 경우 얻을 수 있는 이익은 다음과 같습니다.

  • 콘텐트 원본 위치로부터 멀리 떨어져 있는 사용자에게 더 나은 성능과 사용자 경험을 제공할 수 있을 뿐만 아니라, 응용 프로그램이 로드하는 콘텐트가 전 세계적으로 흩어져 있어서 콘텐트를 로드하는 데 많은 시간이 소요되는 경우에도 사용자에게 더 나은 성능과 사용자 경험을 제공할 수 있습니다.
  • 특정 시점에 부하가 몰리는 경우(예를 들면, 유명 제품이 시판되는 첫 날)를 부드럽게 해결하기 위해서 스케일을 넓게 분산시킬 수 있습니다.

스토리지 계정이나 호스트 서비스에 대해 CDN 접근을 활성화시키고 나면, 공개적으로 사용 가능한 모든 객체들은 CDN으로 캐시됩니다. 만일, 현재 CDN에 캐시되어 있는 객체를 변경하게 되면, 변경된 새로운 콘텐트는 기존에 캐시된 콘텐트의 만료 기간이 끝나서 CDN이 그 콘텐트를 새로고침 할 때까지는 반영되지 않습니다.

구독 계정에서 CDN을 활성화 하기

  1. Windows Azure 관리 포탈로 접속한 뒤, Preview를 클릭하고 이어서 Take me to the previous portal을 선택합니다. 그러면, 운영 관리 포탈이 나타날 겁니다.


    출처 : http://www.windowsazure.com/media/devcenter/shared/previous-portal.png

  2. 운영 관리 포탈에 있는 탐색 패널에서 Hosted Services, Storage Accounts and CDN을 클릭합니다.
  3. 탐색 패널의 위쪽 영역에서 CDN을 클릭한 뒤, 리본 메뉴에서 New Endpoint를 클릭합니다.

    그러면, Create a New CDN Endpoint 창이 나타날 겁니다.


    출처 : http://www.windowsazure.com/media/devcenter/shared/cdn_createnewcdnendpoint.png

  4. Create a New CDN Endpoint 창 안에 있는 Choose a Subscription 드롭다운 목록에서 구독 계정을 선택하세요. CDN을 활성화 할 구독 계정을 선택하시면 됩니다.
  5. 그 다음, Choose a hosted service or storage account 드롭다운 목록에서 CDN 콘텐트의 원본 출처를 선택하세요. 이 드롭다운 목록을 통해서 CDN 계정에 대한 원본 출처로 어떤 것을 이용할 지 결정한다는 점에 주의해야 합니다. 원본 출처라는 것은 CDN이 콘텐트를 가져올 단일 위치를 말합니다. 원본 출처를 선택하고 나면, Source URL for the CDN Endpoint은 출처 위치에 대한 URL을 자동으로 보여줄 것입니다. 이 URL은 CDN이 캐시 네트워크에 제공할 콘텐트를 가져올 실제 URL입니다.
  6. 만일 HTTPS 연결을 사용해야 한다면, HTTPS 체크박스도 체크하세요. Windows Azure CDN과 HTTPS에 대한 내용을 더 알고 싶다면, Overview of theWindows Azure CDN을 참고하시기 바랍니다.
  7. 만일, 호스트 서비스로부터 콘텐트를 캐시할 예정이고, 가져올 콘텐트를 지정하기 위해서 질의 문자열을 사용하려 한다면, Query Strings 체크박스도 체크하시면 됩니다. 캐시할 객체를 구별하기 위해서 질의 문자열을 사용하는 방법에 대해 더욱 자세히 알고 싶다면, Overview of theWindows Azure CDN를 참고하시면 됩니다. 만일, CDN 원본으로서 블랍 스토리지 계정을 사용하려 한다면, 이 옵션을 선택하시면 안됩니다.
  8. 이제 Create를 클릭하세요.

    주의 : 끝점(endpoint)에 대해 만들어지는 설정은 생성했다고 해서 그 즉시 사용이 가능하지 않습니다. 그 설정이 CDN 네트워크 전체적으로 등록되는 데에는 60분 이상의 시간이 걸리기 때문입니다. 그렇기 때문에, 곧바로 CDN 도메인 명을 사용하여 접근을 시도하는 사용자들은 400 에러 코드를 보게 될 것입니다. 콘텐트가 CDN을 통해서 사용 가능하게 되기 전까지는 말이죠. 1시간 정도는 여유를 가지고 기다리실 필요가 있다는 말씀입니다.

3 단계 : CDN 콘텐트에 접근하기

CDN에 있는 콘텐트에 접근하려면, 다음과 같이 접근하면 됩니다.

http://<CDN네임스페이스>.vo.msecnd.net/<myPublicContainer>/<BlobName>

4 단계 : CDN 내용 제거하기

만일, 특정 객체를 더 이상 Windows Azure CDN(Content Delivery Network)에 캐시할 필요가 없다면, 다음과 같이 할 수 있습니다.

  • Windows Azure 블랍의 경우에는 공용 컨테이너에서 블랍을 제거하면 됩니다.
  • Set Container ACL 기능을 사용하여 컨테이너를 공용이 아닌 사설로 바꿉니다.
  • 관리 포탈을 이용하여 여러분의 스토리지 계정에서 CDN 끝점을 제거합니다.
  • 호스트 서비스를 변경하여 그 객체에 대한 요청에 대해 더 이상 응답하지 않도록 만듭니다.

CDN에 이미 캐시되어 있는 객체는 해당 객체의 만료기간이 끝날 때까지 캐시된 채로 남아있게 됩니다. 만료기간이 끝나면, CDN은 CDN 끝점이 여전히 유효한지 또한 여전히 객체에 익명으로 접근할 수 있는지를 확인하게 됩니다. 만일, 끝점이 유효하지 않거나 객체에 접근할 수 없다면, 그 객체는 그 이후로는 캐시되지 않습니다.

Windows Azure CDN 전용 제거 도구는 아직까지는 제공되지 않습니다.

추가 자료


authored by


 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})