클라우드

김지환·2023년 10월 23일
0

취업

목록 보기
3/3
post-thumbnail

클라우드?

: 클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅을 말합니다. 인터넷 상의 가상화된 서버에 프로그램을 두고 필요할때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스입니다.

클라우드(Cloud)라는 단어가 말해주듯, 인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을 원하는 대로 가져다 쓸 수 있습니다. 구름에 싸여 있다는 것은 그 내부를 보려고 하거나 알지 않아도 얼마든지 내가 원하는 것을 꺼내어 사용할 수 있다는 것이며, 인터넷이 연결된 어느 곳에서든 이것을 보장 받을 수 있다는 뜻입니다.

서비스 제공 형태

장점

  • 서버를 직접 구매할 때 고려해야 할 전력, 위치, 확장성을 고민하지 않는다.
  • 데이터 센터 어딘가에 이미 준비되어 있는 서버를 사용한다.
  • 서버 세팅 등을 신경쓰지 않고 서비스 운영에만 집중 가능하다.

: 또한 서비스 부하에 따라 실시간 확장성을 지원 받을 수 있으며, 사용한 만큼 비용을 지불하기 때문에 서비스 운영에 있어서 효율성이 훨씬 높아진다고 할 수 있다.

서비스 제공 형태 특징

:클라우드 컴퓨팅은 서비스 제공 형태에 따라 퍼블릭 클라우드, 프라이빗 클라우드, 하이브리드 클라우드로 구분된다.

  • 퍼블릭 클라우드(Public Cloud, 공공 클라우드, 개방형 클라우드)

  • 프라이빗 클라우드(Private Cloud, 사설 클라우드, 폐쇄 클라우드)

  • 하이브리드 클라우드(Hybrid Cloud)

:최근 클라우드를 도입하려는 움직임이 늘면서, 전체 워크로드를 클라우드(가상서버)로 이전하기 보다 주요 데이터는 온프레미스(물리서버)에 남겨 두고 이벤트 또는 신규 서비스처럼 트래픽을 예측할 수 없는 워크로드는 클라우드로 이용하는 구성이 증가하는 추세이다.

서비스 유형

● SaaS(Software as a Service)

: 프로그램 자체를 서비스화 한것 = 구글드라이브/ 아이클라우드/ 드롭박스
: ‘서비스로서의 소프트웨어’를 의미하는 SaaS는 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스이다.

클라우드 인프라 위에 소프트웨어를 탑재해 제공하는 형태로 IT 인프라 자원뿐만 아니라 소프트웨어 및 업데이트, 버그 개선 등의 서비스를 업체가 도맡아 제공합니다.

별도의 비용을 들여 소프트웨어 라이센스를 구매할 필요 없이 월간/연간 구독 형태의 사용료를 지불하고 제공 업체의 소프트웨어를 이용하게 됩니다. SaaS를 이용할 경우 사용자는 인프라 구축, 개발 환경 세팅 및 소프트웨어 개발에 소요되는 비용을 절약할 수 있기 때문에 자체적으로 소프트웨어를 개발하는 것 대비 초기 비용을 대폭 줄일 수 있습니다.

대표적인 SaaS: ‘슬랙(Slack)’, ‘마이크로소프트365(Microsoft 356)’, ‘드롭박스(Dropbox)’ 그리고 ‘세일즈포스(Salesforce)’ 등

● IaaS(Infrasture as a Service)

: 네트워크 서버 저장장치 보안제공한다.(서버,라우터,터미널등을 통한 네트워크 설정을 HTTP요청 하나로 해결)
: ‘서비스로서의 인프라’를 뜻하는 IaaS는 사용자가 관리할 수 있는 범위가 가장 넓은 클라우드 컴퓨팅 서비스이다.
인프라 수준의 클라우드 컴퓨팅을 제공해 사용자가 서버 OS부터 미들웨어, 런타임, 그리고 데이터와 어플리케이션까지 직접 구성하고 관리할 수 있습니다.
클라우드 서비스 제공업체(CSP, Cloud Service Provider)는 데이터센터를 구축해 다수의 물리 서버를 가상화해 제공하며, 네트워크, 스토리지, 전력 등 서버 운영에 필요한 모든 것을 CSP가 책임지고 관리합니다.

대표적인 IaaS: Amazon Web Service(AWS)의 EC2와 Google의 Compute Engine(GCE), 그리고 가비아의 g클라우드 등

● PaaS(Platform as a Service)

: PaaS는 ‘서비스로서의 플랫폼’이라는 의미를 담고 있습니다. PaaS는 IaaS 형태의 가상화된 클라우드 위에 사용자가 원하는 서비스를 개발할 수 있도록 개발 환경(Platform)을 미리 구축해, 이를 서비스 형태로 제공하는 것을 의미한다.
PaaS는 운영체제, 미들웨어, 런타임 등을 미리 구축한 상태로 제공하기 때문에 IaaS보다 관리상의 자유도가 낮습니다. 하지만 PaaS 사용자는 서비스 외적인 부분에 신경 쓸 필요가 없고, 오로지 애플리케이션 개발과 비즈니스에만 집중할 수 있으며, IaaS와 마찬가지로 별도의 인프라를 유지하고 운영하는 데 별도의 인력이 소요되지 않기에 하드웨어 및 소프트웨어 인프라 관리에 드는 비용을 절약할 수 있습니다.

대표적인 PaaS: 세일즈포스닷컴의 Heroku나 Redhat(레드햇)의 OpenShift 등

필요한 정의 및 개념

  • 컨테이너화 = 애플리케이션의 코드를 모든 인프라에서 실행하는데 필요한 모든 파일 및 라이브러리와 함께 번들로 제공하는 소프트웨어 배포 프로세스

  • 번들 = 모듈은 무한하고 복잡하지만 모듈끼리 서로 관계가 있어서 참조되고 프로그램이 완성된다. 의존성은 유지 시켜주면서 합쳐주는 과정

  • 번들러 = 모듈들을 하나로 한데 합쳐주는것

  • 모듈 = 모듈은 객체이자 파일인데, 그 모듈을 import 한다는건 어떤 변수명에 파일의 주소를 참조하는것이다.

  • 파일을 찾고, 해당 모듈을 읽고, 모듈을 종료한다.

웹 / 서버 호스팅 / 클라우드 차이점

profile
Web Developer

0개의 댓글