클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것을 말한다. 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Services(AWS)와 같은 클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 접근할 수 있다.
클라우드 컴퓨팅은 데이터 백업, 재해 복구, 이메일, 가상 데스크톱, 소프트웨어 개발 및 테스트, 빅 데이터 분석, 고객 대상 웹 애플리케이션 등 다양하게 사용되고 있다. 국내에서도 단기간에 트래픽이 급격하게 증가하며 이에 대응하기 위해 클라우드를 선택한 당근마켓, 마켓컬리, 아이디어스, 트렌비 등은 물론이고, 창업 초기부터 본연의 서비스에 집중하기 위해 혹은 언제 망하더라도 비용을 최소화하기 위해 클라우드로 시작한 지그재그, 구름 등이 있다.
대기업의 경우에도 다양한 학습 데이터를 쌓기 위해 클라우드를 사용한 사례도 있다.
자율 주행에서 자주 사용되는 알고리즘 중 하나로, 이미지의 모든 픽셀에 클래스를 할당하는 작업인 의미 분할(semantic segmentation)이라는 것이 있다. 여기서 클래스는 도로, 사람, 자동차, 건물, 풀과 나무, 하늘 등이 될 수 있으며, 현대자동차 개발팀은 개발 과정에서 정기적으로 정확도를 테스트하고, 그 결과 특정 상황에서의 예측 성능을 수정하기 위해 학습 이미지를 추가로 수집해야 했다. 이를 위해 AWS 클라우드를 사용하였고 모델 학습을 더 빠르게 함으로써 학습 시간을 단축 시킬 수 있었다.
클라우드 컴퓨팅을 사용하면 어떤 이점이 있기에 많은 기업들이 사용하고 있는 것일까?
민첩성
클라우드를 통해 광범위한 기술에 쉽게 액세스할 수 있으므로, 더 빠르게 혁신하고 상상할 수 있는 거의 모든 것을 구축할 수 있다. 컴퓨팅, 스토리지 및 데이터베이스와 같은 인프라 서비스부터 사물 인터넷, 기계 학습, 데이터 레이크 및 분석 등에 이르기까지 필요에 따라 리소스를 빠르게 구동할 수 있다.
단 몇 분 만에 기술 서비스를 배포할 수 있으며 이전보다 몇 백배나 더 빠르게 아이디어를 구현할 수 있다. 이를 통해 자유롭게 실험하고, 새로운 아이디어를 테스트하여 고객 경험을 차별화하고, 비즈니스를 혁신할 수 있다.
탄력성
클라우드 컴퓨팅은 실제로 필요한 만큼의 리소스를 프로비저닝하면 된다. 향후 확장될 것을 감안하여 사전에 오버 프로비저닝 할 필요가 없다. 예를 들어 평상시에는 일정한 수준의 네트워크 사용을 유지하다가 크리스마스, 연말 연시 등의 이벤트 데이에 사용자가 집중적으로 몰리는 서비스가 있다고 한다면, 해당 이벤트 데이에만 일시적으로 리소스를 확장하고 다시 평사시에는 용량을 평시 수준으로 축소하는 것이 가능하다.
비용 절감
특정 이벤트 데이 때마다 data center와 server를 구축하기 위해 막대한 투자비용을 지불할 필요가 없다. 혹은, 1년 중 몇 일 안되는 이벤트 데이에만 사용하는 Server들을 365일 유지할 필요도 없다. cloud services platform을 통해 필요한 만큼의 resource만 사용하고, 사용한 만큼의 비용만 지불하면 된다. 또한, 클릭 한 번으로 새로운 IT resource를 얻을 수 있기 때문에 개발에 소요되는 비용과 시간이 현저히 줄어든다.
몇 분 만에 전 세계 배포
클라우드를 이용하면 몇 분 만에 전 세계에 배포할 수 있다. AWS의 경우 전 세계에 인프라가 구축되어 있어 사용자는 클릭 몇 번으로 한국에서 서비스하던 애플리케이션을 미국, 유럽 사용자가 더욱 빠르게 접근할 수 있도록 배포할 수 있다.
클라우드 컴퓨팅의 유형
Infrastructure as a Service (IaaS)
Infrastructure level을 제공하는 서비스로 사용자는 OS를 직접 올려 상위 계층을 구성하는 모델이다.
예를 들어, AWS의 EC2를 이용하면 server, network, storage 등은 AWS에서 제공해준다. 사용자는 원하는 spec의 OS를 선택하여 제공받고, 모든 관리를 아마존에서 해준다.
Platform as a Service (PaaS)
개발자가 application 배포 및 관리 할 수 있는 플랫폼 및 환경을 제공하는 모델이다.
IaaS의 경우 서비스를 수행할 수 있는 OS를 제공한다면, PaaS는 build, compile 환경까지 제공하는 것이다. 즉, 개발자는 소스코드만 적용하면, PaaS에서 해당 소스를 컴파일하여 배포하여 서비스 할 수 있도록 한다.
이러한 서비스의 예로 Heroku, Google App Engine, IBM Bluemix, OpenShift, SalesForce 등이 있다.
Software as a Service (SaaS)
서비스 공급자가 실행 및 관리하는 완성된 제품을 제공한다. 대부분의 최종 사용자 응용 프로그램으로 우리가 쉽게 접하고 있는 웹 메일, 구글 클라우드, 네이버 클라우드, MS Office365, dropbox 등이 이에 해당한다.
'IT 개발자의 창고' 카테고리의 다른 글
AWS - 인터넷망과 연결된 네트워크 환경 구성 (0) | 2022.01.19 |
---|---|
AWS - 가상 네트워크 구성 (0) | 2022.01.12 |
데브옵스(DevOps)란 무엇인가? (0) | 2021.12.29 |
[윈도우10] 전원이 안 꺼지는 문제 해결 (0) | 2021.10.17 |
5G Network를 이용한 자동차 통신 사례 (0) | 2021.09.22 |