멀티스레딩과 멀티 프로세싱의 차이점, 클라우드 컴퓨팅이란?

이정기·2023년 4월 24일
0

TIL

목록 보기
63/71
post-thumbnail

클라우드 (Cloud) 컴퓨팅

클라우드 컴퓨팅이란?

클라우드 컴퓨팅은 컴퓨팅 리소스를 인터넷을 통해 서비스로 사용할 수 있는 주문형 서비스
기업에서 직접 리소스를 조달하거나 구성, 관리할 필요가 없으며 사용한 만큼만 비용을 지불하면 된다.

클라우드 컴퓨팅 장단점

장점

  • 인프라 비용이 필요없다.

    서버, 네트워크 장치, ISP 연결, 스토리지 및 소프트웨어 등 인프라에 투자해야 하는 비용이 없다.
  • 최소 관리 및 비용

    인프라를 소유하고 있지 않기 때문에, 관리나 직원에게 지불하는 비용을 아낄 수 있다.
  • 관리가 간편하다.

    하드웨어를 구매하거나 업그레이드 할 때, 견적요청, 요금협상, 승인 등 이러한 일들의 시간과 노력을 아낄 수 있다.
  • 데이터제어

    여러 프로젝트 및 지점의 모든 데이터를 단일 위치로 중앙 집중화 할 수 있다.
  • 데이터 백업 및 복구

    브랜드 이미지를 헤칠 수 있는 데이터 손실을 방지하기 위해 정기적으로 모든 데이터를 클라우드에 자동으로 백업할 수 있다.
  • 자동 소프트웨어 업데이트

    사용자의 개입 없이 자동으로 업데이트 된다.

단점

  • 좋은 대역폭과 좋은 속도의 인터넷 이 필요

    인터넷 연결이 항상 필요
  • 다운타임

    클라우드는 높은 인터넷 속도와 우수한 대역폭을 필요로 하기 때문에 서비스 중단 가능성이 항상 존재

이로 인해, 비즈니스 다운타임이 발생 할 수 있다.

  • 제한된 인프라 제어

    클라우드 인프라 소유자가 아니므로 클라우드 인프라 제어 권한이 없거나 액세스가 제한된다.

  • 제한된 유연성

    플랫폼 종속성 또는 공급업체 종속으로 인해 한 공급자에서 다른 공급자로 마이그레이션하는 것이 어려울 수 있다.

  • 지속적인 비용

    인프라와 관리에 대한 지출비용을 절약 할 수 있지만, 서비스를 사용하는 동안 계속 비용을 지불해야한다.

  • 보안

    인터넷을 활용하기 때문에 데이터가 취약해질 수 있다.
    따라서 클라우드 서비스를 선택하기 전에 데이터 보안에 대한 최대 규정 준수 정책을 따르는 제공자를 찾아야 한다.

  • 기술 문제

    기술 문제 발생 시 사내 해결 불가.
    중단을 방지하려면 제공업체에 지원을 요청해야 하는데 모든 공급업체가 연중무휴를 제공하지 않는다.

클라우드 컴퓨팅 데이터 보안 방법

  • 암호화

    클라우드 서비스 제공자는 데이터를 암호화 하여 저장
  • 접근 제어

    클라우드 서비스 제공자는 데이터에 접근할 수 있는 권한을 부여해 다른 사용자나 외부인은 권한이 없어 접근 할 수 없음
  • 모니터링

    클라우드 서비스 제공자는 데이터에 대한 모니터링을 수행해 , 불법적인 접근이나 악의적인 공격을 사전에 감지
  • 백업 및 복구

    클라우드 서비스 제공자는 데이터를 백업하고, 필요한 경우 복구할 수 있도록 준비한다. 이를 통해 데이터 유실을 방지한다.
  • 보안 인증

    클라우드 서비스 제공자는 보안 인증 기술을 사용해여, 무단 접근 및 변조를 방지
  • 물리적 보안

    클라우드 서비스 제공자는 물리적 보안을 강화하여 데이터센터나 서버 등을 보호

클라우드 컴퓨팅 가용성과 확장성 보장

가용성(Availability) 이란?

  • 시스템이 사용 가능한 상태로 유지되는 정도를 나타내는 것으로, 시스템이 서비스를 제공하기 위한 요구사항을 충족시키는 능력
  • 사용자들이 필요할 때 언제든지 시스템에 접속하여 서비스를 이용할 수 있는 정도를 말한다.

확장성(Scalability) 이란?

  • 시스템의 성능을 높이거나 줄일 수 있는 능력으로, 시스템이 처리할 수 있는 작업량을 늘리거나 줄일 수 있는 정도
  • 서비스를 사용하는 사용자 수가 증가하거나, 데이터 처리량이 늘어나는 등의 상황에서 시스템이 유연하게 대응할 수 있는 능력

