작은하마

[AWS] AWS EMR과 AWS Glue의 차이 본문

AWS

[AWS] AWS EMR과 AWS Glue의 차이

꼬몽울 2021. 9. 8. 17:43

AWS EMR =  Apache Spark, Apache Hive, Apache HBase, Apache Flink, Apache Hudi  Presto와 같은 오픈 소스 도구를 사용하여 방대한 양의 데이터를 처리하기 위한 업계 최고의 클라우드 빅 데이터 플랫폼

 

AWS GLUE = 분석, 기계 학습 및 애플리케이션 개발을 위해 데이터를 쉽게 탐색, 준비, 그리고 조합할 수 있도록 지원하는 서버리스 데이터 통합 서비스

 

데이터 엔지니어의 직무를 하다보니 두가지의 서비스를 사용해봤다.

 

EMR에 Airflow를 설치하여 mysql => s3, s3 => s3 를 처리했고

Glue를 사용하여 S3 => Redshift 를 처리했다.

 

둘다 같은 업무를 했기 떄문에 왜? AWS에서 다수의 빅데이터 서비스를 내놓았을까?

 

먼저 EMR을 사용했을때 내가 직접 클러스터를 관리해야했지만 Glue는 서버리스 컴퓨팅 방식으로 직접적으로 클러스터를 관리하지않고 비용만 지불하였다.문론 비용측면에서는 Glue가 더 나갔던것으로 기억하지만 Glue도 쓰기나름이라...

 

나 말고도 궁금한 사람이 있었는지 스택오버플로에 질문이 올라왔다.

답변은 이러하다.

When to choose aws glue

  1. Data size is huge but structured i.e. it is in the table structure and is of known format (CSV, parquet, orc, json).
  2. Lineage is required, if you need the data lineage graph while developing your etl job prefer developing the etl using glue native libraries.
  3. The developers don't need to tweak the performance parameters like setting number of executors, per executor memory and so on.
  4. You don't want the overhead of managing large cluster and pay only for what you use.

When to use EMR

  1. Data is huge but semi-structured or unstructured where you can't take any benefit from Glue catalog.
  2. You believe only in the outputs and lineage is not required.
  3. You need to define more memory per executor depending upon the type of your job and requirement.
  4. You can manage the cluster easily or if you have so many jobs which can run concurrently on the cluster saving you money.
  5. In case of structured data, you should use EMR when you want more Hadoop capabilities like hive, presto for further analytics.

해석하여 요약하면 다음과같다.

 

데이터가 크고 구조화가 되어있다. 측 형식이 CSV, parquet, orc, josn 구조처럼 구조화가 되어있다 => Glue

아니다 데이터가 크지만 반정형 또는 비정형 데이터다 => EMR

 

데이터리니지가 필요하다. => Glue

데이터리니지가 필요없고 그냥 결과만 필요하다 => EMR

 

유지보수를 할 인원이 적고 하나의 서비스만을 관리하지 않고 다수의 서비스를 관리한다 => Glue

하나의 서비스를 관리하면서 커스텀할 인력이 충분하다 => EMR

 

사용한 만큼 비용을 지불하고싶다 => Glue

개발자 혹은 관리자가 클러스터를 관리하여 적은 금액으로 데이터를 처리하고싶다 => EMR

 

다수의 3-party 서비스와 연동하여 쓰고싶다(유연성이필요) => EMR

내가 필요한건 분석용 데이터를 뽑는 것이지 데이터 수집 처리 제공이 아니다 => Glue

 

정확히 말하자면 EMR안에 Glue라는 ETL에 특화된 서버리스 플랫폼이 나온거라고 할 수 있다.

'AWS' 카테고리의 다른 글

[AWS] Athena와 Redshift Spectrum 차이  (0) 2021.08.22
[AWS] IaaS, PaaS, SaaS란?  (0) 2021.07.15
Comments