23/04/04(클라우드 서비스개념)

조영문·2023년 4월 4일
0

개념정리

목록 보기
1/3

IaaS, PaaS, SaaS, BaaS, FaaS

IaaS(Infrastructure as a Service) :

인프타스트럭처, 필요한 만큼의 인프라를 쓰고 그 만큼의 비용을 지급하는 서비스.
Ex) AWS의 EC2, S3

PaaS(Plathorm as a Service) :

플랫폼, 특정한 서비스를 쉽게 개발할 수 있게 해주는 개발 플랫폼을 제공하는 서비스
Ex) Nginx(웹서버), MariaDB(데이터베이스), Django(웹프레임워크)

SaaS(Software as a Service) :

클라우드 환경에서 도는 소프트웨어, 클라우드 환경에서 동작하는 응용프로그램을 서비스 형태로 제공하는 것
Ex) google drive, google docs, google spread

BaaS(Backend as a Service) :

모바일 앱 개발자를 위한 클라우드 서비스, 회원관리, 회원인증 푸쉬 알림 등 이러한 백엔드 기능을 일일이 개발하지 않음

FaaS(Function as a Service) :

서버를 관리할 필요 없이 특정 이벤트에 반응하는 함수를 등록하고 해당 이벤트 발생 시 함수가 실행되는 구조

firebase / supabase

firebase :

구글(Google)이 소유하고 있는 모바일 애플리케이션 개발 플랫폼, 을 개발하고, 개선하고, 키워갈 수 있는” 도구 모음(toolset)이며, 이러한 도구가 없다면 개발자들은 일반적으로 서비스의 상당 부분을 직접 만들어내야만 합니다. 그런데 개발자들은 앱의 사용자 경험(UX)에 집중을 해야 하기 때문에, 그런 세세한 부분들까지 전부 만드는 걸 좋아하지 않습니다. 그런 부분들로는 분석, 인증, 데이터베이스, 구성 설정, 파일 저장, 푸시(push) 메시지 등, 열거하자면 끝이 없습니다. 파이어베이스로 만든 이러한 서비스들이 클라우드에 호스팅 되면, 개발자의 입장에서는 거의 아무런 노력을 들이지 않고도 앱의 규모를 확장할 수 있습니다.
/ Paas or Baas

supabase :

구글 Firebase를 엔터프라이즈 레벨에서도 사용 가능하도록 만든 오픈소스 프로젝트이다. 현재는 베타 서비스이다. 컴퓨터에 직접 설치하는 방식은 아니고, Firebase처럼 클라우드로 제공되는 서비스이다. 내가 Firebase를 사용하면서 아쉬웠던 건, 데이터가 많아졌을 때 인덱싱을 쉽게 적용시켜서 빠르게 레코드를 읽어오는 기능이 강력하진 않아서 데이터가 많은 앱에서는 사용하기 힘들다는 점이다.

pull통신 vs push통신

pull통신 :

클라이언트에서 서버 방향의 통신

push통신 :

서버에서 클라리언트 방향의 통신

  • polling : push 기술의 한 종류, 구현방법

RDBMS와 NOSQL의 차이

먼저, DBMS(DataBase Management System)는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어이고,
SQL(Strucured Query Language)은 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었습니다.

RDEMS(Relational DBMS) :

관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스

NoSQL(Not only SQL) :

RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미, NoSQL에서는 RDBMS와는 달리 테이블 간 관계를 정의하지 않습니다. 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능합니다.

서버리스(serverless)란?

서버리스(serverless) :

발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다.
서버리스 모델에도 서버가 존재하긴 하지만, 애플리케이션 개발에서와 달리 추상화되어 있습니다. 클라우드 제공업체가 서버 인프라에 대한 프로비저닝, 유지 관리, 스케일링 등의 일상적인 작업을 처리하며, 개발자는 배포를 위해 코드를 컨테이너에 패키징하기만 하면 됩니다.
서버리스 애플리케이션은 배포되고 나면 필요에 따라 자동으로 스케일 업되거나 스케일 다운됩니다. 퍼블릭 클라우드 제공업체의 서버리스 오퍼링은 일반적으로 이벤트 기반 실행 모델을 통해 온디맨드로 미터링됩니다. 그러므로 서버리스 기능이 유휴 상태일 때는 아무런 비용도 들지 않습니다.

온프레미스 / 오프프레미스의 의미

온프레미스와 오프프레미스의 가장 큰 차이점은 바로 기업내 구축형으로 사용하느냐, 클라우드 기반의 임대 서비스를 사용하느냐 입니다.

온프레미스(On-premises) :

필요한 시스템을 구축하기 위해 값 비싼 하드웨어와 어플리케이션을 구매하여 기업 상황에 맞게 커스터마이징하는 것을 의미합니다. 온프레미스 환경은 제어되는 IT환경이 클라우드 기반이 아닌 것을 전제로 하며, 온프레미스된 IT자원은 클라우드 기반이 될 수 없으며 반대 상황도 마찬가지입니다. 즉, 전통적인 소프트웨어 사용방식으로 원격에서 IT 인프라를 사용하는 것이 아니라 특정 공간에서 IT인프라를 사용하는 방식을 뜻합니다.

오프프레미스(Off-premises) :

전통적인 방식의 온프레미스 소프트웨와는 다르게 인터넷 네트워크에 연결된 서버팜이나 클라우드의 원격 실행환경에서 사용되는 소프트웨어를 뜻합니다.

0개의 댓글