클라우드

yuns_u·2022년 2월 1일
0

클라우드의 정의

클라우드는 인터넷을 통해 엑세스할 수 있는 서버와 이러한 서버에서 작동하는 소프트웨어와 데이터베이스를 의미한다. 즉, 온라인 스토리지 솔루션으로 볼 수 있다.

클라우드 서버는 전 세계 데이터 센터에 위치하며 사용자와 기업은 클라우드 컴퓨팅을 사용하면 직접 물리적 서버를 관리하거나 자체 서버에서 소프트웨어 응용 프로그램을 실행하지 않아도 된다.

클라우드를 사용하면 사용자는 거의 모든 장치에서 클라우드에 저장되어 있는 파일과 어플리케이션에 접근할 수 있다. 컴퓨팅과 저장이 사용자 장치에서 로컬로 실행되지 않고 데이터 센터의 서버에서 이루어지기 때문이다.

기업의 경우 클라우드 컴퓨팅을 사용하게되면 IT 비용과 간접비가 절감하게 된다. 예를 들어, 자체 서버를 더 이상 업데이트하고 유지하지 않아도 된다. 클라우드 업체가 대신 처리하기 때문이다. 자체 내부 인프라를 사용할 수 없지만 클라우드를 통해 저렴한 가격으로 인프라 필요를 아웃소싱할 수 작은 기업에 특히 효과적이다. 또한 인터넷에 연결되어 있다면 물리적인 장소에 구애받지 않을 수 있으므로 직원과 고객이 어디에서나 동일한 파일과 어플리케이션에 접속할 수 있다.

클라우드는 전통적인 클라이언터-서버 인터넷 모델과는 다르다. 인터넷은 서버, 클라이언트 그리고 이들을 연결하는 인프라로 이루어져있다. 클라이언트가 서버에 요청하면 서버가 응답한다는 점은 같지만 클라우드 컴퓨팅은 요청에 응답할 뿐만 아니라 클라이언트를 대신해서 프로그램을 실행하고 데이터를 저장한다는 점에서 전통적인 IT 인프라와는 차이가 있다.

클라우드라는 용어는 IT 업계의 속어로부터 시작되었다. 인터넷 초기에 기술 다이어그램은 인터넷을 구성하는 서버와 네트워킹 인프라를 클라우드로 종종 표시했다. 더 많은 컴퓨팅 프로세스가 인터넷의 이러한 서버 및 인프라로 옮겨가면서 사람들은 컴퓨팅 프로세스가 일어나는 곳을 짧게 '클라우드'라고 부르며 클라우드로의 이전을 말하기 시작했다. 이를 시작으로 클라우드는 이러한 유형의 컴퓨팅을 지칭하는 용어가 되었다.

작동 방식

클라우드 컴퓨팅은 가상화 기술로 인해 가능하다. 가상화는 자체 하드웨어를 가진 실제 컴퓨터처럼 작동할 수 있는 '가상'컴퓨팅 환경을 만드는 것이다. 즉, 가상머신을 만들어 자체 하드워드를 가진 실제 컴퓨터처럼 작동할 수 있는 시뮬레이션된 컴퓨터를 만드는 것이다. 가상머신은 동일한 호스팅 머신 상에 있다면 서로 상호작용하지 않고 한 가상 머신의 파일과 응용 프로그램은 동일한 물리적 머신에 있어도 다른 가상 머신이 볼 수 없다.

장점

가상머신을 사용하면 자신을 호스팅하는 하드웨어를 더욱 효율적으로 사용할 수 있다.
여러 가상머신을 동시에 실행하면 한 서버를 여러 서버로 사용할 수 있고 데이터 센터가 모든 데이터 센터가 되어 여러 조직에 서비스를 제공할 수 있다. 따라서 클라우드 제공 업체는 서버 사용을 동시에 여러 고객에게 제공하면서 관리 유지비용을 절감할 수 있다.

클라우드 컴퓨팅의 대표적인 서비스 모델

클라우드를 통해 서비스가 제공되는 모델 유형.

