AWS 데이터 분석 서비스

2025. 9. 19. 10:54·AWS

빅 데이터 분석 과정

전처리 : 데이터 수집 -> 데이터 처리 및 저장 -> 데이터 분석 결과

전체과정 : 데이터 수집 -> 데이터 처리 및 저장 -> 데이터 분석 결과 -> 시각화 -> 통찰력 및 의사결정 

 

AWS 환경에서 ETL과 ELT는 데이터 통합 및 분석을 위한 두 가지 주요 방식, 둘 다 여러 소스에서 데이터를 가져와 분석에 적합한 형태로 바꾸는 과정이지만, 데이터 변환(Transformation)이 일어나는 시점과 위치가 다름


ETL (Extract, Transform, Load)

ETL은 데이터를 **추출(Extract)**한 후, 분석 시스템에 넣기 전에 미리 **변환(Transform)**하고, 마지막으로 변환된 데이터를 목적지 시스템에 **적재(Load)**하는 방식

  • 동작 방식: 소스 시스템에서 데이터를 가져와 별도의 **스테이징 영역(staging area)**이나 ETL 서버에서 데이터를 정제하고 변환합니다. 변환이 완료된 데이터는 정형화된 형태로 데이터 웨어하우스(Data Warehouse)에 저장됨
  • 장점:
    • 데이터 웨어하우스에 저장되는 데이터의 양이 적어 효율적임
    • 데이터 품질이 미리 보장됨
    • 정형화된 데이터만 필요할 때 유리함
  • AWS 서비스: AWS Glue, AWS Step Functions, AWS Lambda 등이 ETL 파이프라인을 구축하는 데 주로 사용됨

ELT (Extract, Load, Transform)

ELT는 데이터를 **추출(Extract)**한 후, 원본 그대로 목적지 시스템에 **적재(Load)**하고, 필요할 때 **변환(Transform)**하는 방식

  • 동작 방식: 원본 데이터를 그대로 S3와 같은 대규모 스토리지에 먼저 저장합니다. 데이터 웨어하우스나 데이터 레이크(Data Lake)에 쌓인 원본 데이터를 분석가가 필요에 따라 쿼리하면서 실시간으로 변환함
  • 장점:
    • 빅 데이터 환경에 적합합니다. 원본 데이터를 그대로 저장하므로 모든 데이터를 보관할 수 있음
    • 분석가들이 다양한 형태로 데이터를 변환하고 분석할 수 있어 유연성이 높음
    • 데이터 로딩 속도가 빠름
  • AWS 서비스: Amazon S3 (데이터 레이크), Amazon Redshift, Amazon EMR, Amazon Athena 등이 ELT 파이프라인에 사용됨

ETL vs ELT 요약 비교

구분 ETL ELT
변환 시점 로드 전에 변환 로드 후에 변환
적합한 데이터 정형 데이터, 소규모 데이터 비정형/반정형, 대규모 빅 데이터
주요 스토리지 데이터 웨어하우스 데이터 레이크 (S3)
장점 데이터 품질 보장, 효율적 유연성, 확장성, 빠른 로딩 속도

데이터 처리 종류

1. 중앙 집중식 처리 (Centralized Processing)

중앙 집중식 처리는 모든 데이터와 컴퓨팅 자원이 한 곳에 집중되어 처리되는 방식, 메인프레임 컴퓨터나 대형 서버 한 대가 모든 작업을 수행

  • 장점: 관리 및 제어가 용이하고, 보안을 한 곳에서 집중적으로 관리할 수 있음
  • 단점: 한 지점에 장애가 발생하면 시스템 전체가 멈출 수 있고, 처리 용량을 늘리려면 값비싼 하드웨어를 교체해야 함

2. 분산 처리 (Distributed Processing)

분산 처리는 네트워크로 연결된 여러 컴퓨터가 작업을 나누어 처리하는 방식입니다. 각 컴퓨터는 독립적으로 작업의 일부를 처리하고, 그 결과를 모아 최종 결과를 만듬

  • 장점: 한 지점에 장애가 발생해도 다른 컴퓨터들이 작업을 계속하기 때문에 안정적이고, 필요에 따라 자원을 유연하게 확장할 수 있음
  • 단점: 복잡한 분산 시스템을 관리해야 하므로 중앙 집중식보다 관리가 어려움

3. 배치 처리 (Batch Processing)

배치 처리는 데이터를 일정량 모아 한 번에 일괄적으로 처리하는 방식입니다. 실시간으로 처리할 필요가 없는 대량의 데이터를 다룰 때 주로 사용됨 예를 들어, 월말 정산, 급여 계산, 일일 재고 보고서 생성 등이 여기에 해당함

  • 장점: 대용량 데이터를 효율적으로 처리할 수 있고, 시스템 자원을 한가한 시간대에 몰아서 사용해 비용 효율적임
  • 단점: 처리 결과가 즉시 나오지 않고 대기 시간이 발생함

