종달랩 종다리 이야기

클라우드 서비스에 대한 정리

Computer Science
반응형

클라우드 서비스에 대한 좋은 사이트가 있어서 내용 공유합니다.




최근 IBM, MS, Google 등의 거대 기업들이 이 클라우드 컴퓨팅이라는 사업에 주력하고 있고, 열광하고 있다. 근데 정작 나는 소프트웨어 공학을 연구하는 한 사람으로 왜 이게 이렇게 각광을 받아야 하는지 제대로 조사해보지도 않고 있었다. (부끄럽다.)

이에, 클라우드 컴퓨팅이 무엇인지, 앞으로 어떻게 발전할 것인지를 지금에서라도 정리해보려고 한다. 



1. 배경

1990년대 초, 웹이 시작되면서 짧다면 짧은 그 시간동안 세상의 많은 것들을 바꾸어 놓았다. 컴퓨팅 속도와 데스크탑의 보급률이 는 매년 기하급수적으로 증가하면서 이를 이용하는 사용자들의 웹으로의 진출이 용이해졌다. 이로인해 웹은 또 다른 사회의 모습이 되어갔고, 웹의 보편화를 가능케 하는 인프라도 복잡 및 다양해졌다. 

지금은 이런 복잡한 인프라를 기반으로 사용자들의 요구사항을 충족시키기 위해 웹 기반의 서비스들이 다양하게 제공되고 있으며, 이런 측면에서 이젠 데스크탑은 그저 웹을 접속하기 위한 수단이 되었다. (웹으로의 플랫폼 및 소프트웨어 이동, SaaS - Software as a Service, PaaS - Platform as a Service)

사용자들은 웹에서 제공하는 다양한 서비스들로 인해 서버를 유지할 필요를 느끼지 못하게 되었고, 서버 유지를 대신해줄 인프라서비스도 구축하게 된다. 이를 IaaS (Infrastructure as a Service) 라고 말하고, 사용자가 원하는 방법으로 필요한 만큼 서버를 구축하여 사용한다는 개념을 웹에다 포함시킨다.



2. 정의

"클라우딩 컴퓨팅은 사용자의 환경 밖에서 서비스로서 제공된 확장 가능한 컴퓨팅 자원을 사용한 양에 따라 비용을 지불하고 사용하는 것" [1] 이라고 할 수 있다. 사용자는 사용한 자원에 대한 비용만을 지불하며 클라우드 환경에 있는 모든 자원을 언제 어디서나 인터넷을 통해 액세스 할 수 있다.



3. 클라우드 서비스의 유형

SaaS (Software as a Service)

클라우드 서비스 중 가장 일반적인 유형이며 대부분의 사용자가 언젠가 사용해 본 경험이 있는 유형이다. SaaS 클라우드 모델에서는 서비스 제공자가 모든 인프라와 소프트웨어 제품을 제공한다. 사용자는 웹 기반의 프론트엔드를 사용하여 서비스와 상호작용한다. 이러한 서비스는 Gmail과 같은 웹 기반의 이메일에서 Mint와 같은 금융 소프트웨어에 이르기까지 다양한 범위에 적용된다.

PaaS (Platform as a Service) [2]
서비스 제공자가 자체 하드웨어 인프라에서 호스트하는 소프트웨어와 제품 개발 도구를 제공하는 클라우드 서비스이다. 사용자는 제공된 API와 플랫폼 또는 개발용 그래픽 사용자 인터페이스를 사용하여 애플리케이션을 개발(빌드)할 수 있다. 이러한 유형의 서비스에 대한 일반적인 사례로는 Salesforce.com의 Force.com과 Google App Engine을 들 수 있다.

IaaS (Infrastructure as a Service) [1]
가상 서버, 데이터 스토리지 및 데이터베이스와 같은 일련의 빌딩 블록에 대한 액세스를 서비스 형태로 제공하는 클라우드 서비스이다. 사용자는 이러한 빌딩 블록을 결합하거나 계층 구조화하여 애플리케이션을 실행하는 데 필요한 인프라를 구축할 수 있다. IaaS와 관련된 가장 유명한 사례는 AWS(Amazon Web Services)와 Rackspace이다.


즉, 제공되는 범위가
SaaS < PaaS < IaaS 라고 생각할 수 있다.

