ssung_데이터 엔지니어링/최종 프로젝트

최종 프로젝트_(1)

ssungcohol 2024. 2. 13. 01:33

AWS EC2

  • EC2란?
    • Elastic Compute Cloud 의 약어
    • AWS에서 제공하는 클라우드 컴퓨팅 서비스
    • 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스 제공
  • EC2 인스턴스 유형
    • Type t, Type m, Type inf 등등..
    • 범용 및 컴퓨팅, 메모리, 저장 최적화 등 성능 목적에 따라 여러가지 타입 존재
    • 범용 : vCPU, 메모리, 네트워크, 저장 공간 등이 평균적인 사양으로 제공
    • 컴퓨팅 최적화 : 다른 인스턴스 패밀리에 비해 메모리 대비 vCPU 비율이 높음
    • 메모리 최적화 : 다른 인스턴트 패밀리에 비해 메모리 용량이 훨씬 크다
    • 스토리지 최적화 : 다른 인스턴스 패밀리보다 스토리지 용량이 훨씬 크거나 초고속 I/O가 제공
    • GPU 인스턴스 : 고성능의 NVIDIA GPU가 장착되어 CUDU, OpenCL등을 실행할 때 사용
    • 마이크로 인스턴스 : 가격이 가장 싼 인스턴스, 낮은 vCPU 성능과 적은 메모리 제공
    • vCPU란?
      • EC2는 가상 서버이므로 EC2 서버는 가상과 소프트웨어를 통해 실행. 따라서 가상화 소프트웨어를 통해 제공되는 CPU를 vCPU라고 함


AWS Glue

  • AWS Glue란?
    • 완전 관리형 데이터 추출, 변환, 적재 (ETL) 서비스
    • 여러 데이터 스토어 및 데이터 스트림 간에 원하는 데이터를 분류, 정리, 보강, 이동 가능
  • AWS Glue 특징
    • Serverless로 설정, 관리할 인프라 없음
    • 원본 데이터의 변경 및 변경 데이터의 저장을 위한 별도의 저장소가 필요 없음, 메타데이터만으로 ETL 작업 수행
    • 정형 데이터와 비정형 데이터도 함께 작동하도록 설계
    • ETL 스크립트에서 사용할 수 있는 Dynamic Frame이라는 구성 요소를 사용해 Spark의 Data Frame과 완벽 호환되고, Schema가 필요 없고 Dynamic Frame용 고급 변환 세트 이용 가능
    • 고성능의 워커로 빠른 작업 수행 가능
    • 스케줄링 기능으로 주기적인 작업 실행을 자동화 가능
    • 북마크 기능으로 작업상태를 저장하여 중단된 시점부터 작업 재개 가능
    • 작업에 대한 모니터링 지원
  • AWS Glue 구성요소
    • Data Store : S3, RDS, Redshift, Kinesis, Spark 등 데이터 저장 서비스나 데이터 스트림 서비스를 가리킴
    • Classifier : 데이터의 스키마를 결정하고 일반적인 파일들의 분류자를 제공 (csv, tsv 파일 등)
    • Crawler : Classifier의 우선 순위 지정 목록을 통해 데이터의 스키마를 결정한 다음, 메타 데이터 테이블을 생성
    • Data Catalog : 테이블 정의, 작업 정의 및 기타 관리 정보를 포함
    • Job : ETL 작업을 수행하는데 필요한 변환 스크립트, 데이터 원본 및 데이터 대상으로 구성된 비즈니스 로직
    • Connection : AWS의 다른 데이터 저장 서비스나 사용자의 VPC 환경 내부에 있는 데이터베이스에서 데이터 추출을 위한 장치
    • Script : Spark에서 사용되는 PySpark, Scala등으로 짜여진 ETL 작업 스크립트
    • Schedule or Event : Job이 실행되는 주기를 설정하거나, 혹은 특정 이벤트로 인한 트리거로 실행 가능

  • AWS Glue Studio
    • Glue의 새로운 시각적 인터페이스로, ETL이 필요한 개발자들이 손쉽게 ETL 작업을 실행하고 모니터링 가능
    • 사용자가 코드를 작성하지 않고 Glue Serverless Spark 기반 ETL 플랫폼에서 빅데이터 처리 가능
    • 여러 데이터 소스에서 카탈로그로 메타데이터만 가져오고, ETL 작업 후 데이터를 저장하거나 엔드포인트를 생성하여 다양한 서비스로 연결 가능 (Sagemaker, EMR, QuickSight…)
  • AWS Glue 장점
    • 복잡한 EMR 클러스터를 관리할 필요가 없음
    • Scale out이 쉬움
  • AWS Glue 단점
    • 설정에 있어 상당히 제한적
      • executor 메모리, core 등 설정은 default 값을 따라야함
    • 디버깅이 힘듦
      • Lambda가 EC2보다 디버깅이 힘든 이유와 같음
    • 비쌈
      • EMR보다 Glue가 더 비쌈 (EC2보다 Lambda가 비쌈)

AWS Lambda

  • AWS Lambda란?
    • AWS에서 제공하는 서버리스 컴퓨팅 서비스
    • 고정 비용 사용 시간에 대해서 비용 발생
    • AWS EC2는 초 단위로 과금이 발생하지만, Lambda는 ms 단위로 과금 발생
    • 리눅스에서 실행가능한 임의의 바이너리를 포함해 실행 가능
  • Lambda 컴퓨팅 자원
    • 128 ~ 3,000 MB에서 64MB로 단위로 결정 가능
    • CPU용량과 기타 리소스 메모리 크기에 비례해서 증가
      (Lambda에 256MB를 할당한 경우 128MB를 할당한 경우보다 CPU 용량 2배 증가)
    • Lambda의 최대 실행 시간은 15분
  • Lambda 컴퓨팅 요금
    • 리퀘스트와 컴퓨팅에 의해서 비용 발생
    • 리퀘스트 - 1백만 요청 당 0.2 USD
    • 메모리 1GB 기준 1ms당 0.0000000167 USD
    • 현재 매월 1백만 회의 무료 요청과 월별 400,000GB-초 컴퓨팅 시간을 프리티어로 제공
728x90

'ssung_데이터 엔지니어링 > 최종 프로젝트' 카테고리의 다른 글

최종 프로젝트_(6)  (0) 2024.03.08
최종 프로젝트_(4)  (0) 2024.02.28
최종 프로젝트 (3)  (0) 2024.02.21
최종 프로젝트_(2)  (0) 2024.02.14