본문 바로가기
분류 전/공부 정리

[클라우드] 클라우드 컴퓨팅 중간고사 정리

by jwcs 2024. 4. 26.
728x90

클라우드 컴퓨팅 정의

  • 언제 어디서나 필요한 만큼의 리소스를 필요한 시간만큼 인터넷을 통하여 활용할 수 있는 컴퓨팅 방식

클라우드 컴퓨팅의 특성

  • 즉시성: 클라우드 컴퓨팅은 필요한 컴퓨팅 자원을 거의 실시간으로 제공한다. 사용자는 복잡한 설치 과정이나 물리적인 하드웨어 구성 없이, 웹 인터페이스를 통해 몇 분 내에 서버를 배포하고 애플리케이션을 실행할 수 있다.
  • 유연성: 클라우드는 다양한 기술적 요구와 규모의 변화에 맞춰 자원을 조정할 수 있는 유연성을 제공한다. 예를 들어, 트래픽이 증가하면 자동으로 추가 리소스를 할당하고, 수요가 감소하면 이를 줄여 비용을 절감할 수 있다.
  • 확장성: 클라우드 서비스는 사용자가 필요할 때마다 컴퓨팅 자원을 확장하거나 축소할 수 있는 능력을 제공한다. 이는 작은 스타트업에서부터 대규모 기업에 이르기까지 모든 규모의 조직이 자신의 성장 속도에 맞춰 인프라를 조정할 수 있도록 한다.
  • 가용성: 클라우드 제공업체는 일반적으로 높은 수준의 가용성을 보장한다. 이는 데이터 센터의 지리적 분산, 장애 복구 계획 및 데이터 백업 솔루션을 통해 이루어진다. 클라우드 서비스를 사용하면 하드웨어 장애, 자연재해 등의 사건에서도 서비스의 중단 없이 데이터와 애플리케이션에 계속 접근할 수 있다.
  • 보안성: 클라우드 제공업체는 일반적으로 엄격한 보안 프로토콜을 사용하고 다양한 보안 층을 구현하여 데이터 보호를 강화한다. 이에는 데이터 암호화, 네트워크 보안, 접근 제어 및 보안 감사가 포함된다. 클라우드 사용자는 종종 물리적 데이터 센터보다 더 강력한 보안을 경험할 수 있다.

클라우드 컴퓨팅의 특징

  • On-demand self-service(주문형 셀프서비스): 사용자가 관리자의 개입 없이도 자신의 컴퓨팅 요구에 맞춰 필요한 자원을 자동으로 할당받고 관리할 수 있는 능력이다. 사용자는 웹 기반 인터페이스를 통해 서비스를 즉시 구성하고 액세스할 수 있다.
  • Broad network access(광대역 네트워크 접근): 클라우드 서비스가 다양한 네트워크를 통해 다양한 플랫폼의 클라이언트 디바이스에서 사용할 수 있도록 설계되었다는 것을 의미한다. 이 특성은 사용자가 언제 어디서나 접근 가능한 서비스를 통해 작업할 수 있도록 하여 컴퓨팅 자원의 접근성과 편의성을 대폭 향상시킨다.
  • Resource pooling(리소스 풀링): 리소스 풀링은 클라우드 서비스 제공자가 서버, 스토리지, 네트워킹 등의 컴퓨팅 자원을 대규모 풀로 관리하고, 이를 필요에 따라 다수의 고객에게 동적으로 할당하는 방식이다.
  • Rapid elasticity(빠른 탄력성): 클라우드 리소스를 필요에 따라 자동으로 확장하거나 축소할 수 있는 능력을 말한다. 이는 클라우드 컴퓨팅의 매우 중요한 특성으로, 사용자의 요구가 증가하거나 감소함에 따라 서비스를 신속하게 조정할 수 있다.
  • Measured service(서비스 측정): 클라우드 서비스의 사용량을 정확히 측정하고 이에 기반하여 과금하는 시스템이다. 사용한 만큼만 비용을 지불하는 pay-as-you-go 모델은 클라우드 컴퓨팅의 주요 이점 중 하나이다.

Types of Cloud Migration

  • Lift and Shift(Rehosting)
    • 앱 수정이나 재설계 없이 앱과 앱에 저장된 데이터를 클라우드 플랫폼으로 이전. 클라우드로의 빠른 마이그레이션을 통해 클라우드의 기본 이점인 탄력성, 확장성을 활용한다.
  • Rebuilding
    • 클라우드 환경과 호환되도록 응용 코드를 다시 작성. 이 과정에서 개발자는 기존의 코드베이스를 버리고, 클라우드의 기능과 서비스를 최대한 활용할 수 있는 새로운 기술 스택을 사용하여 애플리케이션을 처음부터 새롭게 작성한다.
  • Replacing
    • 응용이 클라우드 환경에 맞지 않아 구조적으로 재구축이나 수정 불가할 때 사용한다. 기존 애플리케이션을 완전히 다른 제품이나 서비스로 대체하는 것이다. 예를 들어, 자체 호스팅하는 이메일 서버를 클라우드 기반의 이메일 서비스로 바꾸는 경우가 여기에 해당된다.
  • Re-platforming
    • 업무 응용이 클라우드와 맞지 않거나 혁신적 앱 개선 시 사용한다.애플리케이션의 핵심 아키텍처는 유지하면서 클라우드 플랫폼의 이점을 누릴 수 있도록 최소한의 변경을 가한다. 예를 들어, 데이터베이스를 클라우드 호스팅 버전으로 바꾸거나, 클라우드 기반 서비스를 사용하여 애플리케이션의 특정 기능을 강화하는 것 등이 있다. Rebuilid이나 Replacing보다 덜 근본적인 변화를 의미한다.
  • Refactoring(Rearchitect)
    • 소프트웨어를 수정하고 코드의 주요 부분을 다시 작성하는 재설계 프로세스 후 애플리케이션을 클라우드로 이동을 의미한다. 클라우드 환경의 최적화와 비용 절감, 그리고 클라우드의 고유한 기능과 서비스를 활용하여 애플리케이션의 성능과 효율성을 극대화하기 위함이다.

클라우드 컴퓨팅 서비스 모델

  • Software as a Service(SaaS, 서비스 개념의 소프트웨어): 애플리케이션을 인터넷을 통해 호스팅하고 제공하는 모델이다. 이 서비스를 사용하는 고객은 복잡한 소프트웨어와 하드웨어 관리에 신경 쓸 필요 없이 애플리케이션을 사용할 수 있다.(예시: Google Workspace, Microsoft 365)
  • Platform as a Service(PaaS, 서비스 개념의 플랫폼 ): PaaS는 개발자가 인터넷을 통해 액세스할 수 있는 개발 도구, 프로그래밍 언어, 라이브러리, 서비스를 제공한다. 이 모델은 개발자가 애플리케이션을 쉽게 생성, 테스트, 배포, 관리 및 업데이트할 수 있도록 지원한다.(예시: Google App Engine, Microsoft Azure)
  • Infrastructure as a Service(IaaS, 서비스 개념의 인프라 ): 가상화된 컴퓨팅 리소스를 인터넷을 통해 제공하는 모델이다. 이는 서버, 스토리지, 네트워크 및 기타 기본적인 컴퓨팅 리소스를 사용자에게 제공하며, 사용자는 운영 체제나 애플리케이션 소프트웨어 같은 고수준 기능을 자유롭게 설치하고 관리할 수 있다. IaaS는 완전한 제어를 제공하며, 리소스를 유연하게 사용할 수 있는 방식으로 제공된다.(예시: AWS EC2, Google Compute Engine, Microsoft Azure VMs)

클라우드 배포 모델

  • Private Cloud(프라이빗 클라우드): 단일 조직 내부 또는 전용 환경에서 운영되는 클라우드이다. 이 모델은 고도의 보안, 개인정보 보호 및 제어를 필요로 하는 조직에 이상적이다. 프라이빗 클라우드는 조직의 방화벽 내부에 구축될 수 있으며, 때로는 제 3의 서비스 제공업체가 관리하는 전용 리소스를 사용할 수도 있다.
  • Community Cloud(커뮤니티 클라우드): 특정 커뮤니티의 공통된 관심사나 요구를 가진 여러 조직이 공유하는 클라우드 모델이다. 이는 비슷한 규제 준수 요구사항이나 비즈니스 목표를 가진 조직들 사이에서 리소스를 공유하며, 비용과 자원을 효율적으로 사용할 수 있도록 한다.
  • Public Cloud(퍼블릭 클라우드): 퍼블릭 클라우드는 제 3의 클라우드 서비스 제공업체가 관리하고, 인터넷을 통해 일반 대중에게 서비스를 제공한다. AWS, Microsoft Azure, Google Cloud Platform같은 서비스가 이에 해당한다. 사용자는 리소스를 공유하며, 사용한 만큼의 서비스 비용을 지불한다.
  • Hybrid Cloud(하이브리드 클라우드): 하이브리드 클라우드는 프라이빗 클라우드와 퍼블릭 클라우드의 조합으로, 두 환경 간의 데이터 및 애플리케이션 공유가 가능하다. 이 모델은 조직에 유연성과 확장성을 제공하며, 비즈니스 규제 요구에 따라 최적의 리소스를 선택할 수 있게 해준다.

Provisioning(프로비저닝)

  • 네트워크, 서버, 소프트웨어, 데이터베이스 및 기타 관련 IT 리소스와 서비스를 사용할 준비를 하는 행위를 포함한다.

클라우드 컴퓨팅 기초 용어

  • 클라우드: 인터넷에 대한 은유적 표현
  • 클라우드 서비스: 클라우드를 통해 원격 접근이 가능한 임의의 IT 자원
  • 피어 클라우드 서비스: 한 클라우드 서비스 제공자가 하나 이상의 다른 클라우드 서비스 제공자에게 한 클라우드 서비스를 제공
  • IT 자원(IT resource): 가상 자원 또는 물리 자원
  • 테넌트(tenant): 자원의 집합에 대한 접근을 공유하는 한 명 이상의 클라우드 서비스 사용자
  • 멀티-테넌시(multi-tenancy): 하나의 클라우드 서비스에 의해 제공되는 자원들을 다수의 클라우드 서비스 고객들이 공유
  • 수평 확장(scale out/in): 시스템의 처리 능력을 증가시키기 위해 추가 서버나 노드를 시스템에 추가하는 방법
  • 수직 확장(scale up/down): 기존 서버나 시스템의 성능을 향상시키기 위해 하드웨어의 성능을 강화하는 방법
  • 온 프레미스(On premise): 클라우드 기반이 아닌 통제된 IT 환경의 영역

서비스 수준 계약(SLA: service - level agreement)

  • 서비스 제공자와 고객 간의 문서화된 계약
  • 사용자에게 제공하는 서비스 수준을 정량화함
  • 미달되면 손해 배상을 위한 서비스 품질 보장 계약

시스템 비용 비교

  • 자본 지출(CapEx: Capital Expense)
    • 물리적 인프라에 대한 초기 비용 지출
    • 온프레미스
  • 운영 지출(OpEx: Operational Expense)
    • 현재 서비스 또는 제품에 대한 균등 청구 비용
    • 사용 연도에 균등 공제 비용
    • 클라우드

클라우드 컴퓨팅의 장점

  • 탄력성
    • 탄력적인 리소스 제공
    • 확장성 탁월
    • 실시간/동적 리소스 할당
  • 신속성
    • 몇 번의 클릭으로 구축
    • 하드웨어/소프트웨어 모두 서비스 방식
  • 경제성
    • 리소스 그룹과 공유 이용
    • 분산 운영 데이터 통합 관리
    • 다수의 CSP 등장 -> 서비스 가격 인하
  • 가용성
    • 중단 없이 장기간 사용
  • 신뢰성
    • 신속하고 효과적 복구

중소 기업에서 클라우드 컴퓨팅 도입 효과

  • 비용 절감
    • 구축 비용 및 시간 단축
    • 유지 보수 비용 절감
  • 인력 문제 해소
    • 핵심 역량(core confidence)에 집중
    • 기업의 사업 목표에 경영 리소스 전력 투입

대기업에서 클라우드 컴퓨팅 도입 효과

  • 글로벌 시장 목표 기업 유리
  • 시스템 도입과정 단축
    • 해외 구축 시 원격 시스템으로 운영
    • 사업 철수 시 대규모 투자 낭비 절감
  • 구축 및 운영 시 문제점 없는 환경 제공
    • 업무 프로세스 구조 간편화

클러스터 컴퓨터(Cluster Computer)

  • 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합
  • 독립적 IT 리소스 그룹

클러스터링(Clustering) 기술

  • 이중화와 장애극복 기능 내장
  • 가용성과 신뢰성을 갖는 클러스터 컴퓨터를 구성
  • Homogeneous/Heterogeneous 환경 모두 구성 가능

그리드 컴퓨팅(grid computing)

  • 슈퍼 가상 컴퓨터라 불림
  • 원거리 통신망으로 연결
  • 서로 다른 기종의 컴퓨터들을 하나로 묶어 가상의 대용량 고성능 컴퓨터를 구성
  • 컴퓨팅 리소스가 플랫폼 상에 논리적 리소스 풀로 등록
  • 리소스의 결합성이 매우 느슨(loosely coupled)

그리드 컴퓨팅 vs 클라우드 컴퓨팅

  • 그리드 컴퓨팅
    • 여러 리소스가 중앙 집중화 되지 않고 결합된 컴퓨터를 통해 함께 연결되어 가상 슈퍼 컴퓨터를 형성
    • 그리드 공급자는 네트워크로 연결된 컴퓨터 애플리케이션으로 구성된 인프라를 소유
  • 클라우드 컴퓨팅
    • 컴퓨팅이 중앙에서 발생
    • 클라우드 공급자는 클라우드 호스팅 컴퓨팅 성능, 스토리지 용량 및 서비스를 통해 컴퓨팅 성능을 전 세계적으로 제공

가상화(virtualization)

  • 클라우드 서비스를 가능하게 하는 핵심 기술
  • 물리적 컴퓨터 환경에 가상 인스턴스 생성

가상화 소프트웨어 구현 층에 따른 분류

  • 가상화(virtualization) - 하이퍼바이저(hypervisor)
    • 호스트 OS 설치 없음
    • 하이퍼바이저가 직접 하드웨어 제어
    • App 구동 환경 별 게스트 OS 설치 -> 오버헤드 발생

Type 1

  • 가상화(virtualization) - 호스트(host)
    • Type 2
    • 하이퍼바이저는 다른 Application과 마찬가지로 Host OS 위에 설치
    • Host OS Layer가 추가로 존재 -> 오버헤드 발생

Type 2

  • 가상화(virtualization) - 컨테이너(container)
    • 전통적인 하이퍼바이저/VMM 기반 가상화와 차별적
    • 응용을 신속하게 구축, 테스트 및 배포하는 소프트웨어 플랫폼
    • 솦트웨어를 컨테이너라는 표준화된 유닛으로 패키징
    • 컨테이너 포함 도구 (라이브러리, 시스템 도구, 코드, 런타임, 소프트웨어를 실행하는 데 필요한 모든 것)
    • Docker를 사용하면 환경에 구애 받지 않고 애플리케이션을 신속하게 배포 및 확장 가능
    • 애플리케이션과 모든 종속성 포함
    • 호스트 운영 체제의 사용자 공간에 있는 격리 프로세스로 실행 중인 다른 컨테이너와 OS 커널을 공유

가상화 - 컨테이너

컨테이너와 가상머신의 차이

  • 가상 머신
    • 전체 시스템 추상화 및 더 강력한 고립을 제공
    • 하이퍼바이저는 CPU, 메모리, 스토리지 등 모든 컴퓨팅 자원들을 가상 자원으로 추상화
  • 컨테이너
    • 특정 응용을 위한 독립된 공간을 제공
    • 실제 수행은 호스트 운영체제에서 진행
    • 성능이 더 좋고 경량
    • GuestOS를 설치하지 않으며 필요한 라이브러리와 응용만 설치

서버리스 컴퓨팅(serverless computing)

  • 서버를 생성, 구성 또는 유지관리 하지 않고 응용 코드 실행
  • 사용자가 서버 인식 필요 없이 클라우드 서비스 받음
  • Function as a Service
    • 큰 시스템을 구성하는 개별 기능, 업무 규칙, 함수를 클라우드에 등록
    • 함수 호출 요청 시에만 연산 수행
    • 과금 모델: 함수 호출 횟수
  • 서버리스 런타임(serverless runtime)
    • 가장 흔한 형태의 서버리스 컴퓨팅
    • 하나 이상의 프로그래밍 언어로 작성된 고객 응용 코드를 실행
  • 실제 서버가 없는 것이 아니고 특정 작업(함수)를 실행하기 위해 물리적 컴퓨팅 리소스를 가상화 하지 않음
  • 대표적 서버리스 런타임 서비스(serverless runtime service)

서버리스 컴퓨팅

클라우드 컴퓨팅의 단점

  • 보안취약성 증가
    • 데이터 보안 책임을 클라우드 제공자와 공유 (기업의 데이터가 클라우드의 리소스에 저장)
    • 보안 취약점(vulnerability) 증가 (기업 내부 -> 외부 클라우드 센터)
  • 조직 경계(organizational boundary)
    • 조직에 의해 소유 관리되는 IT 자원을 둘러싸는 물리적 반경

조직 경계

  • 신뢰 경계(trust boundary)
    • 일반적으로 물리적 경계를 넘어 IT 리소스를 신뢰할 수 있는 범위까지 확장되는 논리적 경계

신뢰 경계

  • 책임 소재의 불분명
    • 사용자 데이터 처리/저장 장소 불분명
    • 클라우드와 거리가 멀어져 지연 시간 발생, 대역폭 제약

책임 소재의 불분명

  • 제한된 이식성(limited portability)
    • 제정된 산업 표준 또는 국제 표준 없음
    • 독점적 서비스 제공
    • 도입 클라우드 서비스에 종속된 솔루션 구축
    • 벤더 종속(vendor lock-in) 가능성 높음 (lock-in: 한 CSP에서 다른 CSP로 이동 어려움)
  • 과도한 비용 지출
    • 장기간(5년 이상) 시스템 지속 사용 또는 대규모 시스템 확장 시
    • 기존 온프레미스 시스템 수정이나 데이터 이관에 숨은 비용 발생 시
  • 규제와 법적 문제
    • 2015년 <클라우드 컴퓨팅 발전 및 이용자 보호에 관한 법률> 제정
    • 한국과 영국의 경우, 자국민 개인 정보는 반드시 그 국가 내에 보관되어야 함(법에 명시). 그러나 퍼블릭 클라우드의 경우 데이터와 비즈니스 로직이 저장되는 위치를 모름.
728x90
반응형