* 접근 권한에 따라 공용 / 사설 / 혼용(VPN사용) 의 형태로 클라우드 서비스를 제공할 수 있다.




4. PaaS 클라우드 서비스들의 사례

Google App Engine (Google code) [5][6][7]
Google의 인프라에서 웹 애플리케이션을 실행할 수 있다. JVM(Java Virtual Machine) 기반의 애플리케이션을 실행하기 때문에 Java가 아닌 언어로도 애플리케이션을 작성할 수 있다. (JRuby, Scala, Clojure, Groovy, Jython, Beanshell 등)

제한사항
- 사용자는 Python이나, Java 기술을 이용하여 사용할 수 있는 표준 라이브러리의 서브세트만을 사용할 수 있다.
- CPU 요청량, 메모리, 파일의 크기 등에 대한 할당향이 정해진다.
- 애플리케이션에 전달되는 모든 요청은 30초 내에 리턴되어야 한다.
- 사용자는 해당 파일 시스템에 대한 액세스 권한을 가지고 있지 않으며 애플리케이션의 일부로 업로드된 정적 파일만을 읽을 수있다.
- App Engine 환경에서는 사용자가 스레드나 프로세스를 생성할 수 없다.
- App Engine에서 사용된 스토리지 백엔드는 스키마리스 키 값 데이터 저장소인 BigTable이다.
- App Engine은 HTTP 요청에서 트리거되는 코드만 실행할 수 있다.

* 현재 Google App Engine 을 오픈 소스로 구현한 AppScale[3] 도 존재한다. AppScale은 IaaS 클라우드에서 Google App Engine 애플리케이션을 쉽게 실행할 수 있게 하는 클라우드 컴퓨팅 플랫폼이다. AppScale은 Google App Engine 애플리케이션을 로컬에서 테스트하고 디버그할 수 있는 유용한 방식이다. (오픈소스, 실험용으로 유용, 사설 클라우드, App Engine 호환성)



5. IaaS 클라우드 서비스의 특징 

테스트와 스테이징
완전한 테스트 환경과 스테이징 환경을 구축하여 사용할 수 있으며 필요 없는 경우에는 해체할 수 있다. 더 이상 환경을 준비하거나 하드웨어를 조달할 때까지 기다릴 필요가 없다. 테스트하고자 하면 언제든지 새로운 환경을 구축할 수 있으며 테스트가 완료된 후에는 구축한 환경을 해체할 수 있다.

웹 애플리케이션 전개 환경
사용자는 IaaS를 사용하여 웹 사이트를 실행할 수 있으며 필요 시에는 자원을 확장하여 트래픽 증가량을 쉽게 처리할 수 있다. IaaS 클라우드 서비스를 사용하여 특정 마케팅 캠페인이나 영업 전략을 제공하는 임시 웹 사이트를 추가로 작성할 수도 있다.

스토리지 니즈
엔터프라이즈에서는 클라우드 서비스를 파일이나 기타 고객 데이터를 저장하기 위한 공간으로 사용할 수 있다.

대용량 데이터 처리
클라우드 서비스의 기능을 사용하여 대용량 데이터 세트를 처리하고 대규모 병렬 처리를 활용할 수 있다. 필요 시에 대용량 데이터를 처리할 수 있는 그리드를 작성한 후, 처리가 끝난 다음, 이 그리드를 해체할 수 있다.




6. 클라우드 서비스와 웹 서비스의 관계 (Discussion)

클라우드 서비스는 SOAP 과 REST를 사용하여 접근 하며, 서비스 제공자가 제공하는 API (Operation)의 동작원리를 알 필요가 없는 느슨한 결합(Loosely coupled)을 통해 재사용성을 향상시킨다는 점에서 웹 서비스의 일부라고 생각한다. 웹 서비스의 개념을 플랫폼, 인프라로 확대 해석하여 사용자에게 제공해준다는 개념으로, 사용자에게 있어서는 기존 웹 서비스와 같지만, 개발자 입장에선 기존의 개념만으로는 서비스 및 리소스 제공에 불완전한 측면이 많은 듯 하다. 이를 해결하기 위해서 IBM에선 Eucalyptus [1], 산타바바라 대학에서 제공하는 플랫폼인 AppSclae[3] 와 같은 인프라 혹은 플랫폼을 오픈소스 소프트웨어로 제공하기도 한다. 계층 적인 모델링, 리소스에 대한 체계적인 관리가 필요한 분야가 된 것 같다.