4. 실시간 처리 (Real-time Processing)

실시간 처리는 데이터가 생성되는 즉시 처리하는 방식, 대기 시간 없이 거의 즉각적으로 결과를 얻어야 할 때 사용됩니다. 신용카드 승인, 온라인 스트리밍, 주식 거래 시스템 등이 대표적인 예

  • 장점: 즉각적인 피드백과 빠른 응답이 가능
  • 단점: 매우 높은 성능과 안정성이 요구되어 시스템 구축 및 유지 비용이 많이 듬

데이터 분석 

1. 기술 통계 분석 (Descriptive Analytics)

기술 통계 분석은 **"무슨 일이 일어났는가?"**에 답하는 가장 기본적인 분석, 과거 데이터를 요약하고 정리하여 현재 상황을 파악하는 데 중점을 둠

  • 목적: 데이터의 특징을 파악하고 패턴을 발견함
  • 방법: 평균, 중앙값, 최빈값, 표준편차, 빈도수 등을 계산하거나 시각화(차트, 그래프)를 통해 데이터를 보여줌
  • 예시: 지난달 웹사이트 방문자 수, 특정 제품의 판매량, 고객의 연령 분포 등을 분석함

2. 진단 분석 (Diagnostic Analytics)

진단 분석은 **"왜 그런 일이 일어났는가?"**에 답하는 분석, 기술 통계 분석으로 발견된 현상의 원인을 찾아냄

  • 목적: 문제의 근본 원인을 규명함
  • 방법: 데이터 드릴다운, 데이터 마이닝, 상관관계 분석 등을 통해 특정 현상에 영향을 미친 요인을 찾음
  • 예시: 특정 기간에 매출이 감소한 이유를 파악하기 위해 마케팅 캠페인, 경쟁사 가격, 날씨 등의 데이터를 분석함

3. 예측 분석 (Predictive Analytics)

예측 분석은 **"앞으로 무슨 일이 일어날 것인가?"**에 답하는 분석, 과거 데이터를 기반으로 미래를 예측하거나 가능성을 예측함

  • 목적: 미래의 추세를 예측하고 리스크를 평가함
  • 방법: 회귀 분석, 시계열 분석, 머신러닝(기계 학습) 모델 등을 사용하여 예측 모델을 만듬
  • 예시: 다음 분기 예상 매출액, 특정 고객이 이탈할 확률, 사기 거래 발생 가능성을 예측함

4. 처방 분석 (Prescriptive Analytics)

처방 분석은 **"무엇을 해야 하는가?"**에 답하는 가장 진화된 분석, 예측 분석 결과를 바탕으로 최적의 행동 방안을 제시함

  • 목적: 최적의 의사결정을 지원함
  • 방법: 최적화(Optimization), 시뮬레이션, 의사결정 모델 등을 사용해 다양한 시나리오를 분석하고 최적의 행동을 제안함
  • 예시: 매출 극대화를 위해 제품 가격을 얼마로 설정해야 하는지, 물류 비용을 최소화하기 위한 최적의 배송 경로를 찾음

AWS SNS와 SQS는 메시징 서비스이지만, 서로 다른 역할을 수행, SNS는 '발행/구독' 모델을 사용해 여러 구독자에게 메시지를 보내고, SQS는 '메시지 큐' 모델을 사용해 메시지를 저장하고 개별적으로 처리함


Amazon SNS (Simple Notification Service)

SNS는 발행/구독(Publish/Subscribe) 모델을 기반으로 하는 서비스, 메시지를 한 번 발행하면 여러 대상에게 동시에 전달하는 데 사용됨

  • 역할: 메시지 전달자.
  • 작동 방식: 메시지를 **토픽(Topic)**에 발행하면, 해당 토픽을 구독하는 모든 대상(SQS 큐, Lambda 함수, HTTP 엔드포인트, 이메일 등)에게 메시지가 즉시 푸시(Push)됨
  • 특징:
    • 즉시성: 메시지가 생성되면 실시간으로 전달됨
    • 다중 대상: 한 번의 발행으로 여러 대상에게 메시지를 보낼 수 있음
    • 비용: 발행된 메시지 수와 푸시 알림 수에 따라 요금이 부과됨

Amazon SQS (Simple Queue Service)

SQS는 메시지 큐(Message Queue) 모델을 기반으로 하는 서비스, 메시지를 임시로 저장해두고, 소비자가 메시지를 가져가서 처리하는 방식

  • 역할: 메시지 보관함.
  • 작동 방식: 메시지를 **큐(Queue)**에 넣으면, 소비자가 큐에서 메시지를 폴링(Polling)해 가져가 처리, 메시지가 처리되면 큐에서 삭제됨
  • 특징:
    • 비동기 처리: 생산자와 소비자 간의 결합도가 낮아, 소비자가 준비될 때까지 메시지를 큐에 보관
    • 안정성: 소비자가 메시지를 처리하는 동안 다른 소비자가 가져가지 못하도록 메시지를 숨기고, 처리 실패 시 메시지를 다시 볼 수 있게 해줌
    • 비용: 큐에 저장된 메시지 수와 API 요청 수에 따라 요금이 부과됨

 

