Azure, AWS, GCP 클라우드 활용 Tip과 강좌 게시판

이곳은 개발자를 위한 Azure, AWS, GCP등 클라우드 활용 Tip과 강좌 게시판 입니다. 클라우드 환경을 개발하면서 알아내신 Tip이나 강좌, 새로운 소식을 적어 주시면 다른 클라우드를 공부하는 개발자 분들에게 큰 도움이 됩니다. 감사합니다. SQLER.com은 개발자와 IT전문가의 지식 나눔을 실천하기 위해 노력하고 있습니다.

6차 체험의 주제가 “SQL Azure”이다 보니 관련 자료를 이것저것 찾아보다가, 문득  REST API를 제공한다는 걸 보게 되어 잠깐 이를 테스트해보기로 합니다. 이번 후기에서 살펴볼 내용은 아래와 같습니다.

 

  • 공개/개인 인증서 키 생성 및 등록
  • REST API 사용 검증 샘플
  • 방화벽 Rule 생성 콘솔 어플리케이션 테스트 

 

1. 공개키 인증서 생성. Azure의 관리 기능을 REST나 .NET 등의 개발모듈에서 사용하기 위해서는 Azure에 인증서가 업로드가 되어 있어야 하고, 이 인증서를 사전에 만드는 작업을 진행합니다.

Windows Azure 와 연동할 인증서 파일을 생성해야 하는군요. x.509 v3를 지원하는 인증서 파일을 생성해야 합니다. Visual Studio 가 설치되어 계시다면 “Visual Studio  명령 프롬프트”를 실행한 후 인증서파일을 저장할 경로로 이동하여 아래와 같이 입력합니다.

makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"

[적용 결과]  -> D 루트 드라이브에 StarhuntCert.cer  파일이 생성됩니다.
인증서를 생성하는 방법은 http://msdn.microsoft.com/ko-kr/library/gg432987.aspx 를 참조하시면 IIS를 사용하는 방법도 추가적으로 잘 나와 있습니다.

image

 

2. 개인키 인증서 생성. 방금 만든 공개키 인증서에 매핑되는 개인키가 추가적으로 필요합니다. 이는 REST API를 호출할 때 코드에서 이 개인인증서 파일정보를 사용하게 됩니다.

a. 실행 명령 창에서 “cermgr.msc”를 입력하면 인증서 관리 MMC 창이 뜨게 되고, 개인용 –> 인증서 노드를 보시면 앞서 만들었던 인증서항목이 보이게 됩니다.

image

 

b. 해당 인증서를 선택하고 오른쪽 마우스를 클릭하고 [모든작업 –> 내보내기]를 선택합니다.

image

 

c. 인증서 내보내기 마법사 창이 아래와 같이 뜨게 됩니다. “다음”을 선택하시구요.

image

 

d. “예, 개인 키를 내보냅니다”를 선택하고 다음으로 진행합니다.

image

 

e. 사용할 형식에 개인정보 교환 기본 선택되어 있는 걸로 두고 다음으로 진행합니다.

image

 

f. 암호를 입력합니다.

image

 

g. 개인 키 파일을 저장할 경로와 키파일명을 지정합니다.

image

 

h. 아래와 같이 최종 정보 확인 후 마침을 선택하게 되면 지정된 경로에 파일이 만들어지게 됩니다.

image

 

3. 공개키 인증서를 포탈에 업로드합니다.

a. 애저 포탈에 접속해서 왼쪽 메뉴 중 제일 하단의 “설정”메뉴를 선택하면 첫번째 탭에 관리인증서페이지가 열립니다.

image

 

b. 하단의 “업로드” 버튼을 클릭하고 아래와 같이 파일 찾기 화면에서 앞서 만들었던 공개키 인증서(.cert)를 선택하여 업로드합니다.

image

 

c. 이번 체험의 경우 구독 종류가 “3개월 무료체험”과 “종량제”가 있는데 현재 만들어진 DB들이 종량제 관련 항목들이라 “종량제”를 선택 한후 완료합니다.

image

 

d. 정상적으로 업로드가 완료되면  아래와 같이 앞서 만들었던 인증서가 리스트에 나타난 걸 확인할 수 있습니다.

image

 

4. REST 연결 클라이언트 검증

SQL Azure의 Rest 호출을 위한 인증서 작업이 마무리 되었기 때문에 간단한 검증용 클라이언트를 만들어 테스트를 진행하였습니다.

a. Visual Studio를 사용하여 간단한 콘솔 어플리케이션을 하나 만들고 아래와 같이 서버 정보를 얻어오는 REST를 호출해보기로 합니다.

image

ClientCertification 정보에 2번에서 만들었던 개인키 정보(파일경로, 암호)를 지정해주는 것이 포인트겠네요. subscriptionid(구독 ID)는 애저 포탈의 대시보드 화면의 오른쪽 아래에서 보시면 확인 가능합니다.

 

b. Break를 걸고 리턴되는 값을 확인해보면 아래와 같이 체험중인 SQL Azure 서버 정보를 잘 받아오는 걸 확인했습니다.

image

 

5.  MS에서 제공하는 REST API 사용 추가 샘플을 사용하여 방화벽 설정을 추가할 수 있는 콘솔 어플리케이션을 만들고 테스트를 진행합니다.

a. Visual Studio에서 “콘솔 응용 프로그램”을 선택하고 프로젝트 이름은 “SQLAzureDatabaseManagement”를 입력하고 진행합니다.