간단하게 정리하자면 IaaS 모델의 경우 우리에게 가장 높은 수준의 리소스 제어력을 제공하고 관리자에게는 호스팅과 스토리지 면에서의 이점을 주며, PaaS 모델은 IaaS에 비해 제어력은 떨어지지만 개발자가 소프트웨어를 개발할 때 편리하다. SaaS모델은 가장 낮은 수준의 제어력을 제공하고 주로 최종 사용자들이 편리하게 사용할 수 있도록 하는 데 중점을 둔다.

SaaS(Software as a Service)

사용자가 장치에 어플리케이션을 설치하는 대신 SaaS 어플리케이션이 클라우드 서버에 호스팅되고 사용자는 인터넷을 통해 어플리케이션에 엑세스한다. SaaS는 집을 빌리는 것과 같다. 임대인이 집을 소유하고 있는 것이지만 임차인이 집을 소유한 것처럼 집을 주로 사용한다. SaaS 어플리케이션의 예에는 Slack 등이 있다.

PaaS(Platform as a Service)

PaaS는 집을 짓는 데 필요한 모든 도구와 장비를 빌리는 것과 비슷하다. 이 모델에서 기업은 호스팅된 어플리케이션에 비용을 지불하는 대신 자체 어플리케이션을 구축하는 데 필요한 것에 비용을 지불한다. PaaS 업체는 개발 도구, 인프라, 운영 체제를 포함한 어플리케이션 구축에 필요한 모든 것을 인터넷을 통해 제공한다. Heroku, Microsoft Azure 등이 있다.

IaaS와 유사하지만 클라우드 공급업체가 조금 더 많은 것을 제어하는 모델이다. 이전에는 로컬환경에서 소프트웨어를 개발하고 테스트했기 때문에 시간, 비용, 용량 면에서 부담이 컸다. PaaS는 벡엔드 개발과 테스트를 위한 가상 플랫폼을 통해 프로그래머들에게 온라인에서 소프트웨어를 개발할 수 있는 가상체계를 제공한다. 모든 서버와 스토리지는 여전히 공급업체에서 관리한다. 그래서 PaaS가 제공하는 가상 솔루션을 사용하면 온프레미스에서 소프트웨어를 개발할 수 있는 가상 체계를 제공한다. 모든 서버와 스토리지는 여전히 클라우드 공급업체에서 관리한다. 따라서 PaaS가 제공하는 가상 솔루션을 사용하면 온프레미스에서 소프트웨어를 개발하고 테스트할 때처럼 손실을 감수하지 않아도 된다.

IaaS(Infrastructure as a Service)

IaaS는 기업이 원하는 건물을 지을 수 있는 토지를 임대해주는 것과 비슷하다. 그러나 건축 자재나 재료는 기업이 스스로 마련해야 한다.

이 모델에서 기업은 클라우드 공급자로부터 필요한 서버와 저장소를 임대한다. 그리고 기업은 클라우드 인프라로 자체 응용 프로그램을 구축한다. 데이터나 웹사이트, 애플리케이션은 기업이 직접 관리하고 유지하지만 클라우드 공급업체는 여기에 필요한 컴퓨팅 리소스를 대여해주는 역할만 하는 것이다. IaaS 공급자에는 DigitalOcean, Google Compute Engine, OpenStack 등이 있다.

Netflix가 IaaS모델을 사용하는 것으로 알려져 있다. 넷플릭스는 IaaS 모델을 사용해 전 세계 시청자들이 끊임없이 접근하는 방대한 양의 데이터를 효율적으로 관리하며 시청자가 콘텐츠에 빠르게 접근할 수 있도록 지원한다. 시청자는 파일을 굳이 다운로드할 필요가 없고 넷플릭스는 추가되는 콘텐츠를 모두 저장하기 위한 방대한 데이터 센터를 구축할 필요가 없다. 클라우드 공급업체(AWS가 제공하고 있는 것으로 알고 있다.)가 데이터 센터를 제공하고 있기 때문이다. 우리가 방문하는 대부분의 웹사이트도 IaaS 모델 클라우드를 통해 호스팅된다.

위의 세 모델은 클라우드 컴퓨팅의 대표적인 모델이었지만 최근에는 다양한 모델들이 나타나고 있다.

