Cloud Computing

hamsang·2022년 5월 11일
0
post-thumbnail

🎱 클라우드 컴퓨팅(CLOUD COMPUTING)

  • 인터넷(“클라우드”)을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어, 분석, 인텔리전스 등의 컴퓨팅 서비스를 제공하는 것.
    (시스템이 기업 내부에 있지 않고 외부에 있다)

일반 사용자는 이 복잡한 내부를 굳이 알 필요 없이 어디서든 구름 속의 컴퓨터 자원으로 자신이 원하는 작업을 할 수 있다.

클라우드 컴퓨팅은

  • OS 기능 제공
  • 모바일 연동
  • 어플리케이션 서비스 제공
  • 데이터베이스 제공

❔ 왜 하필 구름일까

과거 1980년대 전후하여 원격지에 있는 컴퓨터와 근처에 있는 단말기 사이에 있는 수많은 통신장비 및 네트워크를 구름 모양을 그려 간략하게 표현하였다. 이후 2000년대에 클라우드 컴퓨팅이 등장했지만 여전히 이 개념을 설명하기가 애매하여 구름 개념을 따온 것이 클라우드다.

클라우드라는 개념의 시초는 아마존이다. 현재까지 클라우드 1위 기업은 AWS(아마존 웹서비스 기업)이다.


🎱 웹호스팅

  • 대형 통신업체나 전문회사가 자신의 인터넷 서버를 고객에게 할당해 주고, 고객이 직접 홈페이지를 운영하는 것과 같은 효과를 제공하는 서비스이다.
  • 별도로 홈페이지를 갖추기 어려운 개인이나 개별 사업체가 많이 이용하는데, 'http://www.회사이름.co.kr (혹은 com)'과 같은 형식을 지닌 홈페이지의 90% 가량이 이 서비스를 이용하고 있다.

이 웹호스팅 기능이 가상화 기술과 더불어 발전하면서 클라우드 컴퓨팅이라는 개념으로 발전하게 된다.


🎱 온 프레미스 (On-Premises)

  • 소프트웨어 등 솔루션을 클라우드 같은 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식.
  • 온 프레미스는 클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었다.

    장점 : 기업의 비즈니스 정보를 보안성 높게 관리할 수 있다.
    단점 : 시스템을 구축할 때 많은 시간과 비용이 필요하다.


🎱 3 tier Architecture (3계층 구조)

어떤 프로그램을 3 계층으로 나누어 별도의 논리적/물리적 장치에 구축 및 운영하는 형태를 말한다.

1. Presentation Tier

  • 사용자가 직접 마주하게 되는 계층
  • 데이터를 사용자에게 보여주지만, 데이터를 가지고 있지는 않다.

사용자의 리퀘스트를 받아 데이터베이스에서 쿼리된 정보를 보여주는 것이 웹 서버이다. 주로 사용자 인터페이스를 지원하며 GUI 또는 프론트엔드 (front-end)라고도 부른다.

ex) HTML, JavaScript, CSS, 사진자료 등

2. Application Tier

  • 요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공하는 일을 담당한다. (동적인 데이터 제공)
  • 비즈니스 로직을 담고 있다.

첫번째 계층 또는 클라이언트 계층 입장에서는 서버처럼 동작하고(응답), 세번째 계층 입장에서는 클라이언트처럼 동작한다(요청).
따라서 미들웨어(Middleware) 또는 백엔드(back-end)라고도 불린다.

ex) PHP, Java 등

3. Data Tier

  • 데이터베이스에 접근하여 데이터를 읽거나 쓰고 관리한다.

주로 DBMS(Database Management System)이 이 계층에 해당된다.
데이터 계층 또한 백엔드(back-end)라고 불린다.

ex) MYSQL 등


3 tier Architecture의

장점

  • 각 계층을 담당하는 팀을 구성해 업무 분담이 가능해지므로 업무 효율성이 증가한다
  • 서로 다른 서버들을 구성하므로 리스크를 어느정도 완화할 수 있다.
  • 서버 부하 감소. 경우에 따라 특정 계층의 서버에 대해서만 스케일업(Scale up)을 할 수도 있다.

단점

  • 1 계층으로만 사용하는 것 대비 관리 포인트가 늘어나며 장애가 발생하는 포인트 또한 함께 늘어난다.
  • 서비스 규모 및 사용자 증가에 따라 계층 구조를 설계 및 고려해야 한다.

로드 밸런싱(load balancing)

컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.

🎱 스케일 업 (Scale up)

더 빠른 속도의 CPU로 변경하거나, 더 많은 RAM을 추가하는 등 하드웨어 장비의 성능을 높이는 것. 수직 확장. 성능 확장에 한계가 있다.
(데이터의 정합성 때문)

🎱 스케일 아웃 (Scale out)

하나의 장비에서 처리하던 일을 여러 장비에 나눠서 처리할 수 있도록 설계를 변경하는 것. 수평 확장. 지속적으로 확장이 가능하다.


참고 사이트-1

profile
햄생

0개의 댓글