하지만, 이는 기존의 CBD(Component-based development), Reliable software, Grid computing 개발 측면에서 고려했던 항목들도 포함되어 있기 때문에, 클라우드 서비스만의 특징을 좀 더 공부 및 연구해 볼 필요가 있다.


* Cloud service's issues [4]
 - Privacy
 - Compliance
 - Legal
 - Open source
 - Open Standard
 - Security
 - Availability and performance
 - Sustainability and siting



Reference 

[1] P. Changanti, 가상 인프라용 클라우드 서비스, Part 1: IaaS(Infrastructure as a Service) 및 Eucalyptus,
http://www.ibm.com/developerworks/kr/library/os-cloud-virtual1/index.html
 

[2] P. Changanti, 가상 인프라용 클라우드 서비스, Part 2: PaaS(Platform as a Service) 와 AppScale
http://www.ibm.com/developerworks/kr/library/os-cloud-virtual2/index.html 

[3] AppScale Project wiki
http://code.google.com/p/appscale/w/list 

[4] Wikipedia, Cloud Computing  
http://en.wikipedia.org/wiki/Cloud_computing

[5] Google App Engine
http://code.google.com/intl/ko-KR/appengine/ 

[6] likejazz, 구글 웹 어플리케이션 플랫폼: App Engine
http://www.likejazz.com/archives/280

[7] 한날, Google App Engine으로 "안녕하세요, 여러분" 출력하기
http://www.hannal.net/blog/say_hello-world_on_google-app-engine_service/

[8] J. Han., Cloud Computing
http://webappscon.com/2008/uploads/Program/ws-2-2.pdf



출처: http://seulkom.tistory.com/entry/클라우드-서비스란-Cloud-Service [행복한 프로그래머]

반응형

회사소개서, 사업계획서에 올인중..

종달랩 사업현황/Working Diary
반응형

외부에 종달랩을 알리는 것이 단순히 말로만 할 수 없다는 사실에 한계를 느끼고 여러가지 방법을 찾고 있다.


하지만, 인맥이 아직 부족한 관계로 지인을 통해서 다른 루트로 접근하는 것은 어렵고, 결국에는 정곡인 회사소개서, 사업계획서를 통해서 이야기 할 수 밖에 없다는 것을 인지하고 열심히 작업중이다.


일단, 툴을 잘 만질줄 안다는 것과 툴을 이용해서 무언가를 잘 만들어 낸다는 것은 다르다는 것을 알았다.

특히나 미적 감각이 얼마나 중요한지도..


결국 서점에서 파워포인트, 인포그래픽, 포토샾 관련된 책을 사서 열공과 실습중..


외부 컨설팅 업체를 이용할지, 다른 회사와 협력을 할지도 고민중이다. 일단은 비용절감 차원에서 직접 해보고 않되면 외부의 전문가들에게 SOS..


몇개 정리한 참조용 사이트.



반응형

원드라이브에 대처하는 방법 - 거의 최종

종달랩 사업현황/Working Diary
반응형

원드라이브가 1TB의 용량을 준다고 해도 원드라이브 동기화 프로그램의 오동작이 너무 심해서 결국에는 다음고 같이 처리하기로 하였다.


현재 원드라이브 디자이너 계정에 70GB정도의 데이터가 들어있었다. 대용량 데이터도 많았고, 디자이너의 특성상 작은 이미지 파일들도 무척 많았다. 이것들을 시스템에서 일일이 변경된 내용체크하고 인덱싱 걸고 어쩌고 하면서 너무 잘 뻗는 관계로 서버와의 동기화에 너무 많은 리소스가 들어갔고, 프로그램도 종종 뻗었다.


이는 데이터들을 추려내고 디자이너 계정의 일부 데이터를 내쪽 원드라이브로 이동시키는 작업을 통해서 어느정도 해결하였다. 70GB의 데이터를 20GB이내로 줄였더니 시스템에서 퍽퍽 죽는 현상은 거의 개선이 되었다. 완전히 되었다고는 볼수 없다는것은 아쉽지만..