FaaS (Function as a Service)
서버리스 컴퓨팅이라고도 불리며 클라우드 응용 프로그램을 필요할 때만 실행되는 더 작은 구성 요소로 나눈다. 이 클라우드 컴퓨팅 모델 역시 서버에서 실행되지만 서버리스라고 불리는 이유는 전용 머신에서 실행되지 않고 응용 프로그램을 구축한 기업이 서버를 관리하지 않아도 되기 때문이다. 서버리스 기능은 응용 프로그램 사용자가 증가하면 확장되거나 복제된다.
이 모델을 예시를 들자면 한 번에 집을 조금씩만 임대할 수 있는 방식이다. 식사를 할 때 주방을 사용하는 비용을 내고 잘 때는 침실을 사용하는 비용을 내는 방식으로 이해할 수 있다.

클라우드 배포 유형

클라우드를 통해 서비스가 제공되는 방식을 정의한 위의 모델들과 달리,
클라우드 배포 유형은 클라우드 서버의 위치와 서버 관리자와 관계있다.

  • 프라이빗 클라우드: 서버, 데이터센터 또는 분산 네트워크를 모두 한 조직만이 사용할 수 있는 형태이다.
    가상 장치와 모든 클라우드 인프라스트럭쳐가 단 하나의 고객을 위해 존재한다. 모든 것이 인터넷을 통해 호스팅되지만 데이터를 호스팅하는 서버는 오직 한 명의 고객을 위한 것이다. 어떤 사람들은 보다 강력한 보안을 위해 사설 클라우드를 사용하고, 어떤 사람들은 성능 향상을 위해 사설 클라우드를 사용한다. 데이터를 호스팅하는 서버를 여러 고객이 나눠쓰지 않아도 되어 모든 처리 능력을 내 요구 사항에 맞게 최적화할 수 있기 때문이다.
    프라이빗 클라우드의 경우 퍼블릭클라우드와는 달리 서버의 관리 방식, 보안 방식, 백업 방식을 모두 제어할 수 있다. 대부분의 사람은 공공 클라우드를 사용하겠지만 페타바이트 단위의 빅데이터를 처리하는 사람들은 사설 클라우드를 선호한다.

  • 퍼블릭 클라우드: 퍼블릭 클라우드는 외부 공급자가 운영하는 클라우드 서비스로서 서버는 하나 또는 다수의 데이터 센터에 있을 수 있다. 퍼블릭 클라우드는 프라이빗 클라우드와 달리 다수의 조직이 공유한다. 가상 머신을 이용하면 여러 회사가 개별 서버도 공유할 수 있으며 여러 회사가 동일한 물리적 서버 내의 서버 공간을 임대하기 때문에 '다중 테넌트(tanent, 임대인)'이라고도 부른다.

  • 하이브리드 클라우드 : 하이브리드 클라우드 배포는 퍼블릭 클라우드와 프라이빗 클라우드를 결합하며 온프레미스 레거시 서버도 포함할 수 있다. 조직은 서비스에 따라 프라이빗 클라우드와 퍼블릭 클라우드를 사용하거나 퍼블릭 클라우드를 프라이빗 클라우드의 백업으로 사용할 수 있다.
    이러한 하이브리드 클라우드는 자체서버와 공공 서버를 모두 사용한다. 용량이 크거나 기밀로 유지해야 하는 문서느 사설 클라우드에 보관하고, 나머지는 공공클라우드에 보관하는 방식으로 사용할 수 있다.

  • 멀티클라우드 : 멀티클라우드는 다수의 퍼블릭 클라우드를 사용하는 클라우드 배포 유형이다. 즉, 멀티클라우드 배포를 사용하는 조직은 여러 외부 업체로부터 가상 서버와 서비스를 대여한다. 이는 다수의 토지 소유주로부터 인접한 대지 여러 개를 빌리는 것과 같다. 멀티클라우드 배포는 이러한 특성으로 인해 하이브리드 클라우드가 될 수 있으며 그 반대도 가능하다. 멀티클라우드는 보통 다양한 클라우드 서비스 공급업체가 제공한느 서로 다른 서비스가 모두 필요할 때 사용한다.

기업이 클라우드를 사용할 때의 이점