갑자기 파이썬 안깔려있나 묻더니 아나콘다 설치하게 만듬

 

Anaconda Installers 🐍

Anaconda는 데이터 과학, 머신러닝, 통계 분석 등을 위한 종합 소프트웨어 패키지예요. 설치 시 NumPy, SciPy, Pandas, Scikit-learn 등 250개 이상의 필수 패키지와 Jupyter, Spyder 같은 IDE가 함께 설치됨

  • 장점:
    • 초보자에게 적합해요. 별도의 설치 없이 바로 데이터 분석 작업을 시작할 수 있음
    • 패키지 간 의존성 충돌을 걱정할 필요가 없음
  • 단점:
    • 설치 파일 크기가 매우 커요 (약 500MB 이상).
    • 필요하지 않은 패키지까지 모두 설치되므로, 디스크 공간을 많이 차지하고 환경이 무거워질 수 있음

Miniconda Installers 🐍

Miniconda는 Conda 패키지 관리자와 Python만 포함된 최소한의 설치 프로그램, 필요한 패키지는 Conda 명령어를 사용해 직접 설치해야 함

  • 장점:
    • 설치 파일 크기가 매우 작고, 설치가 빠름
    • 사용자가 필요한 패키지만 선택적으로 설치할 수 있어 환경을 가볍게 유지할 수 있음
  • 단점:
    • 데이터 분석을 위한 패키지들을 수동으로 설치해야 함

결론

  • Anaconda: "만능 세트" 같은 개념으로, 한 번에 필요한 모든 것을 갖추고 시작하고 싶은 사용자에게 적합
  • Miniconda: **"조립식 키트"**와 같아요. 가벼운 환경에서 시작해 필요한 것만 추가하고 싶은 사용자나, 특정 패키지 조합이 필요한 숙련자에게 적합

두개 차이 그냥 아나콘다로 설치했음

 

그 다음 구글 코랩에 대해서 설명했음

 

https://colab.google/

 

 

코랩 : 환경 설정 하기 힘들때 여러명이 동일한 환경에서 쓰고자 할 때 사용

주피터 노트북 : 내가 어느정도 환경설정을 할 수 있을 때

 

 

얘만 설정해주고 나머지는 동일 

 

VS code 에서 사용할 시 Extentions -> Python install 후 Jupyter install 해주면 됨

 

 

아나콘다 설치가 긑나면 Jupyter Launch 누르면 웹사이트가 하나 뜸. 

 

 

print("헬로") 라고 입력한 뒤

shift enter 동시에 누르면 바로 실행이 됨 

 

터미널을 누르게 되면 아무것도 안뜨는데 교수님도 머쓱해 하셨음 ^^

 

파이썬 공부하고 싶으면 휴게실에 책있다고 쓰라고함.

 

 

이러면 주석처리 됨

 

 

VS code에서 Extentions 해뒀으면 네비게이션에서 실행했을 때 VS code가 켜짐

 

 

중간에 머라고 더 말씀하셨는데 놓쳐서 모르겠음

 

일단 여기까지가 오전 이론 강의 

'AWS' 카테고리의 다른 글

실습 LAB6  (0) 2025.09.19
실습 LAB5  (0) 2025.09.19
AWS Database  (0) 2025.09.19
실습 LAB4  (0) 2025.09.18
실습 LAB3  (0) 2025.09.18
'AWS' 카테고리의 다른 글
  • 실습 LAB6
  • 실습 LAB5
  • AWS Database
  • 실습 LAB4
dev_user
dev_user
csjang94-dev 님의 블로그 입니다.
  • dev_user
    devJang
    dev_user
    • Category (127)
      • Linux (2)
      • FrontEnd (11)
        • HTML (1)
        • CSS (5)
        • JavaScript (4)
        • React (1)
      • BackEnd (4)
        • node.js (7)
        • Vue.js (1)
      • DB (13)
      • Python (3)
      • GitHub (1)
      • AWS (18)
      • ErrorCode (2)
      • AWS 광주 개발일지(25.08.19~25.01... (55)
        • 교육 25년 8월 일지 (7)
        • 교육 25년 9월 일지 (22)
        • 교육 25년 10월 일지 (2)
        • 교육 25년 11월 일지 (4)
        • 교육 25년 12월 일지 (19)
      • Projects (3)
        • 미니프로젝트(25.08.29) (0)
        • Git Page -> Portfolio제작 (2.. (1)
      • 개념 정리 (1)
      • 유용한 서비스 (3)
  • 인기 글

  • 링크

    • GitHub
    • Portfolio
    • YouTube
    • 개발자 로드맵 사이트
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.4
dev_user
AWS 데이터 분석 서비스
상단으로

티스토리툴바