모바일 장치에서 클라우드 컴퓨팅 활용 방안 - 2) 테이블, 큐, 블랍 등의 다양한 데이터 저장소 활용 하기

(임베디드 월드2012년 4월호에 기고 했던 원고를 협의 하에 포스팅합니다. 원고의 저작권은 임베디드 월드(https://www.embeddedworld.co.kr/) 에 있습니다. 원문 주소 : https://www.embeddedworld.co.kr/atl/view.asp?a_id=5538)

 

모바일 장치에서 클라우드 컴퓨팅 활용 방안 - 2) 테이블, 큐, 블랍 등의 다양한 데이터 저장소 활용 하기

: 동영상, 문서
뿐만
아니라
데이터베이스와
같은
형태의
자료들을
클라우드
플랫폼
에서
제공하는
서비스와
연동해서
저장하고
필요할

사용할

있게
하는
방법을
알아
본다.

 

들어가기

지난
회에서는 모바일 서비스 개발에서의 플랫폼
클라우드의 장점

이를
활용해서
모바일
장치에서
푸시
알림을
받는
방식에
대한
내용을
다뤘다. 이번
회에는
플랫폼
클라우드에서
제공하는
저장소를
모바일
장치의
애플리케이션에서
클라우드 저장소의 필요성, 사용시 고려사항 및 툴킷을 통한 사용 예를 살펴보겠다.

 
 

모바일 장치에서 클라우드 저장소의 필요성

먼저 모바일 장치에서 클라우드의
저장소를

활용해야
하는지
생각해
보자. 첫
번째로는
모바일
장치의 저장 공간 제약이 이유가 될 수 있다. 장치에
따라서
다르지만
대용량의
하드디스크를 탑재하는 장치가 아닌
메모리
타입의
저장소를
쓰는
경우에는
더욱
이 같은 공간 제약의
가능성이
높아진다.
또한
저장소를
교체하는
것이
불가능
하거나
비용이
많이
드는 경우도 있을 수 있다. 이에
반해
클라우드의
저장소는
상대적으로
저렴한
비용에
대용량의
데이터를
저장할

있기에 장치에 직접 데이터를 저장하지 않고, 클라우드를 활용하는 서비스가 많이 생겨나고 있는 추세이다.

 
 


번째로는
여러
모바일
장치를
사용함에
따라서
자료가
여러
곳에
분산되어
저장되는
문제가
있을

있다. 사진과
같은
데이터만
하더라도, 한 개인의 휴대폰에
그리고
노트북
등에
각기
저장되게
됨으로서 같은 사진의 중복이
되기도
쉽고, 찾기도 힘들어지는 등 관리
부담이
생길

있다. 또한
여러
장치에서
동일한 기능을 하는 애플리케이션이
구동
된다면, 이 애플리케이션들 끼리 함께
사용할

있는
저장소가
필요하게
된다. N 스크린 서비스에서 저장소로서 클라우드를 활용하는 것이 중요한 이유가 여기에 있다.

 
 


번째로는
자료의
보안이나
백업과
같은
관리적인
요소를


있다. 많은
사용자를
대상으로
하는
애플리케이션의
경우
사용자의
데이터가
안정적으로
보관
되는
것은
매우
중요하다. 하지만

같은
데이터를
저장하는
매체가 수명이 있을 수 있고, 또한
예측
못한
천재
지변
등으로
인해서
데이터가
손실
되는
경우가
생길

있다. 이를
대비하기
위해서


저장소
관리에
특화되어 있는
클라우드
서비스를
사용할
수도
있다.

 
 

끝으로
한가지
이유를

들자면, 클라우드에서 확장 및 축소가 용이하도록 서비스를 설계할 경우에는 서비스 자체가 구동되는 가상머신에 저장소를 활용하지 않도록 설계를 하기 때문에, 외부에 따로 데이터를 저장하고 이를 복수의 가상머신 들이 공유할 공간이
필요하다.

 
 

클라우드 저장소의 종류 및 활용도

그러면
클라우드에 데이터를 저장하기 위해서는어떤 저장소 들이 필요할까?
이에
대해서는
마이크로소프트에서
클라우드
플랫폼으로
서비스
중인
윈도우
애저의
저장소를
예를
들어서
설명을
해보겠다.

 
 

윈도우
애저에서는
크게

가지
종류의
저장소를
제공한다. 이중

번째로는
엑셀과
같은

형태로
데이터를
저장하는데
활용할

있는
테이블(Table) 저장소가
있다.
엔티티(entity)의
집합으로
이뤄지며, 각각의
엔티티는
프로퍼티(property)의
집합으로 구성된다. 테이블 저장소에 저장한
데이터를
쿼리
등을
통해서
검색해서
활용하는
용도로
사용할

있다. 관계형 데이터 베이스와의 차이점은 테이블 간의 관계 정보를 갖지 않는 NoSQL 형태라는 점이다.

 
 

테이블
저장소
개념

 
 


번째로는
사진이나
영상과
같은
일반적으로
사용하는
파일을
메타
데이터와
함께
저장할

있는
공간으로
윈도우
애저에서는
이를
블랍(BLOB: Binary Large Object) 저장소라는
이름으로
파일들을
저장할

있는
공간을
제공
한다. 블랍 파일은
컨테이너(Container) 안에 속하게 되며, 순차적으로
읽고
쓰기를
하는
파일은 블락(Block) 블랍으로
임의의
위치에
읽고
쓰기는 파일은 페이지(Page) 블랍으로 용도에 맞게
사용한다. 블랍에 저장한 파일은 URL에 계정, 컨테이너 그리고 블랍이름을 통해서 접근하도록 할 수 있다.

 
 

블랍
저장소
개념

 
 


번째로는
클라우드
서비스
간에
메시지를
안전하게
전송하거나
온프레미스(on-premise)와의
연동
등에
쓰일

있는
큐(Queue) 저장소가 있다. 먼저
들어온
메시지가
먼저 처리
되는 큐의
특성을 갖고 있어서 이
같은 메시지 처리가 적합한
상황에 활용 할 수
있다.

 
 


저장소
개념

 
 

끝으로는
관계형
데이터
베이스를
클라우드
상에
구현해
둔 SQL 애저가 있다. 기존에
관계형
데이터
베이스를
활용하는
것과
유사하게
사용할

있으며, 클라우드에서
운영
되므로
장애
처리
등의
물리적인
관리적인
부담을
줄이고, 데이터 베이스의 논리적인
관리에
집중할

있다. 실제로 SQL 애저의 내부에는 여러
대의 SQL 서버들을
사용자들이
공유해서
사용하는
방식으로
구성되어
있다.

 
 

 
 

 
 

SQL 애저
구조

 
 

저장소 활용 시의 보안과 성능

저장소를
사용하기
위해서
외부에
제한
없이
공개된
데이터가
아니라면, 권한
처리
등을
통해서
보안에
신경을
써야한다. 위에서
소개한
윈도우
애저의
저장소
중에 SQL 애저는
다른
데이터베이스에
접속하는
것과
마찬가지로
설정한
사용자
이름과
비밀번호를
입력하는
방식 접근한다.

 
 

그리고
블랍, 테이블, 큐에
대해서는
저장소 계정을
생성시에
저장소
이름과
그에
맞는
저장소의

값을
시스템을
통해서
부여
받고, 이를
통해서
접근을


있게
된다. 이런
방식에서
비밀번호나

값의
노출을
피하기
위해서
아래와
같이
클라우드에
있는

서비스
등을
통해서
저장소에
접근을
한다.

 
 

웹서비스를
통해서
저장소에
접근

하지만
성능
향상
등의
목적으로
저장소에
직접
접근을
하고자

경우가
있으며
이럴
경우에는
공개
파일의
경우는
컨테이너를 Public으로
설정해서
접근
가능하게
하거나, 웹
서비스
쪽에
공유
접근
서명(Share Access Signature ) 방식을
이용해서, 해당
서명
값을
갖고서 정해진 시간 동안 직접
저장소에
접근할

있도록
할 수 있다. 공유 접근 서명은 일시적으로 사용하는 Ad-hoc 방식과 일정한 규칙으로 사용을 하는 Policy based 방식이 있다.

 
 

공유
접근
서명을
이용한
저장소
블랍
저장소
접근

 
 


외에도

서비스에
요청이
몰릴
시에
보다
안정적으로
서비스를
하기
위해서
클라우드에
있는

저장소를
활용할

있다. 모바일
장치에서

저장소에
특정
작업
요청을
하고, 클라우드에
있는
서비스에서

저장소를
폴링(Polling)하고
있다가 새로 들어온 작업 요청을
발견하면
이를
처리하는
방식이다.

 
 


저장소를
활용한
작업
처리

 
 

윈도우폰에서 클라우드 저장소 활용 샘플

그러면
이제
부터는
실제로
클라우드의
저장소를
모바일
장치에서
활용할

있도록, 윈도우
애저의
저장소를
윈도우
폰에서
활용하는
툴킷(Windows Azure Toolkit for Windows Phone)의
샘플 프로그램을 통해서
내용을
살펴보겠다. (해당 툴킷에 대한
소개

실행
방법은
지난 1회 연재를
참고)

 
 

비주얼
스튜디오에서
해당
툴킷을
실행하고, 로그인을
하면 table list 페이지에서
현재
연결된 클라우드
저장소에
있는
테이블
목록을
확인할

있다. UI에
있는
버튼을
통해서
테이블을
생성하거나
삭제할

있다. 또한, sample data 페이지에서는 Sample Data 테이블에
간단히
행(Row)를
추가할

있다.

 
 

테이블
저장소에
테이블
생성, 행
추가

목록
보기

 
 

이제
블랍
저장소를
이용하는
것을
살펴보기
위해서 list blobs 페이지로
이동을
한다. 처음에는
저장된
블랍
파일이
없기
때문에
윈도우폰에
있는
카메라를
이용해서
찍은
사진을
블랍
저장소에
업로드
해서 업로드를 하겠다. 사진
업로드가
끝나면 pictures 컨테이너에서
업로드한
사진을
확인할

있다.

 
 

  

  

블랍
저장소에
이미지
저장하기
 

이제

저장소에
메시지를
저장하고
이것이
동작하는
것을
알아보겠다. 먼저
큐를
하나
생성하고, 해당
큐에 queue 버튼을 로
메시지를
넣고 dequeue 로
메시지를
넣은
순서대로
빼는
것이다. 클라우드에서 운영되는 단순한
메시지
큐이지만, 이를 활용하면 다수의
사용자들이 이용하는 서비스의 작업을 할 경우에 순차적으로
빠짐
없이 처리 할

있다.

 
 

 

 
 


저장소에

생성

메시지
입출력

 
 

저장소 별 사용자 권한 관리

현재
살펴보고
있는
툴킷은
윈도우폰용에서 클라우드 저장소를 사용하는 폰용 애플리케이션과 클라우드 저장소를
관리하는
웹 애플리케이션으로
나누어져
있다. 웹
프로젝트에
관리자로
로그인을
하면
윈도우폰 앱플리케이션에서

것과
동일한 데이터 저장소를


있고, 각각의
저장소에
사용자들의
접근
권한을
조정할

있다. User 메뉴에
가면
사용자
별로
저장소에
권한
체크
박스가
있는
것을


있다.

 

사용자

저장소
접근
권한
관리(좌) 및
블랍
컨테이너
권한
관리
화면(우)

 
 

지금까지
모바일
장치에서
클라우드의 저장소를 활용하데
필요한 내용들과 툴킷에서 제공하는 기능 들에 대해서 알아보았다. 클라우드에서
제공하는
저장소
들의
특징을
파악하고, 이를
활용해서
활용해서 모바일 장치에서 효율적인 서비스를 할 수 있었으면 한다. 다음 번에는 모바일
장치에서
클라우드
서비스
외부의
사용자
정보를
활용하는
내용을
다루도록
하겠다.