클라우드 컴퓨팅은 오늘날 업무에서의 생산성, 효율성, 성장, 체계성을 위한 필수적인 동력이 된다. 클라우드 컴퓨팅이 기업에 제공하는 주요 이점은 아래와 같다.

  • 비용 : 모든 것을 온프레미스 환경에서 실행할 때는 비용이 매우 많이 든다. 클라우드를 사용한다면 필요없을 비용을 IT 시스템과 장비를 사내에 유지하는 데에 지출해야한다. 클라우드 컴퓨팅은 선불형 서비스로 하드웨어 비용뿐만 아니라 인력 유지비, 에너지 소비량 등을 크게 절감시킬 수 있다.

  • 재해 복구 : 보호를 강화하려면 중요한 파일과 데이터를 백업해야한다. 모든 것을 한 곳에 저장해두면 자연재해, 정전, 악성 소프트웨어 공격 등이 발생하는 순간 모든 것을 잃을 수 있다. 따라서 여러 곳에 흩어져있는 복수의 서버에 데이터를 백업하는 클라우드는 재해 복구 측면에서 강점을 보인다.

  • 데이터 보호와 보안 : 클라우드 컴퓨팅은 클라우드 보안 정책을 통해 개인 데이터를 보호한다. 클라우드 서비스 공급업체는 데이터의 안전과 보호를 최우선순위로 여긴다. 데이터는 암호화된 상태로 클라우드에 저장되고, 대부분의 경우 사용자가 직접 클라우드 보안 설정을 관리할 수 있다.

  • 확장성 : 클라우드 컴퓨팅은 비즈니스의 성장과 함께 확장할 수 있는 유연성을 제공한다. 비즈니스가 축소되는 경우에도 마찬가지이다. 비즈니스가 커질수록 비즈니스를 운영하는 데 더 많은 용량과 시간, 비용이 필요하다. 그리고 필요할 때, 필요한 만큼 클라우드를 사용할 수 있는 가상환경이 비즈니스의 성장을 뒷받침해준다. 반대로 비즈니스가 축소되는 단계일 때에는 더 이상 필요하지 않는 장비와 리소스에 대한 비용을 지불하지 않아도 된다. 클라우드 컴퓨팅 서비스를 사용하면 쓰는만큼만 비용을 지불하면 되기 때문이다.

  • 유연성 : 모든 것이 클라우드를 통해 저장되고 실행되기 때문에 전 세계 어디에서든 일할 수 있는 유연성을 확보할 수 있다. 직장의 전통적 개념이 급속하게 변하는 가운데 클라우드 컴퓨팅이 기업의 온라인 운영을 가능하게 하는 핵심 역할을 하고 있다. 클라우드 컴퓨팅을 사용하면 모바일 장치로도 파일과 데이터에 엑세스해 작업할 수 있으며, 이러한 역량의 중요성은 점점 커지고 있다.

  • 협업 : 파일을 클라우드에 저장할 뿐 아니라 클라우드에 파일을 만들고 수정할 수 있어 협업의 효율성이 향상된다. 클라우드 컴퓨팅에서는 여러 명으로 구성된 팀이 각자 다른 장소에서 같은 문서로 작업하는 것이 가능하기 때문에 팀의 체계성을 유지하고 자료를 관리하는 것이 편리해졌다.

컨테이너와 가상머신

컨테이너는 가상머신처럼 클라우드 가상화 기술이다. 컨테이너는 PaaS 클라우드 모델의 일부이다.
컨테이너의 가상화는 커널레벨(운영 체제의 기반으로 컴퓨터 하드웨어와의 상호작용이 일어나는 수준)이 아닌, 운영체제 레벨에서 이루어진다. 즉, 가상 머신의 가상화가 일어나는 곳에서 한 추상화 계층 높은 곳에서 일어난다. 각 가상 머신은 자체 운영 체제 커널이 있지만 동일한 머신 상의 컨테이너는 동일한 커널을 공유한다.

참고자료
https://www.cloudflare.com/ko-kr/learning/cloud/what-is-the-cloud/
https://experience.dropbox.com/ko-kr/resources/what-is-the-cloud

profile
💛 공부 블로그 💛

0개의 댓글