원드라이브의 문제가 파일이 어느정도 이상 많아지면 오동작을 하는 횟수가 많다는 것을 알았다.

특히 윈도우의 탐색기의 CPU점유율은.. 정만 간만에 보는 점유율을 보여줬다.


안정화되기까지.. 좀 번접한 시간을 보낼것 같다.


그리고, 재미있는것은 원드라이브의 설정중에 "파일 공동 작업"설정의 "여는 Office파일을 Office2016과 동기화" 이 기능은 기존의 엑셀등을 포함한 내부 링크를 서버쪽으로 바라보게 변경시킨다. 예를 들어 내 컴퓨터 같은 폴더안에 파일을 링크로 열수 있게 해놓은것이 있다면 보통은 "d:\aaa\aaa.xls" 이렇게 들어가는데, 이파일들이 원드라이브를 통해서 서버와 동기화 되고 위 설정을 활성화 하면 "https://dkdkd/dkdkd....../aaa/aaa.xls" 이렇게 원드라이브 서버쪽을 바라보게 바뀐다는 것이다. 설정을 풀면 로컬을 바라보게 된다. 




반응형

원드라이브때문에 나 돌아갈래.. 짜증이 난다.

종달랩 사업현황/Working Diary
반응형

MS의 Office365의 기능에 대해서 하나하나 알아갈때쯤...


원드라이브의 뜻하지 않는 잦은 돌아가심..


그리고, 그로 인해서 로컬과 서버와의 동기화 문제가 계속 발생하고 있다.


공유한 파일이 많기는 하지만, 너무 자주 죽는 것은 이건 문제가 있다고 판단이 되기 때문이다.


아... 죽겠네..


구글드라이브로 가야 하는건가..


그리고, 지난번에  Office365에서 로컬컴퓨터에 오피스를 깔라야 한다는 알림은 사라졌다. 문제를 수정했다기 보다는, 알림을 않뜨게 한것 아닌가 하는 의문이 들기는 하지만..


MS가 생각보다 디테일이 떨어지는건 아닌가 하는 의문이다.

반응형

Office 365 사용후기

종달랩 사업현황/Working Diary
반응형

기능은 매우 좋다는것은 이루 말할 수 없는 내용입니다.


기업입장에서는 너무도 많은 기능을 제공받을 수 있으며, 이로 인해 상당히 안정적인 내부 업무를 구축할 수 있다. 물론 아는만큼 잘 구축하겠지만.


다만, 앞으로 몇년간 이 시스템에 익숙해지면 다른 시스템 쓰기는 힘들것 같기도 하다. 마소도 이걸 노리고 하는 것이겠지만, 어쨌든 서로 윈윈하는 구조이니 서로 손해볼 것은 없겠다.


몇일 사용하면서 발생한 문제는 몇가지가 있다.


1. 구글드라이브처럼 공유한 폴더에 대해서 사용자가 원하는 형태로 사용이 힘들었다. 즉, 구글은 공유해준 사람의 폴더를 나의 폴더처럼 사용할 수 있지만, 원드라이브는 아직 그런 기능이 개발중에 있다는 답변을 들었다. 실제 이것 때문에 시작한 BisSpark등록이였지만.. 그래도 개발중에 있다는 기술지원의 말을 듣고 기다리기로 했다.. 방법은 다양하니까.


2. 로컬의 오피스를 깔아도 웹상에 Office365에서는 로컬에 프로그램을 설치하라는 무한 알림이 뜬다는 것이다. 원래 로컬과의 연계를 위해서 해당 메시지가 프로그램이 깔려있지 않으면 뜰 수 있을것 같다. 하지만, 리눅스와 같은 환경이거나, 로컬 오피스가 깔려 있는 상태에서는 더는 발생하지 않아야 할 것 같은데, 이건 계속 발생하는 것이다. 이에 대해서 아직 기술적으로 검토중이라는 웹상의 정보도 확인하였고, 기술지원도 알아보겠다는 말을 남겨주었다.


이것 빼고는, 아직 내가 몰라서 모르는것들 투성이지 그밖에 것들은 다 만족이다.


회사 차리고 돈벌어야 하는데, 이것들 갖고 씨름하고 있다니..


그래도 오늘은 눈이 많이 왔으니.. 이걸로 만족하자..



반응형