Amazon MLS-C01: 데이터 엔지니어링 및 피처 엔지니어링 — 학습 가이드
다음의 일부입니다: AWS Machine Learning Specialty MLS-C01 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
데이터 수집, 저장 및 파일 형식
ML에 적합한 데이터 레이크를 설계하려면 올바른 수집 패턴과 영구 저장 형식을 선택하는 것부터 시작해야 합니다. 실시간 원격 측정 데이터에는 Kinesis Data Streams(저지연 처리) 또는 Kinesis Data Firehose(관리형 전송)를 사용합니다. Firehose는 AWS Glue Schema Registry 및 Lambda 변환과 결합하면 Amazon S3로 직접 데이터를 전송하고 서버 측에서 레코드 형식을 Parquet/ORC로 변환할 수 있습니다. 사용자 지정 보강이나 초 단위 미만의 응답이 필요한 경우 Data Streams + Kinesis Data Analytics 또는 Lambda를 선택하세요. 대량 마이그레이션의 경우 AWS DataSync를 사용하거나, RDS/OLTP 소스의 경우 Database Migration Service(DMS)를, 테라바이트 규모의 오프라인 전송에는 Snowball을 사용합니다. S3에는 분석 워크로드용으로 컬럼 기반 Parquet(조건자 푸시다운, Snappy와 같은 압축, 쿼리 패턴에 맞게 조정된 파티션 키)을 저장하고, 처리량이 높은 순차 읽기를 위해 TensorFlow 파이프라인에 데이터를 공급할 때는 TFRecord를 사용합니다. 작은 파일 폭증 문제에 주의해야 합니다. 쓰기를 버퍼링하여(Firehose 버퍼링, Glue 배치 처리) 빅데이터 프레임워크에 적합한 크기(수십~수백 MB)의 S3 객체를 생성하세요. 스키마 변경은 흔히 발생합니다. Glue Catalog와 Schema Registry를 사용하여 스키마를 버전 관리하고, 파티셔닝과 명명 규칙을 사용하여 비용이 많이 드는 전체 테이블 스캔을 방지하세요. 흔한 함정은 다운스트림 처리에서 전체 데이터 세트를 컴퓨팅 노드로 복사하는 파일 모드를 사용하는 것입니다. 데이터 세트가 수백만 개의 레코드로 구성된 경우 전체를 복사하는 대신 스트리밍(SageMaker 파이프 모드), Redshift Spectrum 또는 Athena를 사용하는 것이 좋습니다.
서버리스 및 클러스터 ETL: Glue, EMR, Redshift, SageMaker
ETL 선택은 규모, 사용자 지정 수준, 비용 프로파일, 라이브러리 요구 사항에 따라 달라집니다. AWS Glue는 카탈로그 생성, 크롤러, 내장된 작업 오케스트레이션 기능을 갖춘 서버리스 Spark ETL을 제공하며, 관리형 확장을 원하는 빈번한 이벤트 기반 변환에 매우 적합합니다. 사용자 지정 Spark/Hadoop 에코시스템, 장기 실행 클러스터 또는 특수 라이브러리(GraphX, MLlib 사용자 지정 빌드)가 필요하고 S3를 기본 데이터 레이크로 사용할 수 있는 경우 EMR이 더 적합합니다. 데이터 수집 없이 분석하려면 Redshift Spectrum이나 Athena를 사용하여 S3의 Parquet/ORC를 직접 쿼리하세요. Redshift는 복잡한 조인 및 BI 워크로드에 더 적합합니다. 모델 데이터 준비를 위해 SageMaker Processing 작업은 확장 가능한 Spark 또는 Python 전처리를 실행할 수 있는 관리형 컨테이너를 제공하여, 전처리 코드가 훈련 작업과 가까운 위치에서 실행되고 훈련 작업과 함께 버전 관리될 수 있도록 보장합니다. 내장 알고리즘으로 SageMaker 훈련을 시작할 때는 최소한 훈련 이미지, IAM 역할, instance_type/count, 훈련 데이터용 S3 URI를 제공해야 합니다. 수백만 개 레코드의 데이터 세트인 경우 파이프 모드를 사용하여 레코드를 스트리밍하고 EBS 복사를 피하는 것을 고려하세요. 흔한 함정: 지연 시간이 매우 짧아야 하는 변환에 Glue를 선택하거나(대신 Lambda/Kinesis 사용), Redshift Spectrum/Athena로 충분한 경우에도 불필요하게 S3 데이터를 HDFS/EBS로 복사하는 것입니다.
특성 공학, 변환 파이프라인 및 선택
특성 공학은 재현 가능해야 하며 데이터 유출로부터 격리되어야 합니다. 전처리를 프로덕션 수준의 파이프라인(scikit-learn Pipeline, Spark ML 파이프라인 또는 SageMaker Processing + Feature Store)으로 구현하여 훈련과 추론 시에 동일한 변환이 적용되도록 하세요. 결측치는 전략을 선택하여 처리합니다. 작은 공백에는 단순 대치(평균/중앙값/최빈값)를 사용하고, 다른 특성으로 결측값을 예측할 수 있는 경우 모델 기반 방법(KNN, 반복 MICE)을 사용합니다. 경사 하강법 기반 모델의 경우 StandardScaler 또는 MinMax로 숫자형 특성의 스케일을 조정하고, 이상치가 많은 경우 로버스트 스케일링을 적용합니다. 범주형 변수의 경우, 카디널리티가 낮은 범주에는 원-핫 인코딩을, 카디널리티가 높은 범주에는 타겟 인코딩 또는 학습된 임베딩(딥 모델에서는 임베딩 사용, 차원 제어를 위해 특성 해싱 사용)을 선택합니다. 텍스트의 경우 일관된 정규화(소문자화, 구두점 제거, 토큰화)를 수행합니다. 임베딩에는 Word2Vec/BlazingText를 사용하고, 선형 모델에는 TF-IDF/희소 파이프라인을 사용합니다. SageMaker의 BlazingText는 skip-gram/CBoW를 지원하며 대규모 환경에서 효율적입니다. 특성 선택을 위해 L1 정규화, 트리 기반 중요도(XGBoost/RandomForest), 상호 정보량 또는 재귀적 특성 제거를 사용하고, 선택 편향을 피하기 위해 항상 교차 검증 폴드 내에서 특성 선택을 수행하세요. 가장 큰 실무적 함정은 데이터 유출입니다. 미래의 타겟 정보를 사용하여 특성을 파생시키거나, 데이터를 분할하기 전에 전체 데이터 세트를 사용하여 전처리를 적용해서는 절대 안 됩니다.
보안, 액세스 제어, 거버넌스 및 운영 모니터링
안전하고 감사 가능한 데이터 엔지니어링은 필수입니다. S3 및 EBS 볼륨의 저장 데이터는 SSE-KMS를 사용하여 암호화하고, 추가적인 제어를 위해 클라이언트 측 암호화를 사용합니다. AWS KMS CMK로 키를 관리하고, 키 정책과 권한 부여(grant)를 사용하여 최소 권한을 적용합니다. S3 VPC 엔드포인트와 정밀한 버킷 정책 또는 VPC 보안 주체(principal)로 범위가 지정된 S3 Access Points를 사용하여 S3 데이터 세트를 VPC로 제한합니다. SageMaker, Glue, EMR 또는 Lambda에 연결된 IAM 역할을 결합하여 최소 권한을 강제합니다. 민감한 PII의 경우 토큰화 또는 필드 수준 암호화를 사용하고, KMS가 정책에 따라 키를 교체하도록 보장합니다. 운영 측면에서는 SageMaker 및 Glue API 활동 로깅을 위해 CloudTrail을 활성화하고, 작업 지표를 위해 CloudWatch를 활성화합니다. SageMaker Model Monitor를 사용하여 드리프트 탐지를 수행하고, 모델을 재학습하거나 편향을 점검하도록 경고를 설정합니다. 데이터 거버넌스를 위해서는 Glue Data Catalog 또는 엔터프라이즈 메타데이터 스토어, 데이터 리니지(lineage), 그리고 수명 주기 정책을 위한 태깅이 필요합니다. 콜드 데이터에 대해서는 S3 수명 주기 규칙(glacier 전환)을 구현합니다. 일반적인 오해로는 보안 그룹만으로 충분하다고 가정하거나(IAM, 버킷 정책, VPC 엔드포인트도 필요함), 훈련 인스턴스 볼륨의 암호화를 활성화하는 것을 잊는 경우가 있습니다. 항상 훈련 작업 정의에 EBS 암호화를 포함하고 최소 권한 역할로 액세스를 검증해야 합니다.
실제 문제: 사용 사례 시나리오
시나리오: MetroRetail은 고객 클릭스트림을 Kinesis Data Streams로 수집하고 S3에 저장하며, SageMaker에서 모델을 훈련하는 AWS ML 환경을 운영합니다. 데이터 레이크는 분석가들을 위해 Glue Catalog와 Athena를 사용합니다.
과제: 스트리밍되는 CSV 클릭 이벤트를 스키마 진화를 지원하며 S3에 Parquet 형식으로 변환하고, 추천 모델을 위한 신뢰할 수 있는 피처 벡터를 생성하며, 수 기가바이트의 데이터 세트를 훈련 인스턴스로 복사하지 않고도 파이프라인이 확장되도록 보장해야 합니다.
권장 접근 방식:
- 수집을 위해 Kinesis Data Streams를 사용하고, Lambda 소비자를 연결하여 간단한 유효성 검사를 수행하고 레코드를 Kinesis Data Firehose 전송 스트림으로 전달합니다. 이 Firehose는 Glue Schema Registry를 사용하도록 구성하여 JSON/CSV를 Parquet으로 변환하고, 파티셔닝된 Parquet 파일을 S3에 씁니다(버퍼 힌트는 ~64–128 MB로 조정).
- AWS Glue에 Parquet를 카탈로그화합니다. Glue ETL 작업(서버리스 Spark) 또는 SageMaker Processing(Spark 컨테이너)을 사용하여 재현 가능한 피처 파이프라인을 구축하고, 편향된 숫자형 데이터에 대한 대치(중앙값 사용), StandardScaler, 그리고 고유값이 많은 item_id에 대한 범주형 임베딩을 적용합니다.
- 온라인 피처 벡터는 SageMaker Feature Store(짧은 지연 시간 조회를 위한 온라인 스토어)에 저장하고, 오프라인 피처는 S3(피처 스토어의 오프라인 스토어, Parquet 형식 사용)에 저장합니다. SageMaker에서 S3 Parquet 매니페스트를 가리키는 Pipe 모드를 사용하여 데이터를 스트리밍하고 전체 복사를 방지하며 훈련을 수행합니다.
- SSE-KMS로 S3를 보호하고, S3 VPC 엔드포인트와 VPC에 대한 엄격한 버킷 정책을 사용하여 액세스를 제한하며, 활동 로깅 및 드리프트 경고를 위해 CloudTrail + SageMaker Model Monitor를 활성화합니다.
근거: 이 접근 방식은 관리형 스트리밍-Parquet 변환과 서버리스 ETL을 활용하여 확장성을 확보하고, Feature Store를 사용하여 훈련과 추론 간의 일관성을 유지하며, Pipe 모드로 비용이 많이 드는 데이터 이동을 방지하고, 프로덕션 준비를 위해 암호화 및 최소 권한 액세스를 강제합니다.
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →