Data 데이터/DataCamp

[Data Engineer in Python] week1

kiyeon2u 2024. 10. 9. 12:52

Understanding Cloud Computing

 

클라우드 컴퓨팅이란?

  • 컴퓨팅과 스토리지를 포함한 기술 서비스를 제공하는 것
  • 세 가지 기본요소는 컴퓨팅, 스토리지, 데이터베이스
    • 컴퓨팅 : 워크로드가 가능하게 함
    • 스토리지 : 데이터 저장 (비구조화된 이미지 파일도 가능)
    • 데이터베이스 : 구조화된 데이터셋 저
  • On-premise 와는 다르게 인프라나 데이터센터에 대한 액세스를 임대할 수 있음 (AWS, GCP, Azure)
  On-premise  Cloud 
 
사용성 여러 사람이 예를 들어, 웹사이트를 이용하려고 할 때, 세팅을 하는데 시간이 소모된다. 필요할 때 바로 접근해서 사용 가능하다
필요하다면 쉽게 자원 할당량을 늘릴 수 있다
비용 초기 비용이 많이 든다.
그리고 사용안할 때도 비용이 든
쓴 만큼 낸다
용도   데이터 저장, 백업, 복구
클라우드 전용 어플리케이션 생성
음성과 비디오 스트리밍 (비구조화된 데이터)
데이터 분석 가능
임베디드된 AI 모델 존

 

 

클라우드가 왜 강력한가?

클라우드 컴퓨팅의 특징
Virtualization 가상화
클라우드 컴퓨팅을 구동하는 기본 기술
실제 서버를 여러 개의 가상 서버로 분할하고, 각각은 자체적인 독립 운영 체제를 실행함
Scalability 확장성
시스템이 증가하는 부하나 데이터를 처리할 수 있는 능력을 쉽게 조율할 수 있음
ex) 피크타임 20시~01시 에 이커머스 사이트에 더 많은 리소스 사용

Vertical Scaling 수직적 확장성
인스턴스의 파워(크기)를 늘린다

Horizontal Scaling 수평적 확장성
인스턴스를 붙여서 수를 늘린다
Cost 비용
사용한 만큼만 돈 냄 (Pay-as-you-go)
아래의 자본 비용이 필요없음
- 하드웨어와 소프트웨어 구매
- 내부 인프라 관리
Speed 속도
클라우드 리소스에 즉각적인 접근이 가능하다
- 온디맨드 리소싱
- 세팅 시간 절약
- 서비스 배포 시간 절약
Performance 성능
빠르고 효율적인 컴퓨팅 리소스에 접근 가능
- 데이터 센터 : IT 장
- 데이터센터를 통해 회사 조직이 사용하는 모든 IT 관련 작업과 장비(서버, 네트워크 장비, 데이터 저장 장치 등)를 물리적인 공간에 보관하거나 관리
- 빠르고 효율적인 컴퓨팅 하드웨어
Growth 
글로벌 리소스 서비스
- 필요할 때마다 자원을 동적으로 할당하는 방식이 가능해서 글로벌적으로 사용하고 싶은 리소스를 변경해서 사용 가능 (AWS 리전 변경 등)
Reliability 신뢰성
데이터의 신뢰성을 보장해준다
- 재난과 같은 사고에 대비해서 서로 다른 데이터 센터 간 중복해서 저장
Security 보안
데이터에 대한 저장과 관리에 대한 보안

 

 

Cloud Service Models

 

IaaS : 서버, 네트워크, 스토리지 등 IT 인프라를 가상화하여 인터넷을 통해 제공하는 서비스

PaaS : 애플리케이션 개발, 테스트, 배포에 필요한 플랫폼을 제공하는 서비스

SaaS : 소프트웨어를 클라우드에서 제공하여, 사용자가 별도의 설치나 유지보수 없이 인터넷을 통해 소프트웨어를 사용할 수 있는 서비스

FaaS(Function as a Service) : 서버리스 아키텍처의 한 형태로, 개발자가 서버나 인프라를 관리할 필요 없이 개별 함수(코드)를 실행할 수 있는 클라우드 서비스로, 서버 관리는 클라우드 제공자가 모두 처리하며, 개발자는 애플리케이션 개발과 로직에만 집중 가능하다.

 

 

Cloud deployemnt models
Public Cloud :
  • 퍼블릭 클라우드는 Amazon Web Services (AWS), Microsoft Azure, Google Cloud와 같은 서드파티 클라우드 서비스 제공자가 인프라를 제공하며, 여러 사용자가 공유하는 환경.
  • 초기 구축 비용이 거의 없으며, 사용한 만큼만 요금이 부과되기 때문에 비용 효율적
  • 필요에 따라 리소스를 쉽게 확장하거나 축소 가능.
  • 여러 사용자와 자원을 공유하기 때문에 보안에 민감한 데이터에 대한 우려가 될 수 있음. 
  • 사용자가 인프라의 물리적 제어가 가능하지 않음. 보안상 이유로 데이터 센터의 위치를 클라이언트에게도 비밀로 유지함.
Private Cloud :
  • 프라이빗 클라우드는 특정 기업이나 조직 전용의 클라우드 환경으로, 내부 데이터센터나 서드파티에 의해 운영될 수 있음. 보안과 제어 측면에서 가장 높은 수준을 제공함.
  • 테넌트도 독점적으로 사용하도록 지정되며, 네트워크 링크를 통해 접근 가능하므로 액세스 설정을 해야함.
  • 높은 보안과 개인정보 보호: 민감한 데이터 및 규제 대상 데이터를 처리하는 데 적합함.
  • 사용자의 요구에 맞게 클라우드 환경을 완전히 맞춤 설정이 가능함.
  • 자체 인프라를 구축하고 유지보수하는 데 많은 자원이 필요하기 때문에 초기 비용이 많이 든다.
 Hybrid Cloud : 
  • 사용자가 두 개 이상의 서로 다른 클라우드 모델을 조합해서 사용하는 경우.
  • 퍼블릭 클라우드와 프라이빗 클라우드를 결합한 모델로, 두 환경 간의 데이터 및 애플리케이션의 상호작용을 허용함.
  • 중요한 데이터는 프라이빗 클라우드에, 덜 중요한 데이터는 퍼블릭 클라우드에 저장하는 방식.
    사용자의 요구에 맞게 워크로드를 퍼블릭 및 프라이빗 클라우드로 분산 가능
  • 덜 중요한 작업은 퍼블릭 클라우드에서 저렴하게 처리하고, 중요한 데이터는 프라이빗 클라우드에서 보안성 있게 관리하는 유연성이 있음.
  • 필요에 따라 퍼블릭 클라우드의 리소스를 추가적으로 사용할 수 있어 확장성이 좋음. 예를 들어, 이커머스 회사에서는 Private Cloud  에는 고객정보와 같은 민감하고 중요한 데이터를 저장하고, 트래픽이 많이 몰리는 시간대에는 Public Cloud 를 통해 추가적인 리소스 확보.
Multi Cloud : 
  • 두 개 이상의 퍼블릭 클라우드 서비스 제공자를 사용하는 전략을 의미함. 예를 들어, 데이터 백업은 Azure 에, 웹사이트 호스팅은 AWS 에, 분석에는 GCP 를 사용하는 것을 말함.
  • 멀티 클라우드 전략은 퍼블릭 클라우드뿐만 아니라 프라이빗 클라우드와 함께 사용할 수도 있지만, 기본적으로 여러 퍼블릭 클라우드 제공자의 리소스를 조합해서 사용하는 것을 뜻함.
  • 특정 워크로드나 애플리케이션을 각각 다른 클라우드 제공자에게 분배할 수 있어, 서비스 장애에 따른 리스크를 줄일 수 있음.
  • 한 클라우드 제공자가 다운되거나 장애가 발생하더라도 다른 클라우드를 통해 서비스를 유지 가능.
  • 서비스 제공자 간의 경쟁을 통해 더 나은 가격을 받을 수 있고, 각 클라우드 제공자의 가장 경제적인 서비스를 선택할 수 있음.
  • 여러 클라우드 환경을 동시에 관리해야 하므로, 운영 복잡성이 증가함.
  • 각 클라우드에서의 보안 정책과 규정 준수 관리가 다를 수 있어, 여러 클라우드에서 일관된 보안 및 규정 관리를 유지하는 역할이 필요함.


 

 

Regulations on the cloud (클라우드 규제)

  • 클라우드 컴퓨팅 환경에서 데이터를 저장하고 처리하는 것은 편리함을 제공하지만, 동시에 다양한 법적 규제와 준수해야 할 사항들이 따름.
  • 각국의 규제는 보안, 개인정보 보호, 데이터 저장 위치 등에 중점을 두고 있으며, 기업은 클라우드 서비스를 사용할 때 이러한 규제를 준수해야함.

 

Cloud Computing Roles

Roles
Data Scientist 데이터 사이언티스트는 대규모 데이터 세트에서 의미 있는 통찰을 도출하기 위해 데이터 분석, 통계 모델링, 머신러닝 기술을 활용
Machine learning Scientist 머신러닝 모델을 연구하고 개발하여 데이터를 기반으로 자동화된 결정을 내리는 시스템을 구축
Data Engineer 대규모 데이터를 저장, 처리, 관리하는 인프라를 설계하고 구축
Data Analyst 데이터를 분석하고 이를 통해 비즈니스 의사 결정을 지원
Cloud Architect 비즈니스 요구에 맞는 클라우드 인프라의 설계와 구현을 담당
Cloud Engineer 클라우드 인프라의 설정, 관리, 유지보수를 담당하며, 클라우드 서비스를 최적화하는 기술적인 역할을 담당 (한국에서는 주로 컨설팅 및 Tech Speech 역할)
DevOps Engineer 소프트웨어 개발과 IT 운영을 통합하여 소프트웨어의 개발, 테스트, 배포, 운영 자동화를 담당
Security Engineer 클라우드 환경에서 데이터 및 애플리케이션을 보호하는 역할을 하며, 해킹이나 데이터 유출 등의 보안 위협으로부터 시스템을 안전하게 유지

 

 

Cloud Service Providers

 

대표 예시 : AWS 

  • S3 : 대규모 데이터를 저장할 수 있는 객체 스토리지 서비스. S3는 높은 가용성과 확장성을 제공하며, 데이터 백업, 아카이빙, 데이터 분석 등 다양한 용도로 사용
  • EC2 (Elastic Compute Cloud) : 가상 서버 인스턴스를 제공하여 사용자가 필요에 따라 컴퓨팅 리소스를 생성하고 관리.
  • RDS : 관리형 관계형 데이터베이스 서비스
  • Redshift : 대규모 데이터 분석을 위한 관리형 데이터 웨어하우스 서비스
  • Kinesis : 실시간으로 대규모 스트리밍 데이터를 수집하고 처리하는 서비스
  • SageMaker : 머신러닝 모델을 구축, 훈련, 배포할 수 있는 통합 개발 환경을 제공

 

 

< AWS 데이터 분석 플랫폼 아키텍처 > 

출처 : https://docs.aws.amazon.com/pdfs/prescriptive-guidance/latest/data-lake-for-growth-scale/data-lake-for-growth-scale.pdf?anda_dl5

 

 

 

 

 

 

 

 

'Data 데이터 > DataCamp' 카테고리의 다른 글

[Associate Data Engineer in SQL] week1  (1) 2024.09.22