[AWS]데이터 파이프라인 1주차-1

aws로 구축하는 데이터 파이프라인


데이터 파이프라인의 흐름의 이해

Apache Spark을 활용한 데이터 파이프라인 구축 프로젝트 Workshop
패스트캠퍼스 직방 데이터 책임자 권낙주 강사님 강의를 정리합니다.

1주차의 목적

  • 데이터 파이프라인 흐름에 대해서 이해하고 구성하는데 필요한 패키지의 용도를 알자
  • 데이터 파이프라인 관련한 용어들을 살펴보자
  • 온프레미스(기존 서버호스팅 방식)과 클라우드 환경에서 데이터 수집 차이를 알자


데이터 파이프라인 구성목적

  • 각 팀의 데이터적 요구사항(use case)에 대한 빠른 대응.
  • 지속적이고 에러가 없어야 한다.
  • 시스템적으로 발생하는 문제에 대해서 유연한 Scability 해야 한다.
  • Scale Up과 Scale Down이 자유로워야한다
    • 배치 할 때 서버를 늘렸다가 실제 서비스하는 시간에는 줄임
  • 이벤트성 데이터 부하에도 처리가 가능해야 한다.
    • 회원가입이나 이벤트로 인한 서버 부하 처리 등
  • 신규로 추가되는 Biz System에 대해서 빠르게 적용 가능해야 한다.
  • 데이터 쌓이는 공간에 문제가 없어야 함.
  • 수집데이터에 대한 Format에 대해서 유연성 있게 처리 해주어야 한다.


BigData LandScape 2018

  • ELK
    ELk는 특정 기간을 분석하는데는 좋음(다만 시스템적 요구사항이 많음)
    참고, Logstash: Elasticsearch에 데이터를 넣어주는 역할

  • AWS Redshift: HDFS + RDBMS

  • 앞으로 계속 정리할 예정


데이터 파이프라인의 흐름을 이해


참고: 패스트캠퍼스 웹 홈페이지

데이터 용어의 이해

  • 온프레미스 : 자사에 데이터 센터를 두고 시스템 구축부터 운영까지 하는 형태
    • 자체 구축/운용, 자체 보유 인프라 환경
    • 내부에 구축된 인프라
    • 자사에 데이터센터를 두고 시스템 구축부터 운영까지 수향하는 것
    • 서버, 네트워크 장비를 자사에서 조달하고 구축, 운영하는 형태
    • 클라우드와 반대되는 개념
  • 메타데이터 : 데이터에 관한 구조화된 데이터로 즉, 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 ‘일정한 규칙에 따라 콘텐츠에 대하여 부여되는 데이터’

  • ETL : 추출 / 변환 / 적재는 컴퓨팅에서 데이터베이스 이용의 한 과정으로 데이터웨어하우스에서 다음과 같다.
    • 데이터 소스로부터 데이터를 추출
    • 조회 / 분석을 목적으로 적절한 포맥하나 구조로 데이터를 저장하기 위해 변환하는 과정을 말함
    • 최종 대상(DW, DM 등)으로 변환 데이터를 적재한다(아무래도 raw데이터보다 크기가 적은 형태. 활용 목적에 따라서 기간으로 분류해 저장하기도 함)
  • 메시지 큐 시스템 : 데이터를 전달하는 중간의 역할의 큐형태
    • Producer: 메세지를 생산
    • Consumer: 메세지를 소비
    • 흔히 pub/sub 방식이라 불리우고, 대부분의 메세지 큐에서는 동일한 메세지 처리 매커니즘을 가진다.
    • 메세지큐 시스템들 비교 및 카프카 알아보기
  • Scale Out/In : 접속된 서버 대수를 늘려 처리능력을 향상하거나 줄이는 것을 말함

  • Scale Up/Down : 서버의 크기를 증가해서 고성능 장비로 대체하는 것
  • AWS CDN : CDN을 설정하면 서비스 존( ex)아시아 태평양 )에 copy
  • 컴퓨터 클러스터 : 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합


AWS 패키지 알아보기

  • ec2(Amazon Elastic Compute Cloud)
    • 가상 컴퓨팅 환경(인스턴스)
    • 쉽게 말해 CPU, 메모리, 스토리지, 네트워킹 용량등 여러가지 구성을 제공하고 사용자는 이에 맞게 셋팅하여 사용하는 가상 컴퓨터
    • 인스턴스 스토어 볼륨: 임시 데이터를 저장함. 인스턴스 종료 시 삭제
    • Amazon EBS: 영구 스토리지 볼륨에 데이터를 저장
    • 보안 그룹을 사용해 인스턴스 접근을 가능하게 하는 방화벽 설정
    • 태그: 사용자가 생성하여 EC2 리소스에 할당할 수 있는 메타데이터
  • S3
    • 버킷: Amazon S3에 저장된 객체에 대한 컨테이너로 모든 객체는 어떠한 버킷에 포함된다. 쉽게 말해서 윈도우의 폴더이다.
    • 객체: Amazon S3에 저장되는 기본 객체이다. 객체(객체 데이터 + 메타데이터)
    • 키: 버킷 내에 객체의 고유한 식별자. 버킷 내 모든 객체는 정확히 하나의 키를 가짐. Amazon S3는 “버킷 + 키 + 버전”과 객체 자체 사이의 기본 데이터 맵으로 간주할 수 있다.
  • RDS
    • AWS의 관계형 데이터베이스
    • 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업 등 소모적인 관리 작업을 자동화함
    • 지원하는 데이터베이스 엔진
      • Oracle, Mysql, Microsoft SQL Server, PostgreSQL, MariaDB, Aurora
  • API Gateway
    • 어떤 규모에서든 개발자가 API를 생성, 게시, 유지 관리, 모니터링 및 보호할 수 있게 해주는 AWS 서비스
    • 사용자는 RESTful API를 생성, 구성, 호스팅하여 애플리케이션의 AWS 클라우드 액세스를 지원함
    • 쉽게 말하면 인터넷에서 AWS Service에 접속하기 위한 인터페이스 혹은 관문
  • CloudWatch
    • AWS 리소스와 AWS에서 실시간으로 실행 중인 애플리케이션을 모니터링
    • 리소스 및 애플리케이션에 대해 측정할 수 있는 변수인 지표를 수집하고 추적할 수 있다
    • 정의한 기준으로 경보(알림)을 보내거나 리소스를 자동으로 변경할 수 있다


파이프라인 구성 팁

데이터 저장할 때: 반드시 압축, text 데이터의 경우에는 70~90% 압축률을 보임