가용성과 확장성 보장 방법

  1. 가용성
  • 여러 개의 서버를 동시에 운영하고, 복제하여 장애 발생 시 다른 서버로 자동으로 전환
  • 장애 발생 시 자동으로 복구할 수 있는 기능을 제공
  • 여러 지역에 데이터 센터를 구축하고, 지역 간 복제 등을 통해 장애 대응력을 높힘
  • 성능 모니터링 및 예측 분석을 통해 미리 문제를 파악하고 대응
  1. 확장성
  • 가상화 기술을 사용하여 서버 용량을 유연하게 조절
  • 서버를 자동으로 생성하거나 삭제하여 서버의 확장 또는 축소를 유연하게 조절
  • 로드 밸런싱 등을 통해 서버 자원을 효율적으로 분배
  • 자동화된 프로비저닝 및 배포 시스템을 사용하여 서버 운영을 자동화하고, 효율성을 높힘

자동화된 프로비저닝(Automated Provisioning)

클라우드 컴퓨팅에서 사용되는 서버나 인프라 자원 등의 자동화된 배포를 의미

클라우드 컴퓨팅에서의 IaaS, PaaS, SaaS

1. IaaS(Infrastructure as a Service)

  • 인프라 서비스를 제공하는 모델
  • 클라우드 제공자가 가상화된 하드웨어 자원(서버, 스토리지, 네트워크 등)을 제공하고, 사용자는 필요한 자원을 선택하여 가상 머신, 스토리지 등을 생성하여 사용할 수 있음
  • 사용자는 가상 머신 위에 OS와 애플리케이션 등을 직접 설치하고 구성해야 함
  • 대표적인 IaaS 서비스로는 아마존 웹 서비스(AWS)의 EC2, 마이크로소프트 애저의 가상 머신, 구글 클라우드 플랫폼의 컴퓨트 엔진 등이 있음

2. PaaS(Platform as a Service)

  • 플랫폼 서비스를 제공하는 모델
  • 클라우드 제공자가 애플리케이션 개발과 배포를 위한 플랫폼을 제공하고, 사용자는 애플리케이션 개발에 집중할 수 있음
  • 사용자는 애플리케이션을 개발하기 위한 개발 환경, 라이브러리, 데이터베이스 등이 미리 구성되어 있으며, 애플리케이션 코드만 작성하면 됨
  • 대표적인 PaaS 서비스로는 헤로쿠, 구글 앱 엔진, 마이크로소프트 애저의 PaaS 등이 있음

3. SaaS(Software as a Service)

  • 소프트웨어 서비스를 제공하는 모델
  • 클라우드 제공자가 애플리케이션을 완전히 제공하고, 사용자는 인터넷 브라우저를 통해 애플리케이션에 접속하여 사용할 수 있음
  • 사용자는 애플리케이션을 설치하거나 운영하는 데 필요한 기술 지식이나 하드웨어 자원을 구성할 필요가 없음
  • 대표적인 SaaS 서비스로는 구글 드라이브, 마이크로소프트 오피스365, SalesForce 등이 있음

멀티스레딩 (Multithreading)과 멀티프로세싱 (Multiprocessing)의 차이점

프로세스

운영체제로부터 자원을 할당받는 작업

스레드

프로세스가 할당받은 자원을 이용하는 실행의 단위

멀티 프로세스와 멀티 스레드 사용하는 이유

  • 멀티 스레드는 멀티 프로세스보다 적은 메모리 공간을 차지하고 Context Switching이 빠른 장점이 있지만, 동기화 문제와 하나의 스레드 장애로 전체 스레드가 종료 될 위험을 갖고 있다.

  • 멀티 프로세스는 하나의 프로세스가 죽더라도 다른 프로세스에 영향을 주지 않아 안정성이 높지만, 멀티 스레드보다 많은 메모리공간과 CPU 시간을 차지하는 단점이 있다.

  • 두 방법은 동시에 여러 작업을 수행하는 점에서 동일하지만, 각각의 장단이 있으므로 적용하는 시스템에 따라 적합한 동작 방식을 선택하고 적용해야 한다.

왜 멀티 프로세스로 할 수 있는 작업들을 굳이 하나의 프로세스에서 스레드로 나눠가며 할까?

  • 운영체제가 시스템 자원을 효율적으로 관리하기 위해 스레드를 사용한다.

  • 멀티 프로세스로 실행되는 작업을 멀티 스레드로 실행할 경우, 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리할 수 있다.

  • 또한, 프로세스 간의 통신보다 스레드 간의 통신 비용이 적으므로 작업들 간 통신의 부담이 줄어든다. (처리비용 감소. 프로세스는 독립구조이기 때문)

그렇다면 무조건 멀티 스레드가 좋을까?

스레드를 활용하면 자원의 효율성이 증가하기도 하지만, 스레드 간의 자원 공유는 전역 변수를 이용하므로 동기화 문제가 발생 할 수 있으므로 프로그래머의 주의가 필요하다.

출처
멀티 프로세스와 멀티 스레드

profile
Node.js 로 꿈을 꾸었다..

0개의 댓글