image

 

b. Program.cs 파일을  페이지의 내용으로 변경합니다. 참조한 샘플은 “서버 수준 방화벽 만들기 (http://msdn.microsoft.com/ko-kr/library/gg715280.aspx )” 를 참조하시면 됩니다.

image

 

c. 해당 프로젝트를 빌드한 후 콘솔 창에서 빌드 완료 폴더로 이동하여, 총 7개의 인자를 입력하면 방화벽 설정을 추가할 수 있습니다.

  • CertifilePath : 개인인증서 파일 위치
  • CertfilePassword : 개인 인증서 암호
  • Subscription ID : 구독 아이디
  • ServerName : 애저 포탈 서버 이름
  • Rulename : 방화벽 이름
  • StartIP : 방화벽 허용 아이피 시작 값
  • EndIP :  아이피 종료 값

image

 

d. 정상적으로 실행되었다고 아래와 같이 나타납니다.

image

 

e. 실제 만들어졌는지 확인해봅니다. 먼저 위의 콘솔 실행하기 전의 방화벽 룰 정보를 master DB에서 쿼리한 정보입니다. 현재는 2개의 방화벽 정보만 리턴됩니다.

image

 

f. 콘솔 실행 후 방화벽 정보 쿼리 화면입니다. 방금 추가한 “Command_Add_Rule”이 잘 등록된 것을 확인할 수 있습니다.

image

 

이상으로 SQL Database에서 제공하는 REST API를 사용하기 위한 인증서 생성 및 등록과 콘솔 어플리케이션을 통해 지원되는 REST API의 사용 방법에 대해 간략히 살펴보았습니다.

 

방화벽 룰 설정은 위와 같은 REST 외에도 스토어 프로시저에서 제공하는 아래의 sp를 통해 추가 삭제도 가능합니다.

exec sp_set_firewall_rule N'Example setting 1','0.0.0.2','0.0.0.2'

exec sp_delete_firewall_rule N'Example setting 1'

 

아쉬운건 REST API의 경우 지원되는 기능들이 제한이 있어서 다 지원하지는 않은게 조금 아쉽긴 하네요.

지원되는 REST API 기능이나 관련 자료는 http://msdn.microsoft.com/ko-kr/library/gg715283.aspx  에 잘 나와 있습니다.

image

 

이번 후기는 여기까지입니다. REST API 사용에 대해서 간략히 살펴봤습니다. http://nightskyhunter.tistory.com/12 에서도 보실 수 있습니다.

 

 

No. Subject Author Date Views
» 6차 Windows Azure 온라인 세미나 후기-2. SQL Azure 관리 REST API 사용편 NightSkyHunter 2013.03.22 18201
223 6차 후기 입니다 곽은경 2013.03.21 27126
222 6차 Windows Azure 온라인 세미나 후기-1. SQL Azure 둘러보기편 NightSkyHunter 2013.03.21 44308
221 5차 Windows Azure 온라인 세미나 후기 - TFS를 통한 웹사이트 자동배포편 NightSkyHunter 2013.03.21 42329
220 5차 Windows Azure 온라인 세미나 후기 - 웹사이트 둘러보기 편 NightSkyHunter 2013.03.21 26093
219 Windows Azure의 서비스들을 한눈에 살펴보는 포스터 다운로드 코난(김대우) 2013.03.19 44970
218 Windows Azure Mobile Service - HTML 웹사이트와, 하이브리드 플랫폼인 Apache Cordova(예전 PhoneGap) 지원 코난(김대우) 2013.03.19 92741
217 [동영상강좌] Windows Azure Mobile Service를 이용한 페이징 처리 구현 (4/7) 코난(김대우) 2013.03.14 100917
216 [동영상강좌] Windows Azure Mobile Service 의 서비스 확장(Scale)과 분석 및 모니터링 (7/7) 코난(김대우) 2013.03.14 63483
215 [동영상강좌] Windows Azure Mobile Service 푸쉬 알림(Push Notification) 서비스 구축 - WNS(WPNS), APNS, GCM - 다 한방에 푸쉬 (6/7) 코난(김대우) 2013.03.14 65814
214 [동영상강좌] Windows Azure Mobile Service로 구축하는 인증(Authentication) 서비스 - Microsoft id, Facebook id, Twitter id, Google id (5/7) 코난(김대우) 2013.03.14 63099
213 [동영상강좌] Windows Azure Mobile Service 서버 스크립트 (3/7) 코난(김대우) 2013.03.14 99583
212 [동영상강좌] Windows Azure Mobile Service를 이용한 백엔드 데이터 처리 (2/7) 코난(김대우) 2013.03.14 98720
211 [동영상강좌] Windows Azure Mobile Service 소개 - 모바일 앱의 백엔드 서비스 구축을 위한 레시피 (1/7) 코난(김대우) 2013.03.13 98751
210 5차 Azure - Web site (node.js 2탄) FiaDot 2013.03.10 12286
209 5차 - SQLER on Windows Azure 후기 - SQL Database 동기화 차태욱 2013.03.10 13763
208 5차 후기 입니다 곽은경 2013.03.10 31783
207 5차 후기 - 'Node.js' on Windows Azure Asterisk 2013.03.09 15283
206 5차 - Azure에서 AD구성 궁금해요? 궁금하면 5분만 투자!! 이지만 2013.03.08 30890
205 힘쎄고 강한 애져 5차 후기! 컴포지트 2013.03.08 27721





XE Login