1 . 한 금융 서비스 회사는 Amazon Redshift를 사용하여 새 클라우드 데이터 웨어하우스를 구축하고 있다. 회사는 데이터 웨어하우스를 사용하여 주간 수익 추세를 분석하려 한다. 회사는 규정 준수를 위해 Amazon Redshift 내 활동을 모니터링하고 추적하는 감사 및 추적 솔루션을 구현하고자 한다. 이 회사는 SQL 쿼리, 사용자 상호 작용, 데이터베이스 및 객체의 변경 사항을 캡처하려고 한다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
클러스터에서 Amazon Redshift 감사 로깅을 사용한다. AWS CloudTrail에서 새 추적을 생성 및 구성하여 Amazon Redshift의 API 호출을 캡처하고 모니터링한다.
* 오답 정리
AWS Lambda 함수를 생성하여 Redshift 클러스터에서 생성된 Amazon CloudWatch Logs를 구문 분석한다. 관련 로그 세부 정보를 Amazon OpenSearch Service에 저장해 분석에 사용한다.
=> 운영 오버헤드
Amazon Redshift SQL 쿼리를 캡처하도록 Amazon CloudWatch Logs를 구성한다. Amazon CloudWatch 경보와 Amazon Simple Notification Service(SNS) 알림을 사용하여 비정상적인 활동을 경고한다.
=> CloudWatch 는 CPU 사용량, 쿼리 런타임, 클러스터 상태, 디스크 활용 공간 등의 정보를 캡처해서 승인되지 않았거나 의심스러운 활동과 관련될 수 있는 성능 이상 현상을 선제적으로 감지하여 보안을 강화할 때 필요
Amazon Redshift 시스템 테이블의 데이터를 Amazon S3으로 내보낸다. Amazon Athena를 사용하여 Amazon S3에서 추출된 데이터를 쿼리하고 분석한다.
=> 운영 오버헤드. 반복 실행되도록 예약 필요.
2 . Amazon S3와 독립형 Amazon Redshift 데이터베이스 간에 데이터를 이동하는 솔루션을 만들어야 하는 데이터 엔지니어가 있다. 분석을 위해 데이터를 Amazon Redshift로 옮겨야 한다. 그런 다음 아카이빙 목적으로 데이터를 다시 Amazon S3로 전송해야 한다.
다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon Redshift COPY 명령을 사용하여 Amazon S3에서 Amazon Redshift로 데이터를 로드한다. UNLOAD 명령을 사용하여 Amazon S3에 데이터를 로드한다.
* 오답 정리
Amazon Redshift Spectrum을 사용하여 Amazon S3에서 Amazon Redshift로 데이터를 로드한다. UNLOAD 명령을 사용하여 Amazon S3에 데이터를 로드한다.
=> 레드시프트 스펙트럼을 사용하려면 레드시프트 클러스터 필요. 독립형 레드시프트 데이터베이스에서는 사용할 수 없음
3 . 회사가 AWS에서 Amazon Redshift 클러스터를 운영하고 있다. 최근 클러스터를 감사한 결과 클러스터 생성 이후로 애플리케이션 데이터베이스 자격 증명이 교체되지 않은 것으로 확인됐다. 데이터 엔지니어는 데이터베이스 자격 증명의 보안 스토리지 및 자동 교체를 구성해야 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Secrets Manager에 데이터베이스 자격 증명을 저장한다. 자격 증명 교체 일정을 만든다. 정기적으로 데이터베이스 자격 증명을 교체하는 교체 함수를 작성한다.
* 오답 정리
자격 증명을 AWS Systems Manager Parameter Store에 보안 문자열로 저장한다. 정기적으로 데이터베이스 자격 증명이 교체되도록 Parameter Store에서 교체 예약을 설정한다.
=> Parameter Store에는 자격 증명 교체를 보장하는 기능이 내장되어 있지 않음
4 . 외부 클라우드 데이터 웨어하우스에 과거 데이터 집합을 저장하는 회사가 있다. 이 회사는 이러한 대규모 데이터 집합을 Amazon Redshift로 신속하게 마이그레이션하려고 한다. 데이터 집합 마이그레이션은 워크로드를 AWS로 마이그레이션하기 위한 통합 프로젝트의 일환이다. 다음 중 최소한의 노력으로 이러한 요구 사항을 충족하는 단계의 조합은 무엇인가? (2개 선택.)
AWS Schema Conversion Tool(AWS SCT)을 사용하여 외부 클라우드 데이터 웨어하우스 소스 스키마 및 데이터 정의 언어(DDL) 스크립트를 Amazon Redshift로 변환한다.
AWS Glue Studio를 사용하여 외부 클라우드 데이터 웨어하우스에서 Amazon Redshift로 데이터를 마이그레이션한다.
* 오답 정리
Amazon Redshift SQL 쿼리 편집기를 사용하여 외부 클라우드 데이터 웨어하우스 소스 스키마 및 데이터 정의 언어(DDL) 스크립트를 Amazon Redshift로 변환한다.
=> 쿼리 편집기는 대규모 데이터 집합 마이그레이션을 위해 설계되지 않음. 소스 데이터베이스 스키마를 검사하고 분석하는 추가적인 수작업이 필요.
Amazon Athena SQL 쿼리 에디터를 사용하여 외부 클라우드 데이터 웨어하우스에서 Amazon Redshift로 데이터를 마이그레이션한다.
=> 일부 데이터 유형의 경우 이기종 마이그레이션에서 변환해야 할 수도 있음
외부 클라우드 데이터 웨어하우스를 사용하여 데이터를 Amazon S3에 구분자로 일렬로 구분된 텍스트 파일로 언로드한다. Amazon Redshift SQL 쿼리 편집기에서 COPY 명령어를 사용하여 Amazon S3에서 Amazon Redshift로 데이터를 마이그레이션한다.
=> 일부 데이터 유형의 경우 이기종 마이그레이션에서 변환해야 할 수도 있음
5 . 회사에 30초마다 AWS에 5MB의 데이터를 업로드하는 IoT 디바이스 애플리케이션이 있다. 디바이스에서 데이터를 업로드한 후에 데이터는 디바이스에서 자동으로 제거된다. 데이터는 변환한 뒤에 Amazon S3 버킷에 저장되어야 한다. 데이터 변환은 간단하며 몇 초 내에 완료된다. 또한 변환되지 않은 데이터의 복사본은 나중에 다른 처리에서 사용할 수 있도록 두 번째 S3 버킷에 저장되어야 한다. 어떤 이유로 데이터가 성공적으로 변환되지 않으면 작업을 다시 시도할 수 있는 기능이 필요하다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
들어오는 데이터를 캡처할 수 있도록 Amazon Kinesis Data Streams를 구성한다. 데이터 스트림의 소비자로 AWS Lambda 함수를 구성하여 변환을 수행하고 첫 번째 S3 버킷에 데이터를 저장한다. 두 번째 소비자로 Amazon Kinesis Data Firehose를 구성하여 변환되지 않은 데이터를 두 번째 S3 버킷으로 전송한다.
* 오답 정리
들어오는 데이터를 캡처할 수 있도록 Amazon Kinesis Data Streams를 구성한다. 데이터 스트림의 소비자로 AWS Lambda 함수를 구성하여 변환을 수행하고 첫 번째 S3 버킷에 데이터를 저장한다. Kinesis Data Streams를 구성하여 변환되지 않은 데이터를 두 번째 S3 버킷에 직접 전송한다.
=> Kinesis Data Streams는 S3 버킷에 데이터를 직접 전송할 수는 없음
Amazon Kinesis Data Firehose를 구성하여 들어오는 데이터를 캡처한다. Kinesis Data Firehose 전송 스트림을 구성하여 변환을 수행하며 첫 번째 S3 버킷에 데이터를 저장하는 AWS Lambda 함수를 호출한다. Amazon Kinesis Data Streams를 구성하여 Kinesis Data Firehose에서 변환되지 않은 데이터를 가져와 두 번째 S3 버킷에 데이터를 전송한다.
=> Kinesis Data Firehose에는 요구 사항인 재시도 기능이 없음
6 . 추출, 변환 및 로드(ETL) 처리를 위해 AWS Glue를 사용하고 데이터 스토리지를 위해 Amazon S3 버킷을 사용하는 회사가 있다. AWS Glue 작업과 S3 버킷은 동일한 AWS 리전에 위치한다. 현재 AWS Glue 작업은 퍼블릭 인터넷을 통해 S3 버킷에 액세스한다. 그러나 회사에서는 AWS Glue 작업과 S3 버킷 간에 프라이빗 연결을 구성하려고 한다. 다음 중 가장 비용 효율적인 방식으로 이러한 요구 사항을 충족하는 단계의 조합은 무엇인가? (2개 선택.)
프라이빗 네트워크를 통해 S3 트래픽을 라우팅하는 S3 게이트웨이 VPC 엔드포인트를 만든다.
AWS Glue에서 네트워크 연결을 만들고 VPC와 서브넷을 지정한다.
=> AWS Glue 작업은 기본적으로 VPC에서 실행되지 않음
* 오답 정리
AWS Glue에 대한 프라이빗 액세스를 허용하는 AWS Glue VPC 인터페이스 엔드포인트를 만든다.
=> AWS Glue VPC 엔드포인트는 VPC 네트워크 내에서 AWS Glue API에 액세스하려는 경우에 사용
AWS PrivateLink를 사용하여 프라이빗 네트워크를 통해 S3 트래픽을 라우팅하는 S3 인터페이스 엔드포인트를 만든다.
=> 비용 오버헤드. 인터페이스 엔드포인트는 온프레미스 또는 다른 AWS 리전의 VPC에서 Amazon S3에 액세스하려는 경우에 유용
7 . 회사가 Amazon Elastic Container Service(Amazon ECS)에서 호스팅되는 분산 애플리케이션을 보유하고 있다. 애플리케이션은 Amazon CloudWatch Logs에 저장되는 애플리케이션 로그를 만든다. 회사는 로그 데이터를 쿼리하고 추세를 파악하고자 한다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
모든 로그 데이터를 CloudWatch Logs에 보관한다. CloudWatch Logs Insights를 사용하여 로그를 쿼리한다.
8 . 한 회사에서 개인 식별 정보(PII) 데이터를 감지하는 솔루션을 만들려고 한다. 솔루션은 다양한 AWS 데이터 집합과 파일 형식에서 PII 데이터를 식별할 수 있어야 한다. 솔루션은 데이터를 준비하는 동안 데이터 마스킹 기술을 제공해야 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가? (2개 선택.)
AWS Glue Studio를 사용하여 다양한 AWS 데이터 집합에 연결하면 PII를 감지하고 데이터를 마스킹할 수 있다.
AWS Glue DataBrew를 사용하여 다양한 AWS 데이터 집합에 연결하면 PII를 감지하고 데이터를 마스킹할 수 있다.
* 오답 정리
Amazon Macie를 사용하여 다양한 AWS 데이터 집합에 연결하면 PII를 감지하고 데이터를 마스킹할 수 있다.
=> Amazon S3에 저장된 민감한 데이터만 검색 가능. 데이터 마스킹 기술을 제공하지 않음.
Amazon Comprehend를 사용하여 다양한 AWS 데이터 집합에 연결하면 PII를 감지하고 데이터를 마스킹할 수 있다.
=> Amazon Comprehend는 영어 텍스트 문서의 데이터만 지원
9 . 한 회사는 Amazon S3에 저장된 데이터를 월별로 분석한다. 분석을 수행하기 위해 회사는 Amazon Athena 테이블을 사용하고 Amazon QuickSight를 사용하여 직접 쿼리한다. 데이터는 여러 위치에서 회사를 운영하면서 얻은 상세한 판매 수익 지표로 구성된다. 현재 데이터는 CSV 형식으로 운영 체제에서 Amazon S3으로 수집된다. 데이터는 간단한 날짜 및 시간 형식 지정 외에 다른 변환 없이 표준화 목적으로 수집된다. 데이터 볼륨의 상당한 증가 때문에 QuickSight의 보고서에 액세스하는 비즈니스 사용자가 느린 응답 시간을 보고했다. 데이터 엔지니어는 응답 시간을 개선하기 위한 솔루션을 구현해야 한다. 다음 중 최소한의 운영 노력으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
데이터를 위치 및 날짜별로 분할된 Apache Parquet 파일로 변환한다.
=> Athena에서 쿼리 완료 시간을 최적화하는 일반적인 최적화 기술이 두 가지가 있음. 첫 번째 기술은 Parquet 및 ORC와 같은 열 형식을 사용하는 것. 두 번째 기술은 데이터 소비에 맞춰 분할 전략을 사용하는 것
* 오답 정리
테이블 대신 Athena 뷰를 사용하여 QuickSight의 보고서에 필요한 분석을 실행한다.
=> 뷰는 최적화된 쿼리를 수행하는데 도움이 될 수 있음. 하지만 데이터 최적화가 먼저임
10 . 한 회사는 웹 서버에서 파일 업로드를 받은 다음 파일 서버에 파일을 저장하는 온프레미스 애플리케이션을 실행한다. 매일 밤 파일 서버의 태스크가 그날 업로드된 각 파일에 대해 AWS Lambda 함수를 한 번씩 호출한다. 회사에서는 파일을 받은 후 바로 파일 처리를 시작하고자 한다. 회사는 야간 태스크를 폐기하고자 한다. 다음 중 최소한의 노력으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon EventBridge에서 규칙을 생성한다. Lambda 함수를 EventBridge 규칙의 대상으로 지정한다. 파일 서버 태스크가 1분마다 실행되도록 수정한다. 새 파일을 업로드했을 때 PutEvents API를 사용하여 EventBridge 이벤트 버스에 이벤트를 배치한다.
* 오답 정리
Amazon S3에서 호스팅하는 새 버킷을 프록시하는 프록시 통합을 사용하여 Amazon API Gateway API를 생성한다. 웹 서버 파일 스토리지 대상을 온프레미스 파일 서버에서 S3 버킷으로 리디렉션한다. Lambda 함수를 대상으로 하는 S3 이벤트 알림을 만든다.
=> 가능하지만 파일 서버를 완전히 제거하는 상당한 아키텍처 변경 사항이 포함되어 있음
Amazon Simple Queue Service(Amazon SQS)의 표준 대기열을 생성한다. Lambda 함수를 대기열의 소비자로 지정한다. 파일 서버 태스크가 1분마다 실행되도록 수정한다. Amazon SQS ReceiveMessage API를 사용하여 새 파일을 업로드했을 때 Amazon SQS에서 Lambda로 메시지를 푸시하도록 한다.
=> Amazon SQS 대기열은 메시지를 푸시하지 않음
11 . 한 회사가 비즈니스에 적합한 새로운 데이터 스토리지 솔루션을 구현하려고 한다. 이 회사는 다양한 소스에서 원시 데이터를 수집한다. 데이터 엔지니어는 다양한 도구의 데이터를 지원할 수 있는 데이터 스토리지 솔루션을 구현해야 한다. 도구는 비즈니스 인텔리전스(BI) 대시보드에서 Apache Spark를 사용한 데이터 과학 프로그래밍에 이르기까지 다양하다. 스토리지는 내구성이 뛰어나고 비용 효율적이어야 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon S3에 데이터를 저장한다. Apache Parquet 또는 ORC 형식을 사용한다.
=> Parquet 및 ORC 열 형식을 데이터베이스 마이그레이션의 대상으로 사용할 수 있음. Parquet 및 ORC는 처음에 Apache Hadoop용으로 구축되어 있어 스파크와도 잘 동작함.
12 . JSON 형식의 데이터를 검색, 정리하고 스키마 일관성을 보장하기 위해 데이터 레이크를 구축해야 하는 데이터 엔지니어가 있다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Glue 크롤러를 사용하여 데이터를 자동으로 검색하고 AWS Glue 데이터 카탈로그를 채운다. AWS Glue DataBrew를 사용하여 데이터를 정리한다. AWS Glue 스키마 레지스트리를 사용하여 스키마 일관성을 유지한다.
* 오답 정리
AWS Glue 크롤러를 사용하여 데이터를 자동으로 검색하고 AWS Glue 데이터 카탈로그를 채운다. AWS Glue DataBrew를 사용하여 데이터를 정리한다. AWS Glue DynamicFrame을 사용하여 스키마 일관성을 유지한다.
=> DynamicFrame은 테이블과 유사하며 함수형 스타일과 SQL 연산을 지원하지만, 스키마 일관성 유지 기능은 없음
13 . 한 데이터 엔지니어가 Amazon S3에 저장된 데이터에서 생성된 테이블에 대해 쿼리하는 데 Amazon Athena를 사용한다. 테이블은 날짜 및 시간을 기준으로 분할된다. 테이블은 세부적으로 분할되지만 쿼리는 파티션의 하위 집합만 읽는다. 이 테이블의 파티션 메타데이터를 관리하는 가장 효율적인 방법은 무엇인가?
Athena를 사용하여 테이블의 파티션 프로젝션을 구성한다.
=> 파티션 프로젝션을 사용하지 않으면 Athena는 AWS Glue 데이터 카탈로그에 GetPartitions 호출을 수행하게 된다. 그러면 Athena는 Amazon S3의 접두사 목록을 반복적으로 수행하여 파티션 메타데이터를 수집하게 되므로 운영 오버헤드가 발생한다.
* 오답 정리
새 파티션을 추가할 때마다 Athena에서 MSCK REPAIR TABLE 명령을 실행한다.
=> S3를 스캔하고 테이블 메타데이터에 새로운 Hive 스타일 파티션을 추가할 수 있지만 Amazon S3의 접두사와 객체를 반복적으로 나열
14 . 다양한 온프레미스 파일 시스템에서 데이터 레이크로 데이터를 수집하려는 회사가 있다. 데이터 엔지니어는 데이터 수집 파이프라인을 구축하고 있다. 거의 실시간으로 데이터 레이크의 여러 Amazon S3 버킷 간에 데이터를 분할해야 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS DataSync를 사용하여 다양한 S3 버킷에 데이터를 업로드한다.
15 . 한 회사가 SaaS(서비스형 소프트웨어) 애플리케이션을 Amazon S3 데이터 레이크와 통합하여 데이터를 분석하려고 한다. 데이터 엔지니어는 SaaS 애플리케이션에서 Amazon S3로 데이터를 전송하는 솔루션을 설계해야 한다. 솔루션은 Amazon Athena에서 SQL을 사용하여 데이터를 사용할 수 있어야 한다. 회사는 전송 중에 데이터가 암호화되기를 원한다. 다음 중 어떤 단계를 조합해야 이러한 요구 사항을 충족할 수 있는가? (2개 선택.)
Amazon AppFlow를 사용하여 SaaS 애플리케이션과 Amazon S3 간에 데이터를 전송한다.
AWS Glue 크롤러를 사용하여 AWS Glue 데이터 카탈로그로 테이블을 채운다.
=> 데이터 수집 후, SQL 사용을 위해 데이터 카탈로그로 테이블 정의
16 . 한 전자 상거래 회사에서 일일 데이터 처리 Apache Spark 작업을 실행하여 판매 통계를 계산하고 데이터 분석가에게 알림을 보내려고 한다. 원시 데이터는 Amazon S3에서 사용할 수 있다. SQL을 통해 통계를 사용할 수 있어야 하며 통계는 Amazon S3에 유지한다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon EventBridge Scheduler를 사용하여 AWS Step Functions 워크플로를 매일 실행한다. 워크플로에 Amazon EMR Serverless 애플리케이션을 생성하는 작업을 포함한다. Spark 작업 실행을 시작하는 작업을 포함한다. 애플리케이션을 삭제하는 작업을 포함한다. AWS Glue 크롤러를 시작하는 작업을 포함한다. Amazon Simple Notification Service(SNS) 메시지를 게시하는 작업을 포함한다.
* 오답 정리
EC2 클러스터의 장기간 동안 실행되는 Amazon EMR에 Spark 작업을 실행하는 cron 작업을 예약한다. Spark 작업이 완료될 때 Amazon EventBridge 작업을 구성한다. EventBridge 작업에서는 AWS Lambda 함수를 호출해야 한다. Lambda 함수는 통계에 대해 AWS Glue 크롤러를 실행해야 하며 Amazon Simple Notification Service(SNS)를 사용하여 데이터 분석가에게 알려야 한다.
=> EC2 인스턴스를 유지 관리하는 데 추가적인 운영 오버헤드가 발생
17 . 매주 회사가 위치한 지역의 대기 질 변화를 분석하려는 회사가 있다. 이 회사는 Amazon QuickSight 대시보드에 결과를 제공하는 서버리스 데이터 파이프라인을 AWS에 구축했다. 하지만 대시보드 데이터가 매주 자동으로 새로 고침되지 않고 있다. 데이터 엔지니어가 데이터 파이프라인이 정기적으로 실행되지 않는 것을 발견한다. 데이터 엔지니어는 문제를 해결하기 위해 프레임워크를 오케스트레이션하고 일정을 잡아야 한다. 다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
오케스트레이션을 위해 AWS Step Functions를 사용한다. 매주 일정 예약을 위해 Amazon EventBridge 스케줄러를 사용한다.
* 오답 정리
매주 오케스트레이션 및 일정 예약을 위해 Amazon Managed Workflows for Apache Airflow(Amazon MWAA)를 사용한다.
=> S3 버킷, Amazon VPC 네트워크, Amazon MWAA 환경을 생성해야 함
18 . 한 데이터 엔지니어가 회사에 처음 입사하여 배정된 곳은 AWS Lake Formation 관련 팀이다. 데이터 엔지니어는 판매 데이터베이스에서 테이블을 관리해야 한다. 데이터 엔지니어는 새 데이터베이스를 만들려고 하지만 'NotAuthorized'의 보안 오류가 뜬다. 데이터 엔지니어가 이 문제를 해결하는 데 필요한 권한 또는 정책은 무엇인가?
데이터베이스 작성자 권한
=> 데이터베이스 작성자는 자신이 만든 데이터베이스에 대해서는 모든 데이터베이스 권한을 보유할 수 있다. 최소 권한 원칙
19 . 한 회사는 중앙 집중식 데이터 웨어하우스 AWS 계정에서 Amazon Redshift를 사용한다. 새 프로젝트에서 데이터 엔지니어는 데이터 웨어하우스에 저장된 일부 데이터에 대한 분석 파이프라인을 개발해야 한다. 프로젝트는 별도의 데이터 분석가 AWS 계정에서 구축된다. 클러스터에 저장된 테이블의 여러 열에는 개인 식별 정보(PII)가 포함되어 있다. 프로젝트 개발 단계 동안 데이터 분석가 AWS 계정에 PII에 대한 액세스 권한을 부여해서는 안 된다. 다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
데이터 분석가 AWS 계정의 새 Redshift 클러스터를 생성한다. AWS Lake Formation을 사용하여 기존 Redshift 클러스터에서 새로운 Redshift 클러스터로 PII가 아닌 열의 계정 간 관리형 데이터 공유를 생성한다.
* 오답 정리
UNLOAD 명령을 사용하여 PII가 아닌 열을 Amazon S3에 Apache Parquet 파일 형식으로 언로드한다. 데이터 분석가 AWS 계정에 대한 계정 간 S3 액세스 권한을 제공한다. 데이터 분석가 AWS 계정의 새 Redshift 클러스터로 데이터를 수집한다.
데이터 분석가 AWS 계정의 새 Redshift 클러스터를 생성한다. 계정 간 AWS Glue 작업을 만들어 기존 AWS 계정의 기존 Redshift 클러스터에서 새로 생성한 클러스터로 PII가 아닌 열만 수집한다.
UNLOAD 명령을 사용하여 PII가 아닌 열을 Amazon S3에 Apache Parquet 파일 형식으로 언로드한다. 데이터 분석가 AWS 계정에 대한 계정 간 S3 액세스 권한을 제공한다. 데이터 분석가 AWS 계정에 새 Redshift 클러스터를 생성하고 Amazon Redshift Spectrum을 사용하여 데이터에 액세스한다.
=> 복제 된 시점의 특정 데이터만 공유됨
20 . 한 전자 상거래 회사는 AWS Glue ETL(추출, 변환 및 로드)을 사용하여 데이터 파이프라인을 운영한다. 먼저 Amazon S3 버킷은 파이프라인에서 원시 판매 데이터를 저장한다. 그런 다음 AWS Glue는 데이터를 변환하여 Amazon Redshift 데이터 웨어하우스에 데이터를 로드한다. 분석 담당자는 SQL을 사용하여 Amazon Redshift를 쿼리하고 보고서를 생성한다.
회사는 상품 판매 테이블에서 선택된 열에 대해 수익률을 계산하는 비즈니스별 로직을 구현하려고 한다. 분석 담당자는 이 솔루션을 통해 더 나은 보고서를 작성할 수 있어야 한다.
다음 중 어떤 단계를 조합해야 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할 수 있는가? (2개 선택.)
Amazon Redshift에서 저장 프로시저(stored procedure)를 생성하여 비즈니스 로직을 구현한다.
분석 담당자에게 Amazon Redshift SQL 저장 프로시저(stored procedure)를 사용하도록 안내한다.
21 . 물류 회사에서 근무하는 한 데이터 엔지니어는 회사 차량의 플릿에 소비되는 연료 요구 사항을 계획해야 한다. 연료 요구 사항을 산정하는 기준은 운송할 패키지 수량과 운행 거리이다. 플릿의 각 차량은 운행한 거리 및 패키지 수량에 관한 데이터를 회사에 다시 보낸다. 따라서 회사는 차량의 플릿에서 대량의 원시 데이터를 수신하게 된다. 원시 데이터는 Amazon S3 버킷에 저장된다. 데이터 엔지니어는 원시 데이터를 읽고, 처리하고, 변환할 수 있는 ETL(추출, 변환, 로드) 파이프라인을 오케스트레이션하려고 한다. 그런 다음 분석과 보고를 위해 ETL 파이프라인으로 데이터를 저장해야 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Step Functions를 사용하여 ETL 파이프라인을 자동화한다. 데이터 스토리지용으로 Amazon S3을 사용한다. AWS Glue를 사용하여 데이터를 변환한다. 분석 및 보고용으로 Amazon Athena를 사용한다.
* 오답 정리
AWS Batch를 사용하여 ETL 작업을 병렬로 실행한다. AWS Glue를 사용하여 데이터를 변환한다. Amazon DynamoDB를 사용하여 변환된 데이터를 저장하고 분석과 보고에 활용한다.
=> AWS Batch는 시나리오에 언급된 데이터 스토리지, 변환 및 분석을 관리하는 데 필요한 기능을 제공하지 않음
DynamoDB는 NoSQL 데이터베이스이므로, 쿼리 및 분석을 자주 해야 하는 비정형 데이터를 저장하는 데 가장 적합한 솔루션이 아님
22 . 한 회사에서 Amazon S3에 데이터를 저장하려고 한다. AWS Organizations의 멤버가 아닌 AWS 계정에서 버킷을 생성해야 한다. 데이터 엔지니어는 데이터 보호를 구현해야 한다. 데이터 엔지니어는 데이터가 유지되고 모든 사용자가 1년 동안 데이터를 수정하거나 삭제하지 않도록 해야 한다. 솔루션은 보존 기간을 1년으로 설정할 수 있는 기능을 제공해야 한다.
최소한의 운영 오버헤드로 이러한 요구 사항을 충족하기 위해 데이터 엔지니어는 버킷을 어떻게 만들 수 있는가?
S3 객체 잠금을 사용하여 S3 버전 관리 및 규정 준수 모드를 사용한다.
* 오답 정리
S3 객체 잠금을 사용하여 S3 버전 관리 및 거버넌스 모드를 사용한다.
=> 거버넌스 모드를 사용하면 잠금을 제거할 수 있는 특정 AWS Identity and Access Management(AWS IAM) 권한이 있는 AWS 계정을 지정할 수 있습니다. 그러나 잠금을 제거하면 데이터가 수정되거나 삭제될 위험이 있음.
S3 객체 잠금을 사용하여 S3 버전 관리를 사용하고 법적 보존을 설정한다. 모든 보안 주체에 대한 쓰기 작업을 거부하도록 S3 버킷 정책을 생성한다.
=> 법적 보존은 보존 기간 없이 객체를 보존. 시나리오에 따르면 보존 기간이 필요
23 . 한 회사는 Amazon S3에서 데이터 레이크를 사용한다. 직원들은 모든 부서의 데이터에 액세스할 수 있다. 회사는 Amazon Athena를 사용하여 데이터 레이크에서 인사이트를 추출할 수 있다. 한 데이터 엔지니어는 계좌 번호와 같은 일부 민감한 데이터에 대한 액세스에 제한을 두는 보안 계층을 구현하려고 한다. 보안 규칙은 테이블의 메타데이터 카탈로그에 직접 구현되어야 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Lake Formation을 사용하여 데이터 레이크 액세스 제어를 관리한다. 데이터 레이크의 보안 정책을 구성한다.
=> Lake Formation은 메타데이터 카탈로그에 보안 규칙을 직접 구현
24 . 한 금융 회사가 운영 시스템의 판매 데이터를 Amazon S3으로 내보낸다. 회사는 이 데이터를 사용하여 판매 수익 추세를 월별로 분석한다. 데이터는 Apache Parquet 형식으로 Amazon S3에 수집된다. 데이터는 날짜별로 파티션이 분할된다. 데이터 엔지니어가 설계하는 솔루션을 사용하여 데이터 분석가가 데이터를 분석할 수 있어야 한다. 데이터 분석가는 데이터를 사용하여 월별 추세를 게시한다. 다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon Athena 테이블 및 뷰를 만들어 데이터 분석가가 데이터에 액세스하고 데이터를 쿼리한다. 데이터 분석가에게 Athena에 대한 액세스 권한을 제공하여 데이터를 쿼리한다.
25 . Amazon S3 데이터 레이크를 사용하는 회사가 있다. 소스 파일은 매일 데이터 레이크에 수집된다. 데이터 분석 팀은 들어오는 데이터를 처리하기 위해 Amazon S3에서 이벤트 기반 파이프라인을 구축해야 한다. 파이프라인은 데이터를 처리하고 다른 S3 버킷에 데이터를 저장하기 위해 AWS Lambda 함수를 사용한다. 팀은 들어오는 S3 버킷에 파일이 도착할 때마다 Lambda 함수가 호출되도록 하려고 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가? (2개 선택.)
들어오는 S3 버킷에 파일이 추가되는 소스 접두사에 대한 S3 이벤트 알림을 구성한다. Lambda 함수를 이벤트의 대상으로 추가한다.
들어오는 S3 버킷이 모든 S3 이벤트를 Amazon EventBridge로 전송하도록 구성한다. 파일이 S3 버킷에 추가될 때 Lambda 함수를 호출하도록 EventBridge 규칙을 구성한다.
26 . 한 회사에는 Amazon RDS PostgreSQL 데이터베이스에서 데이터를 준비하고 정리할 데이터 엔지니어가 필요하다. 회사는 데이터를 시각화에 사용하려고 한다. 매월 프로세스를 수행해야 하며 수정이 필요할 수 있다. 수정에서는 누락된 값을 입력하고, 데이터 집합을 결합하고, 데이터를 필터링한다. Amazon RDS 데이터베이스의 데이터 크기는 약 10GB이다. 다음 중 최소한의 프로그래밍 개발 시간으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Glue DataBrew에서 데이터 변환에 대한 작업을 생성한다.
* 오답 정리
Amazon EMR Apache Spark 작업을 개발하여 필요한 작업을 수행한다.
=> EMR 클러스터는 10GB의 데이터를 처리하기에는 크기가 너무 큼
Amazon Athena에서 SQL 쿼리를 정의하고 결과를 Amazon S3에 출력한다.
=> Athena는 데이터를 삭제하거나 누락된 값을 입력하기 위한 수정은 지원하지 않음
27 . 한 회사는 Amazon S3 버킷에 데이터를 저장한다. 이 회사는 새로운 데이터 수명 주기 및 보존 정책을 채택하는 중이다. 정책 정의는 다음과 같다.
- 쿼리 빈도가 잦은 데이터는 데이터의 사용 기간에 관계없이 즉시 사용할 수 있어야 한다.
- 90일 이내에 쿼리되지 않은 데이터는 최저 스토리지 비용으로 저장되어야 한다.
- 10년을 초과한 데이터는 삭제한다.
데이터 엔지니어는 수명 주기 및 보존 정책에 따라 데이터를 비용 효율적으로 저장할 수 있는 솔루션을 구성해야 한다.
다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
새 데이터는 Archive Access 계층을 기반으로 S3 Intelligent-Tiering 스토리지 클래스에 저장한다. Amazon Athena를 사용하여 Amazon S3에 있는 데이터를 해당 위치에서 쿼리한다. 10년 후에 데이터를 삭제하는 수명 주기 규칙을 구성한다.
=> S3 Intelligent-Tiering은 액세스 패턴이 변경되거나 알려지지 않은 경우 데이터를 가장 비용 효율적인 스토리지 클래스로 자동 이전
* 오답 정리
새 데이터는 S3 Infrequent Access 스토리지 클래스에 저장한다. Amazon Athena를 사용하여 Amazon S3에 있는 데이터를 해당 위치에서 쿼리한다. 데이터를 90일 후에 S3 Glacier Flexible Retrieval 스토리지 클래스로 마이그레이션하는 수명 주기 규칙을 만든다. 10년 후에 데이터를 삭제하는 수명 주기 규칙을 구성한다.
=> S3 Glacier Flexible Retrieval 스토리지 클래스에서 데이터 수명 주기를 관리하는 솔루션은 쿼리 빈도가 잦은 데이터를 90일 후에 아카이브 스토리지 클래스로 이전시킬 수 있음
새 데이터는 Amazon Redshift 클러스터에 저장한다. 오래된 데이터는 S3 Standard 스토리지 클래스에 언로드한다. 데이터를 3년 후에 S3 Glacier Deep Archive 스토리지 클래스로 마이그레이션하는 수명 주기 규칙을 만든다. 10년 후에 데이터를 삭제하는 수명 주기 규칙을 구성한다.
=> S3 Glacier Deep Archive 스토리지 클래스로 마이그레이션되면 12시간 이내에는 검색되지 않음
새 데이터는 Amazon RDS 데이터베이스에 저장한다. 데이터베이스 스냅샷을 생성하고 스냅샷을 S3 Standard 스토리지 클래스로 전송한다. 스냅샷을 3년 후에 S3 Glacier Flexible Retrieval 스토리지 클래스로 마이그레이션하는 수명 주기 규칙을 만든다. 10년 후에 데이터를 삭제하는 수명 주기 규칙을 구성한다.
=> RDS 스냅샷을 S3 Glacier로 직접 마이그레이션할 수 없음
28 . 회사가 암호화되지 않은 Amazon Redshift 클러스터를 보유하고 있다. 새로운 보안 규정에 따라 AWS Key Management Service(AWS KMS) 키로 클러스터를 암호화해야 한다. 또한 6개월마다 암호화 키를 교체해야 한다.
다음 중 최소한의 노력으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
기존 Redshift 클러스터를 수정한다. 기본값 Redshift AWS KMS 키를 사용하여 클러스터를 암호화한다. 필요에 따라 Redshift 콘솔에서 키를 교체한다.
=> 고객 관리형 키까지는 필요 없음. 운영 오버 헤드가 생김
29 . 데이터 분석을 수행하기 위해 SQL을 사용하여 다양한 소스의 데이터를 쿼리하고 조인해야 하는 데이터 엔지니어가 있다. 데이터는 JSON 및 Parquet 형식으로 Amazon Redshift 클러스터와 Amazon S3 버킷에 있다.
다음 중 최소한의 개발 노력으로 데이터의 두 소스를 함께 쿼리하기 위해 사용해야 하는 AWS 서비스는 무엇인가?
Amazon S3 데이터 집합의 외부 테이블을 사용하여 Amazon Redshift 클러스터에서 외부 스키마를 만든다. Amazon Redshift Spectrum을 사용하여 내부 및 외부 테이블의 데이터를 조인하는 SQL 쿼리를 만든다.
30 . 한 회사가 공급망의 각 단계에 제품의 프로덕션 레코드를 저장한다. 데이터 엔지니어는 Amazon S3 Standard 스토리지에 매일 CSV 형식으로 저장되도록 이러한 레코드를 구성한다. 그런 다음 데이터 엔지니어는 Amazon Athena를 사용하여 프로덕션 레코드를 기반으로 보고용 테이블을 생성한다. 또한 데이터 엔지니어는 공급망의 각 단계에 해당하는 보고서를 생성한다. 데이터 엔지니어는 효율성을 유지하기 위해 스캔하는 데이터의 양을 제한하고자 한다. 다음 중 가장 비용 효율적인 방식으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
CREATE EXTERNAL TABLE 스테이트먼트에서 PARTITIONED BY 절을 사용하여 파티셔닝 스키마를 지정한다.
31 . 대중교통 시스템의 원격 측정 데이터를 수집, 변환하고 Amazon DynamoDB 테이블에 저장하는 회사가 있다. 데이터 엔지니어는 데이터를 분석하기 위한 솔루션을 설계해야 한다. 지난 90일 동안의 데이터를 테이블에서 가져와 일일 분석을 위해 사용자 지정 웹 페이지에 표시해야 한다. 오래된 원격 측정 데이터는 데이터가 삭제되기 전 3년 동안 Amazon S3 데이터 레이크에 보관해야 한다. 3년의 보관 기간 동안 회사는 때때로 Amazon Athena를 사용하여 데이터를 쿼리할 것이다.
다음 중 가장 비용 효율적으로 이러한 요구 사항을 충족하는 단계의 조합은 무엇인가? (3개 선택.)
DynamoDB 테이블에서 TTL을 사용하여 90일 후 데이터를 삭제한다.
DynamoDB 스트림을 만든다. 시스템에서 삭제된 항목에 대한 Lambda 이벤트 소스 필터를 사용하여 AWS Lambda 함수를 스트림 소비자로 구성한다. 삭제된 항목을 S3 Standard-Infrequent Access(S3 Standard-IA) 스토리지 등급을 사용하여 데이터 레이크 버킷으로 전송하는 함수를 코딩한다.
3년 후 데이터를 삭제하도록 Amazon S3 수명 주기 정책을 구성한다.
32 . 한 회사는 Amazon S3을 사용하여 데이터를 CSV 형식으로 저장한다. AWS Glue 작업을 통해 AWS Glue 데이터 카탈로그를 채워 테이블을 생성하고 스키마를 정의한다. 그런 다음 두 번째 AWS Glue 작업으로 테이블의 데이터를 처리하고 Amazon Redshift의 해당 테이블로 데이터를 전송한다. 데이터 엔지니어가 Redshift 테이블을 검사한 결과 중복된 레코드를 발견했다. 데이터 엔지니어는 중복 레코드를 제거하는 솔루션을 어떻게 설계해야 하는가?
첫 번째 AWS Glue 작업 내에 스테이징 테이블을 생성한다. 스테이징 테이블에 데이터를 로드한다. 스테이징 테이블의 데이터를 Amazon Redshift의 데이터와 병합한다.
=> 스테이징 테이블에서 업데이트와 삽입을 조합하면 기존 테이블에 새 데이터를 효율적으로 추가 가능
Redshift는 단일 데이터 원본에서 테이블을 업데이트하기 위한 단일 병합 또는 upsert 명령을 지원하지 않습니다. 하지만 스테이징 테이블을 생성하여 병합 작업을 수행할 수 있음.
https://docs.aws.amazon.com/redshift/latest/dg/merge-create-staging-table.html
* 오답 정리
새 데이터를 유지하기 전 중복 레코드를 제거하기 위해 DataFrame dropDuplicates() API를 사용한다.
=> Redshift 테이블이 아닌 스테이징 테이블(Glue 에서 작업한 내용을 복사하기 때문)에서 중복 레코드를 제거한다. 대상 테이블과 스테이징 테이블을 병합하면 Redshift 테이블의 중복 레코드는 그대로 유지됨.
두 번째 AWS Glue 작업에서는 MySQL 데이터베이스에 이전 데이터를 삽입한다. COPY 명령을 사용하여 Amazon Redshift에 데이터를 업로드한다.
=> COPY 명령은 Amazon S3의 파일, DynamoDB 테이블 또는 하나 이상의 원격 호스트의 텍스트 출력에서 데이터를 로드
AWS Glue의 내장된 ResolveChoice 변환 기능을 사용하여 가장 최근 데이터를 선택하고 중복 레코드를 제거한다.
=> ResolveChoice는 DynamicFrame에 2개 이상의 서로 다른 데이터 유형이 포함된 열이 있을 때 선택한 데이터를 확인할 때 사용
33 . 다양한 외부 데이터베이스에서 개인 식별 정보(PII)가 포함된 데이터를 수집하는 솔루션이 필요한 회사가 있다. 데이터는 Amazon S3 데이터 레이크에 저장된다. PII 데이터는 회사의 PII 정책으로 인해 데이터가 수집된 후에는 권한이 없는 개인에게 노출될 수 없다. 모든 PII 데이터는 노출을 제한하기 위해 적절하게 식별되고 마스킹되어야 한다. 다음 중 PII 데이터를 식별하고 마스킹하기 위해 회사가 사용해야 하는 솔루션은 무엇인가?
AWS Glue 작업과 PII 감지 변환을 사용하여 데이터를 수집하고 마스킹한다.
* 오답 정리
EMR을 사용하여 데이터를 수집한다. 외부 테이블과 함께 Amazon Redshift 동적 데이터 마스킹을 사용하여 데이터를 마스킹한다.
=> DDM은 PII 데이터를 마스킹하고 보호하는 데 사용되므로 PII 데이터는 미리 식별해야 된다는 전제가 필요함
34 . 데이터를 기계 학습 모델에 수집하기 전에 데이터 집합의 품질과 일관성을 평가해야 하는 데이터 엔지니어가 있다. 데이터 집합에는 여러 소스의 고객 인구 통계 정보가 포함되어 있다. 데이터 엔지니어는 평가에 필요한 데이터 프로파일링을 위해 AWS Glue DataBrew를 사용하려 한다. 다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
데이터 품질 규칙을 사용하여 제약 조건을 정의하고 값의 유효성을 검사한다.
=> https://docs.aws.amazon.com/databrew/latest/dg/profile.data-quality-rules.html
* 오답 정리
비주얼 프로파일링을 사용하여 데이터의 그래프와 차트를 생성한다.
=> 데이터 값에 대한 제약 조건을 정의하여 일관성을 검증할 수 있는 기능을 제공하지 않음
35 . 한 데이터 엔지니어는 온프레미스 MySQL 서버에서 Amazon RDS 기반으로 실행되는 MySQL 데이터베이스로 데이터를 복제하도록 설정해야 한다. 솔루션은 기존 데이터를 마이그레이션하고 추후 데이터 변경 사항도 복제할 수 있어야 한다. 데이터 엔지니어는 AWS Database Migration Service(AWS DMS)를 사용하여 솔루션을 설정할 계획이다.
다음 중 최소한의 노력으로 이러한 요구 사항을 충족하는 단계는 무엇인가? (2개 선택.)
소스 데이터베이스에서 적절한 트랜잭션 로깅을 사용한다.
전체 로드 및 변경 데이터 캡처(CDC) 유형을 사용하는 지속적인 복제 태스크를 생성한다.
=> https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html
36 . 한 금융 회사가 Amazon S3, AWS Lambda 및 Amazon DynamoDB가 포함된 서버리스 데이터 처리 애플리케이션을 개발 중이다. 사용자는 Amazon S3에 CSV 파일을 업로드한다. 업로드하면 Lambda 함수가 호출된다. Lambda 함수는 몇 분 내에 CSV 파일의 데이터를 처리하고 DynamoDB 테이블에 데이터를 저장한다. 크기가 작은 파일은 제대로 처리되고 있다. 그러나 회사는 여러 대용량 파일을 테스트할 때 파일이 전부 처리되지 않는 점을 발견했다. 이 문제의 원인은 무엇인가?
대용량 파일 처리 시간이 길어져서 Lambda 함수의 시간이 초과되었다.
37 . AWS Step Functions 상태 머신이 데이터 처리를 수행하고 있다. AWS Glue 크롤러를 비동기식으로 시작하기 위한 새로운 요구 사항이 접수되었다. AWS Glue 크롤러는 Amazon S3 버킷의 데이터를 처리한다. 이를 수행하려면 데이터 엔지니어가 추가 태스크 상태를 추가하여 Step Function 상태 머신 정의를 수정해야 한다. 또한 두 가지 기존 상태 사이에 새 태스크 상태를 추가해야 한다.
다음 이러한 요구 사항을 충족하는 태스크 정의 필드는 무엇인가? (3개 선택.)
Resource 필드에는 'arn:aws:states:::aws-sdk:glue:startCrawler'가 포함되어야 한다.
Next 필드는 다음 태스크 상태 이름으로 설정해야 한다.
Type 필드는 태스크로 설정해야 한다.
* 오답 정리
Parameters 필드에는 'arn:aws:states:::aws-sdk:glue:startCrawler'가 포함되어야 한다.
=> 태스크 상태의 Parameters 필드는 페이로드 템플릿으로, 리소스 속성에 있는 해당 SDK Amazon Resource Name(ARN)으로 전달된다. 이 경우 Parameters 필드에는 크롤러 이름이 포함되어야 한다
상태 Name은 StartCrawler로 설정해야 한다.
=> 상태 Name 값은 기능에 영향을 주지 않음
38 . 한 회사가 A 계정의 AWS Glue 크롤러를 사용하여 동일한 계정의 Amazon S3 버킷에 연결하고 있다. AWS Glue 크롤러는 S3 버킷에 저장된 AWS CloudTrail 로그에 액세스하고 카탈로그를 작성한다. 데이터 엔지니어는 AWS Glue 크롤러가 B 계정의 S3 버킷에 저장된 VPC 흐름 로그에 액세스하고 카탈로그화할 수 있도록 파이프라인을 설정해야 한다.
다음 중 어떤 단계를 조합해야 이러한 요구 사항을 충족할 수 있는가? (2개 선택.)
A 계정에서 AWS Glue 크롤러의 구성 설정을 수정하여 VPC 흐름 로그가 포함된 B 계정의 S3 버킷을 지정한다.
B 계정에서 VPC 흐름 로그가 포함된 S3 버킷에 액세스하는 데 필요한 권한을 부여하는 IAM 역할을 구성한다. A 계정의 AWS Glue 크롤러에 역할을 연결한다.
* 오답 정리
B 계정에서 VPC 흐름 로그가 포함된 S3 버킷의 버킷 정책을 구성한다. 버킷에 액세스하는 데 필요한 권한을 AWS Glue 크롤러에 부여한다.
=> AWS Glue 크롤러를 구성할 때 버킷에 액세스할 권한을 부여하려면 IAM 역할이 있어야 함
B 계정에서 AWS Resource Access Manager(AWS RAM)를 사용하여 VPC 흐름 로그가 포함된 S3 버킷에 대해 AWS Glue 크롤러 액세스 권한을 부여한다.
=> AWS RAM을 사용하면 다른 AWS 서비스에서 생성 및 관리되는 리소스를 공유할 수 있다. 하지만 AWS RAM은 AWS Glue 크롤러와 Amazon S3을 리소스로 지원하지 않음
39 . Amazon Redshift에서 SUPER 데이터 유형을 사용하여 과거 판매 기록을 반정형 데이터로 저장하는 의류 회사가 있다. 데이터 분석가는 과거 판매 기록과 그 중첩된 데이터를 쿼리해야 한다.
데이터 분석가가 최소한의 노력으로 데이터를 쿼리하려면 어떻게 해야 하는가?
점과 괄호 표기법을 사용하여 데이터를 쿼리한다.
=> https://docs.aws.amazon.com/redshift/latest/dg/query-super.html
* 오답 정리
사용자 정의 함수(UDF)를 사용하여 데이터를 쿼리한다.
=> 일부 사용자 정의 UDF는 반정형 데이터 집합을 탐색하고 쿼리하는 데 도움이 됩니다. 그러나 사용자 지정 UDF는 특히 기본 제공 PartiQL과 비교했을 때 사용자 지정 함수를 작성하는 데 더 많은 노력이 필요
40 . Amazon S3 버킷에 Avro 파일로 저장된 기록 데이터를 분석하려는 회사가 있다. 전체 데이터 크기는 약 50TB이다. 데이터 크기는 매달 5TB씩 증가한다. 데이터는 부서, 날짜 및 고객 ID에 기반하여 계층 구조로 저장된다. 회사는 각 부서에서 해당 부서의 데이터에만 액세스할 수 있도록 데이터 액세스를 분리하려고 한다. 데이터는 월말에 보고서를 생성하기 위해서만 쿼리한다. 보고서는 날짜 및 고객 ID별로 필터링해야 한다. 다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
각 부서의 S3 접두사 각각을 가리키는 여러 테이블을 AWS Glue 데이터 카탈로그에 만들고 파티셔닝 스키마를 정의한다. AWS Lake Formation을 구성하고 부서별로 사용자에게 테이블에 대한 권한을 부여한다. 월말에 Amazon Athena를 사용하여 쿼리를 실행한다.
* 오답 정리
AWS Identity and Access Management(AWS IAM) 권한을 사용하여 접두사를 기준으로 각 부서에 S3 데이터에 대한 액세스 권한을 부여한다. 월말에 Amazon S3 Select를 사용하여 보고서 생성을 위해 버킷의 데이터를 쿼리한다.
=> S3 Select는 필요한 데이터의 하위 집합만 검색할 수 있고, Avro 파일과 호환되지 않으며 여러 파일을 쿼리할 수 없다.
41 . 반려동물 위탁 서비스를 제공하는 회사가 Amazon Redshift를 데이터 웨어하우스로 사용한다. 회사는 3개의 별도 테이블에 데이터를 저장하고 있다. 테이블에 포함되는 사항은 다음과 같다.
- Owner라는 반려동물 보호자 테이블
- Pets라는 반려동물 정보 테이블
- Care라는 관리 지침 테이블
Owner 테이블은 크기가 작고 데이터 변경이 거의 없다. Pets와 Care 테이블은 크기가 크고 데이터가 자주 변경된다. Pets와 Care 테이블은 PetID를 기반으로 조인된다. Pets와 Owner 테이블은 OwnerID를 기반으로 조인된다.
회사는 3개 테이블 모두의 데이터가 필요한 쿼리를 많이 실행하고 있다. 데이터 엔지니어는 쿼리 조인 성능을 최적화하기 위해 분산 스타일을 수동으로 구성해야 한다. 또한 데이터 엔지니어는 데이터 스토리지를 가능한 한 적게 유지해야 한다.
다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Owner 테이블에 ALL 분산 스타일을 사용한다. Pets 및 Care 테이블에 KEY 분산 스타일을 사용한다.
=> 자주 조인하는 테이블은 KEY 분산을 통해 각 테이블의 관련 데이터를 물리적으로 함께 저장,
크기가 작고 정적인 테이블들은 ALL 분산 권장, EVEN 분산은 무작위로 배치되며 함께 저장되지 않음 JOIN 과 어울리지 않음
42 . 한 회사에서 데이터 집약적인 워크로드를 AWS Lambda 함수로 마이그레이션하려고 한다. 기존 워크로드는 250GB의 탑재된 데이터 볼륨을 참조한다. 이 회사는 Lambda용 코드를 리팩터링하는 동안 변경 사항을 가능한 한 최소화하고자 한다.
다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon Elastic File System(Amazon EFS) 파일 시스템 및 액세스 포인트를 구성한다. 참조 데이터를 파일 시스템에 업로드한다. 액세스 포인트에서 읽고 쓰도록 Lambda 함수를 구성한다.
=> https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html
* 오답 정리
참조 데이터를 Lambda /tmp 디렉터리에 업로드한다. /tmp에서 읽고 쓰도록 Lambda 함수를 구성한다.
=> Lambda는 /tmp 디렉터리 형태로 각 함수 호출에 대한 로컬 스토리지를 제공한다. 최대 용량이 10GB인 임시 스토리지용 디렉터리를 사용할 수 있음.
43 . 날씨 패턴을 추적하는 회사에서 전 세계에 많은 센서를 배포했다. 센서에서는 날씨 데이터가 포함된 1KB XML 파일이 지속적으로 생성된다. 모든 센서의 데이터는 15분마다 집계되어 Amazon S3 버킷에 전송된다. 버킷의 데이터는 접두사 형식 YYYYY-MM-DD-HH-mm으로 저장된다.
이 회사는 Amazon Redshift를 사용하여 최신 날씨 데이터가 반영된 대시보드를 지속적으로 업데이트하고자 한다. 데이터 엔지니어는 Amazon Redshift에 데이터를 로드하는 수집 솔루션을 설계해야 한다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
데이터가 S3 버킷으로 전송된 후에 시작되는 AWS Glue 예약 추출, 변환 및 로드(ETL) 작업을 구성한다. XML 파일을 변환하고 데이터를 Amazon Redshift로 출력하는 작업을 구성하는 데 ‘작은 파일 그룹화’ 및 ‘작업 북마크’ 기능을 사용한다.
=> ‘작은 파일 그룹화’ 기능을 사용하면 여러 개의 작은 파일들을 모아 한 꺼번에 처리 가능하며, ‘작업 북마크’ 기능을 사용하면 Amazon S3에서 이전에 처리된 데이터가 다시 처리되어 중복 생성되지 않도록 할 수 있음
* 오답 정리
S3 버킷에서 XML 파일을 수집하도록 Amazon Kinesis Data Firehose 전송 스트림을 설정한다. XML 파일을 변환하고 데이터를 Amazon Redshift로 출력하도록 스트림에서 처리 중인 AWS Lambda 함수를 구성한다.
=> S3 버킷에서 데이터를 수집하도록 Firehose 스트림을 구성할 수 없음
https://docs.aws.amazon.com/firehose/latest/dev/basic-write.html
XML 파일이 S3 버킷으로 전송된 후에 시작되는 Redshift 예약 SQL 쿼리를 만든다. S3 버킷에서 정규 표현식이 $YYYY-MM-DD-HH-mm인 SQL COPY 명령을 사용하여 데이터를 로드한다.
=> COPY 명령어로 XML 파일은 복사 불가능
https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html
44 . AWS Glue DynamicFrame을 사용하여 추출, 변환 및 로드(ETL) 작업을 만든 데이터 엔지니어가 있다. 소스 AWS Glue 테이블은 세부적으로 파티셔닝되어 있다. 테이블은 쿼리 향상을 위해 파티션 인덱스를 사용한다. 쿼리 성능을 높이고 비용을 절감하기 위해 ETL을 최적화하려면 데이터 엔지니어는 DynamicFrame에 필요한 데이터만 나열하고 읽어야 한다. 또한 엔지니어는 테이블 파티션 인덱스를 사용해야 한다.
다음 중 가장 비용 효율적인 방식으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
DynamicFrame을 만들 때 서버 측 필터링을 구현하기 위해 카탈로그 파티션 조건자를 사용한다.
=> catalogPartitionPredicate 옵션을 사용한 서버 측 필터링은 AWS Glue 데이터 카탈로그의 파티션 인덱스를 활용
* 오답 정리
파티션 메타데이터에 직접 필터를 적용하기 위해 푸시다운 조건자를 사용하여 파티션을 사전 필터링한다.
=> push_down_predicate 옵션은 카탈로그의 모든 파티션들을 나열한 후, 해당 파티션들의 파일들을 나열하기 전에 필터링 하는 옵션임. 세부적으로 파티셔닝이 되어 있다면 성능 저하 유발
DynamicFrame을 만들 때 Amazon S3 Glacier Deep Archive 스토리지 등급을 제외한다.
=> AmazonS3Exception: The operation is not valid for the object's storage class. 오류 해결 방법
원본 테이블의 모든 입력 파일을 단일 인메모리 파티션으로 그룹화한 다음 직접 쿼리한다.
=> S3 데이터 스토어에서 파일을 읽을 때 파일을 그룹화하도록 속성을 설정할 수 있다. 이러한 속성을 통해 각 ETL 태스크는 입력 파일 그룹을 단일 인메모리 파티션으로 읽을 수 있다. groupSize를 상당히 크게 정의하면 클러스터의 활용도가 떨어질 수 있다. 이 솔루션은 각 ETL 태스크가 여전히 S3 데이터 스토어에서 파일을 나열하고 읽을 수 있기 때문에 Amazon S3에서 직접 읽으며 많은 수의 작은 파일이 있는 경우에 유용
45 . 한 데이터 엔지니어는 AWS Glue 작업을 사용하여 Amazon S3에서 많고 작은 JSON 파일을 읽는다. 그 다음 작업에서는 분석 쿼리를 위해 파일을 변환한다. 현재 작업에서는 많고 작은 파일을 Amazon S3으로 출력한다. 데이터 엔지니어는 작업에서 더 큰 파티션을 만들려고 한다. 솔루션으로 인해 작업의 런타임이 크게 늘어나서는 안 된다.
다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Glue 작업의 groupSize 파라미터를 더 큰 값으로 설정한다.
=> groupSize 파라미터를 사용하여 더 큰 파티션을 생성. 많은 수의 작은 파일을 읽을 때 특히 유용
* 오답 정리
Amazon S3에 쓰기 전에 AWS Glue 작업에서 재분할을 수행한다.
=> 전체 셔플을 수행하며 작업의 런타임이 크게 증가
boundedSize 파라미터를 사용하여 AWS Glue 작업에서 워크로드 분할을 구성한다.
=> AWS Glue ETL(추출, 변환 및 로드) 작업에서 실행되는 데이터의 양을 제어. 작업에서 너무 많은 데이터를 처리하여 메모리 부족 오류가 발생하는 경우를 방지
46 . Amazon Simple Queue Service(Amazon SQS) 대기열에서 JSON 메시지로 배송 주문을 수신하는 자동차 회사가 있다. 이 회사는 주문 관리를 위해 AWS Step Functions 워크플로를 사용한다. 데이터 엔지니어는 대기열에서 워크플로로 주문을 전달하는 솔루션을 만들어야 한다. 차량 20대 미만인 주문은 폐기해야 한다.
다음 중 최소한의 개발 노력으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon EventBridge를 사용하고 EventBridge Pipes로 새 파이프를 만든다. SQS 대기열을 소스로 선택한다. 이벤트 패턴을 추가하여 주문을 필터링한다. 관리 워크플로우를 대상으로 선택한다.
=> https://docs.aws.amazon.com/eventbridge/latest/userguide/pipes-concepts.html
47 . 제품 리뷰를 저장하기 위해 Amazon DynamoDB 테이블을 설계해야 하는 전자 상거래 회사가 있다. 각 리뷰에는 제품 ID, 사용자 ID, 평점, 리뷰 텍스트 및 타임스탬프가 포함된다.
기본 액세스 패턴은 다음과 같다.
- 최신 리뷰를 기준으로 정렬된 제품에 대한 모든 리뷰를 검색한다.
- 특정 제품에 대한 최신 리뷰를 검색한다.
다음 중 이러한 요구 사항을 가장 효율적으로 충족하는 스키마 디자인은 무엇인가?
테이블 파티션 키: 'ProductID'
테이블 정렬 키: 'ReviewTimestamp'
=>
최신 리뷰를 기준으로 정렬되어 있다 -> 리뷰가 Sort Key 이다.
특정 제품 검색 시 리뷰도 같이 보고 싶다 -> 제품 키가 Partition Key 이다.
48 . 한 회사에서 Amazon S3을 사용하여 AWS에 데이터 레이크를 구축했다. 하지만 데이터를 분류하는 메타데이터가 없다. 데이터 엔지니어는 데이터 레이크 테이블과 열을 카탈로그화하여 데이터 레이크를 보다 잘 구성할 수 있는 자동화 프로세스를 만들려고 한다. 잠재적 스키마 변경 사항을 지원하고 변경 내역을 기록하는 솔루션이 필요하다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Glue 크롤러를 사용하여 Amazon S3의 데이터를 스캔하고 AWS Glue 데이터 카탈로그에 테이블과 열을 생성한다. 크롤러가 정기적으로 실행되도록 예약하여 스키마의 모든 변경 사항을 식별하고 새 버전의 테이블을 생성한다.
=> AWS Glue 크롤러를 실행 예약할 수 있음
49 . 한 회사는 규정 준수를 위해 특정 보존 한도에 도달한 후 Amazon S3 데이터 레이크에서 레코드를 삭제해야 한다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Apache Iceberg 테이블 형식을 사용하여 테이블을 구성한다. Amazon Athena를 사용하여 레코드를 삭제한다.
=> Iceberg는 비즈니스 요구 사항이 변경될 때 레코드를 삭제하는 데 사용할 수 있는 트랜잭션 데이터 레이크 테이블을 제공
* 오답 정리
Delta Lake 테이블 형식을 사용하여 테이블을 구성한다. Amazon Redshift Serverless에서 외부 테이블을 사용하여 레코드를 삭제한다.
=> Amazon S3 데이터 레이크의 원자성, 일관성, 격리성 및 내구성(ACID) 트랜잭션을 지원
Delta Lake 테이블과 상호 작용하는 Redshift Spectrum은 읽기 전용이며 삭제 작업을 지원하지 않음
Apache Hudi 테이블 형식을 사용하여 테이블을 구성한다. Amazon Athena를 사용하여 레코드를 삭제한다.
=> Athena는 삭제 작업을 수행하기 위한 Hudi 테이블 쓰기는 지원하지 않음
Apache Iceberg 테이블 형식을 사용하여 테이블을 구성한다. Amazon Redshift 프로비저닝 클러스터가 있는 외부 테이블을 사용하여 레코드를 삭제한다.
=> Iceberg 테이블과 상호 작용하는 Redshift Spectrum은 읽기 전용이며 삭제 작업을 지원하지 않음
50 . 한 글로벌 에너지 회사가 건물의 다양한 장비에서 센서 측정값을 캡처하여 Amazon DynamoDB에 측정값을 저장하는 솔루션을 개발 중이다. 여러 지역에 건물이 있다. 각 건물에는 여러 개의 장비가 있다. 각 장비에는 측정값을 캡처하는 센서가 여러 개 있다. 센서는 10분마다 새로운 값을 내보낸다. 데이터 엔지니어는 테이블 내에서 복합 키를 사용하려고 하는데, 여기서 파티션 키는 BUILDING_ID이고 정렬 키는 DATETIMESTAMP이다.
애플리케이션 개념 증명을 테스트하는 동안 데이터 엔지니어는 불균형한 데이터 액세스 패턴을 발견했다.
다음 중 불균형한 데이터 액세스 패턴을 해결할 솔루션은 무엇인가?
처리량 균형을 맞추기 위해 SENSOR_ID와 같이 더 좁은 파티션 키를 사용하여 새 DynamoDB 테이블을 만든다.
=> DynamoDB 테이블의 모든 파티션은 초당 최대 3,000개의 읽기 단위와 초당 1,000개의 쓰기 단위의 용량을 제공하도록 설계. I/O 요청의 균형이 맞지 않으면 ‘핫’ 파티션이 발생하여 I/O 용량이 제한되고 비효율적으로 사용될 수 있다. 요청 내에서 일관성을 높이기 위해 더 고유한 파티션 키를 변경하는 솔루션으로 ‘핫’ 파티션을 방지할 수 있다
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-uniform-load.html
* 오답 정리
로컬 보조 인덱스(LSI)로 새 DynamoDB 테이블을 생성하여 처리량 균형을 조정한다.
=> LSI는 기본 테이블의 용량을 공유
51 . Amazon Elastic Kubernetes Service(Amazon EKS)에서 인력 관리 시스템을 운영하는 회사가 있다. 이 관리 시스템은 여러 클러스터와 관리형 노드 그룹에서 수백 개의 포드로 실행되는 수십 개의 마이크로서비스로 구성되어 있다. 이 회사는 모니터링과 디버깅을 향상하려 한다. 회사는 마이크로서비스에 대한 더 나은 가시성을 원한다. 데이터 엔지니어는 중앙 위치에서 낮은 수준의 지표와 로그 데이터를 볼 수 있는 솔루션을 설계해야 한다. 회사는 쿼리 결과를 거의 실시간으로 시각화하려 한다.
다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
Amazon CloudWatch Container Insights를 사용하여 마이크로서비스의 지표와 로그를 CloudWatch로 수집한다. 로그를 전송 스트림으로 전송하는 Amazon Kinesis Data Firehose 구독 필터를 생성한다. 스트림을 Amazon OpenSearch Service에 연결한다.
=> CloudWatch Container Insights는 클러스터, 포드, 컨테이너 수준에서 컨테이너 관련 지표를 수집
52 . 2PB의 데이터에 해당하는 과거 뉴스 기사를 찾을 때 관련성 있는 결과를 생성하기 위해 효율적인 내부 검색 엔진이 필요한 글로벌 미디어 회사가 있다. 데이터 엔지니어가 기사의 대규모 인덱스를 호스팅하기 위해 Amazon OpenSearch Service 도메인을 준비하고 있다. 이 검색 엔진은 연중무휴 24시간 내내 사용되어야 한다. 데이터 엔지니어는 성능과 비용이 모두 최적화된 인덱스 스토리지 솔루션을 선택해야 한다.
다음 중 이러한 요구 사항을 충족하는 스토리지 솔루션은 무엇인가?
인덱스를 저장할 도메인에 UltraWarm 데이터 노드를 추가하고 사용한다.
=> UltraWarm은 최대 3PB까지 확장 가능. 캐싱을 사용하여 데이터를 검색할 때 빠른 대화형 환경을 보장. 핫 스토리지와 콜드 스토리지의 절충안
* 오답 정리
도메인의 핫 데이터 노드에 인덱스를 저장한다.
=> 핫 스토리지는 클러스터 노드에 연결된 블록 스토리지에 데이터를 보관. Amazon EBS 볼륨 유형 중에서 선택. 가장 비쌈
인덱스 상태 관리(ISM)를 사용하여 일정에 따라 스토리지 등급 간에 인덱스를 이동한다.
=> 연중무휴 24시간 내내 인덱스를 쿼리. 최적화 불필요
53 . 한 공급망 회사가 Amazon Redshift에서 데이터 웨어하우스를 운영하고 있다. 회사는 2주마다 업데이트되는 인벤토리 데이터를 사용하여 분석하려고 한다. 데이터는 공급망의 새 인벤토리 항목의 레코드로 구성되어 있다. 또한 데이터는 재배치된 항목 또는 상태가 업데이트된 항목의 변경 사항이 반영된 레코드로 구성되어 있다. 회사는 예측 목적으로 과거 내역을 상세히 분석할 인벤토리 데이터가 필요하다. Amazon Redshift에는 중복 레코드가 없어야 한다. 데이터 엔지니어는 데이터 정확도를 확인하기 위해 업데이트 프로세스를 구성해야 한다.
다음 중 가장 효율적으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
2주마다 임시 스테이징 테이블을 생성하고 Amazon Redshift에서 MERGE 작업을 수행한다. 일치하는 항목이 감지되지 않으면 INSERT 작업을 수행하여 값을 삽입하는 조건을 지정한다. 일치하는 항목이 감지되면 UPDATE 작업을 수행하여 값을 업데이트하는 조건을 지정한다.
=> Amazon Redshift는 임시 스테이징 테이블을 사용하는 MERGE 작업을 지원
* 오답 정리
Drop Duplicates 변환과 함께 AWS Glue 작업을 사용하여 2주마다 Amazon Redshift에 새 데이터를 수집한다.
=> Drop Duplicates를 사용하면 데이터 원본에서 가져온 중복 행의 지정된 조건에 따라 필드를 제거하거나 일치할 수 있지만, 글루 임시 테이블만 변환됨
UNLOAD 작업을 수행하여 기존 데이터를 Amazon S3으로 언로드한다. 그런 다음 2주마다 DELETE 작업을 수행하여 클러스터에서 데이터를 삭제한다. Amazon S3에 새 데이터를 수집한다. Apache Hudi가 설치된 Amazon EMR 클러스터를 생성한다. 2개의 기존 데이터 집합을 기반으로 UPSERT 작업을 사용하여 새 데이터 집합을 만든다. 새 데이터 집합을 Amazon Redshift에 수집한다.
=> 운영 오버헤드
54 . 한 회사는 Amazon Redshift를 사용하여 과거 결제 데이터를 저장한다. 데이터는 내부 사용자가 사용할 수 있어야 하지만, 외부 비즈니스 파트너에게 특정 민감한 데이터를 마스킹해야 한다. 민감한 데이터는 전체 열 또는 다른 열의 값을 기반으로 하는 개별 셀일 수 있다. 내부 사용자는 자체 SQL 쿼리를 외부 비즈니스 파트너와 공유한다.
다음 중 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
특정 열 및 데이터에 대해 Amazon Redshift 동적 데이터 마스킹(DDM) 정책을 생성한다. 외부 비즈니스 파트너의 역할에 마스킹 정책을 연결한다.
=> Amazon Redshift DDM은 쿼리가 수행될 때 데이터를 스크램블. 다른 열의 값을 기반으로 하는 복잡한 마스킹 규칙을 제공
* 오답 정리
Amazon Redshift 쿼리 편집기를 사용하여 특정 데이터를 선택, 필터링, 마스킹하고 새 테이블에 복사한다. 기존 테이블에 액세스하여 읽을 수 있는 외부 비즈니스 파트너의 권한을 거부한다.
Amazon Redshift에서 읽고, 민감한 데이터를 마스킹하고, Amazon Redshift의 새 테이블에 작성하도록 AWS Glue Studio의 작업을 정의한다. 1시간에 한 번 실행되도록 작업을 예약한다. 기존 테이블에 액세스하여 읽을 수 있는 외부 비즈니스 파트너의 권한을 거부한다.
=> SQL 쿼리는 기존 테이블 이름을 사용하므로 이 솔루션은 요구 사항을 충족하지 못 함
55 . 한 데이터 엔지니어가 데이터를 수집하고, Amazon EMR로 데이터를 처리하고, Amazon Redshift에 데이터를 저장하는 데이터 파이프라인을 만들었다. 데이터 엔지니어는 데이터 파이프라인을 모니터링해야 한다.
다음 중 이 요구 사항을 가장 효율적인 방법으로 충족하는 솔루션은 무엇인가?
Amazon CloudWatch 경보를 설정하여 데이터 파이프라인의 성능 문제나 실패를 모니터링하고 알림을 받는다.
* 오답 정리
Amazon CloudWatch 로그 인사이트를 구현하여 로그를 분석하고 데이터 파이프라인을 모니터링한다.
=> CloudWatch 로그 인사이트는 기본 모니터링 솔루션보다는 로그 데이터를 심층 분석하여 특정 문제를 감지한 후 진단하기 위한 도구
56 . AWS에 인프라를 구축하는 스타트업 회사가 있다. 이 회사는 주로 Amazon S3에 데이터를 저장한다. 회사는 Amazon Athena를 사용하여 데이터를 쿼리한다. 최근 회사는 Apache Spark와 기계 학습 라이브러리로 데이터를 처리하기 위해 Amazon EMR을 구현했다.
회사가 성장하고 데이터가 더욱 복잡해짐에 따라 회사는 계속해서 AWS 서비스를 추가로 구현하고 있다. 회사는 Amazon S3 외에도 일부 데이터를 Hadoop 분산 파일 시스템(HDFS)에 저장한다. 회사에는 공통 데이터 카탈로그가 없다. 일부 데이터는 AWS Glue 데이터 카탈로그에 카탈로그화되어 있고, 나머지 데이터는 Apache Hive 메타스토어에 카탈로그화되어 있다. 데이터 엔지니어링 팀은 데이터를 정리하는 솔루션을 설계해야 한다. 데이터 엔지니어링 팀은 솔루션에서 데이터 내구성에 우선 순위를 두어야 한다.
다음 중 최소한의 마이그레이션 노력으로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
모든 데이터를 Amazon S3로 이동하여 통합 데이터 원본을 만든다. 데이터 카탈로그를 사용하도록 Amazon EMR을 구성한다. 데이터 카탈로그에 모든 데이터를 등록한다. 계속해서 Athena와 Amazon EMR 도구를 사용하여 데이터를 처리한다.
=> EMR 도구는 EMR 파일 시스템(EMRFS)을 통해 Amazon S3에 저장한 데이터에 직접 액세스할 수 있음. 데이터 카탈로그는 메타데이터 스토어 인프라를 관리할 필요 없이 여러 소스의 메타데이터를 등록 가능
* 오답 정리
모든 데이터를 Amazon S3로 이동하여 통합 데이터 원본을 만든다. 데이터 카탈로그를 사용하도록 Amazon EMR을 구성한다. 데이터 카탈로그에 모든 데이터를 등록한다. Athena 쿼리를 Spark SQL로 마이그레이션한다. Amazon EMR 도구를 계속 사용하여 데이터를 처리한다.
=> PrestoSQL과 Athena SQL은 매우 유사하다. 하지만 Spark SQL은 Presto에 기반하지 않는다.
HDFS를 데이터의 단일 소스로 사용하는 솔루션은 Amazon EMR을 사용하는 HDFS가 일시적이기 때문에 모범 사례가 아니다.
57 . 온프레미스 Apache Hadoop 클러스터를 사용하여 다양한 배치 처리 작업을 실행하는 회사가 있다. 이 작업은 Apache Spark, Apache Hive, Presto, TensorFlow, Apache MXNet 등 다양한 프레임워크와 언어에서 실행된다. 이 회사에서는 저장되는 데이터의 양이 크게 증가할 것으로 예상하고 있다. 회사는 스토리지를 확장성을 위해 AWS로 마이그레이션하려고 한다. 회사는 데이터의 내구성을 높이고 기존 작업을 재사용하려 한다.
다음 중 이러한 요구 사항을 가장 비용 효율적으로 충족하는 솔루션은 무엇인가?
Amazon EMR로 마이그레이션한다. 모든 데이터를 Amazon S3에 저장한다. 작업을 실행해야 할 때 임시 EMR 클러스터를 시작한다.
=> 배치 작업에 임시 클러스터를 사용하는 것이 모범 사례
* 오답 정리
Amazon EMR로 마이그레이션한다. 모든 데이터를 Hadoop 분산 파일 시스템(HDFS)에 저장한다. 더 많은 스토리지가 필요한 경우 클러스터를 확장하여 코어 노드를 추가한다.
=> Amazon EMR의 HDFS는 일시적. 클러스터가 종료되면 활성 데이터를 잃을 수 있음
Amazon Redshift로 마이그레이션한다. Amazon Redshift RA3 인스턴스 및 Amazon S3와 Amazon Redshift를 함께 사용하여 스토리지 비용을 최적화한다.
=> 다양한 프레임워크와 언어로 광범위한 배치 처리 작업을 실행하는 데 Amazon Redshift를 사용하지는 않을 것
58 . 한 데이터 엔지니어 팀이 방금 고객으로부터 데이터 분석을 시연하기 위한 CSV 파일을 받았다. 팀은 고객에게 데이터를 시각화하는 방법을 보여 주고자 한다. 팀은 파일을 직접 업로드하고 Amazon QuickSight에서 검토한다. 그런데 팀은 데이터가 올바른 형식으로 지정되지 않은 점을 발견했다. 따라서 QuickSight에서 데이터를 시각화할 준비가 되지 않았다.
팀에서 운영 오버헤드를 최소화하면서 이렇게 형식이 잘못 지정된 데이터를 시각화하려면 어떻게 해야 하는가?
QuickSight 기본 함수를 사용하여 데이터를 포맷하고 변환한다. QuickSight를 사용하여 데이터를 시각화한다.
=> QuickSight에는 형식이 잘못 지정된 데이터를 포맷하고 변환하는 기능이 내장되어 있음.
59 . Amazon S3 버킷에서 데이터를 읽으려는 AWS Glue 작업이 있다. 하지만 몇 분 후 메모리 부족 오류가 발생하여 AWS Glue 작업이 실패한다.
다음 중 이러한 오류를 해결할 수 있는 솔루션은 무엇인가?
AWS Glue 작업에서 푸시다운 조건자를 정의한다.
=> 푸시다운은 소스에 더 가까운 데이터를 검색하는 데 사용할 수 있는 최적화 기법
60 . Amazon RDS PostgreSQL 데이터베이스에 트랜잭션 테이블이 있는 회사가 있다. 판매 트랜잭션은 온종일 트랜잭션 테이블에 추가된다. 데이터 엔지니어는 보고 목적으로 매일 밤 트랜잭션 테이블의 새로운 판매 데이터를 Amazon S3에 로드하는 프로세스를 만들어야 한다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
RDS PostgreSQL 데이터베이스에 연결하는 AWS Glue 작업을 만든다. 트랜잭션 날짜 필드에 AWS Glue 북마크를 사용하여 RDS PostgreSQL 데이터베이스 테이블에서 새 데이터를 읽고 Amazon S3에 데이터를 쓴다. 매일 밤 실행되도록 작업을 예약한다.
* 오답 정리
지속적인 복제(변경 데이터 캡처(CDC))를 위해 AWS Database Migration Service(AWS DMS) 태스크를 구성한다. RDS PostgreSQL 데이터베이스 테이블을 소스로 선택하고 Amazon S3를 대상으로 선택한다.
=> 운영 오버헤드 증가. 매일 밤 데이터를 로드한다는 요구 사항은 솔루션이 예약된 데이터 로드를 사용해야 하며 지속적인 복제나 실시간에 가까운 수집이 필요하지 않음을 의미
전체 로드를 위한 AWS Database Migration Service(AWS DMS) 태스크를 구성한다. RDS PostgreSQL 데이터베이스 테이블을 소스로 선택하고 Amazon S3를 대상으로 선택한다. Amazon EventBridge를 사용하여 이 작업이 매일 밤 실행되도록 예약한다.
=> 태스크가 전체 로드에 대해 구성된 경우 매일 밤 새 데이터뿐만 아니라 전체 테이블 데이터를 받게 됨
Amazon RDS StartExportTask API 작업을 사용하여 데이터베이스 테이블의 RDS PostgreSQL 스냅샷을 S3 버킷으로 내보내는 AWS Lambda 함수를 만든다. Amazon EventBridge를 사용하여 매일 밤 Lambda 함수가 실행되도록 예약한다.
=> 이 API 작업은 전체 테이블을 S3 버킷으로 내보냄
61 . 많은 조인 및 윈도우 함수가 포함된 쿼리에 대해 Amazon Athena에서 쿼리 성능을 최적화해야 하는 데이터 엔지니어가 있다. 이 쿼리는 지난 3년 동안의 데이터가 포함된 Parquet 형식의 Amazon S3에서 2TB의 데이터를 스캔한다. 그러나 SQL 로직은 최근 3개월 데이터만 분석하도록 구축되었다.
다음 중 쿼리를 최적화하는 데 도움이 되는 단계의 조합은 무엇인가? (2개 선택.)
데이터를 연, 월, 일별로 파티셔닝한다.
=> 쿼리 엔진이 파티셔닝된 열을 기준으로 필터링하는 쿼리에 대해 더 적은 데이터를 스캔
압축 파일 형식을 사용한다.
참고로, 파일 형식을 CSV로 변경하면 데이터가 행 기반 파일 형식으로 저장됨
62 . 한 보험 회사가 Amazon S3에서 대량의 고객 데이터 세트를 수집했다. 이 회사는 AWS 서비스를 사용하여 분석을 실행하고자 한다. 회사는 분석을 실행하기 전에 고객 데이터 세트의 모든 정보가 완전하고 빈 필드가 포함되지 않도록 하는 솔루션을 구축해야 한다.
데이터 엔지니어가 최소한의 운영 오버헤드로 데이터 완전성을 보장하는 솔루션을 구축하려면 어떻게 해야 하는가?
AWS Glue 크롤러를 만들고 실행하여 Amazon S3에서 수집된 데이터의 스키마를 유추한다. 빈 필드가 있는 레코드를 필터링하여 데이터를 변환하고 정리하는 AWS Glue 작업을 구현한다. 작업 출력을 Amazon S3에 저장한다.
* 오답 정리
Amazon EMR Serverless에 Apache Spark 작업을 제출한다. 데이터를 변환하여 빈 필드가 있는 레코드를 필터링한다. 정리된 데이터를 Amazon S3에 저장한다.
=> 데이터 수집 및 변환 프로세스를 작성해야 함. Glue 내장 변환 기능이 더 효율적
AWS Glue 데이터 카탈로그의 데이터를 실행하고 카탈로그화하도록 AWS Glue 크롤러를 구성한다. Amazon Athena로 카탈로그에 생성된 테이블을 쿼리하여 집계함으로써 빈 필드가 있는 레코드를 식별 및 필터링한다. 정리된 데이터로 새 테이블을 생성한다. AWS Glue 크롤러를 만들고 실행하여 Amazon S3에서 수집된 데이터의 스키마를 유추한다.
=> 여러 쿼리를 수동으로 실행하여 먼저 빈 열이 있는 레코드를 식별한 다음, 해당 레코드를 필터링하는 새 데이터 집합을 만드는 쿼리가 필요
AWS Lambda 함수를 사용하여 빈 필드가 포함된 데이터 레코드를 분석 및 식별한다. Lambda 함수를 호출하여 Amazon S3의 데이터 집합에서 빈 필드가 포함된 레코드를 처리하고 제거한다.
=> 코드베이스 유지 관리. Lambda 함수 호출에 대한 추가 오류 처리, 로깅, 모니터링을 통해 함수가 예상대로 작동하는지 확인 필요
63 . 한 회사는 이전에 VPC의 리소스에 연결하도록 AWS Glue DataBrew를 구성했다. 회사는 새 데이터 엔지니어링 팀이 관리할 새 AWS 계정으로 DataBrew 사용량을 재배치하기로 결정했다. 현재 계정의 모든 DataBrew 사용량은 폐기된다. 이 프로세스의 일환으로 데이터 엔지니어는 DataBrew 연결이 허용된 VPC와 연결되어 있는 기존 AWS 보안 그룹을 삭제해야 한다.
다음 중 어떤 단계를 조합해야 이러한 요구 사항을 충족할 수 있는가? (2개 선택.)
모든 VPC 리소스에서 보안 그룹을 분리한다.
=> 보안 그룹을 삭제하기 전에 VPC의 인스턴스 또는 기타 리소스와 연결된 상태에서 보안 그룹을 분리해야 삭제 가능
VPC에서 보안 그룹이 포함된 모든 보안 그룹 규칙을 삭제한다.
=> VPC의 보안 그룹에 있는 규칙에서 보안 그룹을 참조하는 경우, 보안 그룹을 삭제하기 전에 먼저 규칙을 제거할 필요 있음
64 . 한 데이터 엔지니어는 회사에서 비용을 개선하고 기술적 부채를 줄이기 위해 ETL(추출, 변환 및 로드) 파이프라인을 검토해야 한다. 현재 프로세스에는 AWS Lambda 함수를 호출하는 Amazon EventBridge 규칙이 포함되어 있다. Lambda 함수는 ETL 프로세스의 모든 단계를 수행한다.
데이터 엔지니어는 Lambda 함수를 검토한다. 데이터 엔지니어는 함수가 먼저 여러 공급업체에 3번의 API 호출을 수행한다는 사실을 발견한다. 각 API 호출은 약 1초가 소요되며 각 공급업체의 응답을 기다린다. 공급업체 응답이 결합된다. 그런 다음 Lambda는 2개의 개별 Amazon DynamoDB 테이블에 연결한다. Lambda는 공급업체 응답에 따라 각 테이블에서 단일 UPDATE 명령을 수행한다.
다음 중 이러한 요구 사항을 가장 비용 효율적으로 충족하는 솔루션은 무엇인가?
회사는 지원 서비스를 사용하여 AWS Step Functions 상태 머신으로 프로세스를 재설계해야 한다.
* 오답 정리
회사는 Lambda 함수를 공급업체 API별로 하나씩 총 3개의 개별 Lambda 함수로 분할해야 한다.
=> 각각 하나의 API 호출을 호출하는 Lambda 함수 3개는 3개의 API 호출을 호출하는 하나의 Lambda 함수와 런타임이 비슷. Lambda 함수를 3개로 분할하는 솔루션은 런타임을 늘리고 더 많은 Lambda 호출을 초기화하여 솔루션의 전체 비용을 증가
(람다 함수를 분리하면 콜드스타트의 비용까지 생각해야 함)
회사는 지원 서비스를 사용하여 Amazon Simple Workflow Service(SWF) 워크플로로 프로세스를 재설계해야 한다.
=> Amazon SWF는 분산된 애플리케이션 구성 요소 간에 작업을 조정할 수 있는 기능을 제공하는 웹 서비스
65 . 한 데이터 엔지니어는 하루에 한 번 온프레미스 SQL Server 데이터베이스의 데이터가 Amazon S3 버킷에 수집, 변환 및 로드되도록 데이터 파이프라인을 구축해야 한다. 데이터 엔지니어는 데이터 품질 검사를 수행해야 하며 데이터가 날짜별로 파티션되었는지 확인해야 한다. 하루의 데이터 볼륨에 따라 ETL(추출, 변환, 로드) 프로세스에는 몇 시간이 걸릴 수 있다.
다음 중 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇인가?
AWS Glue를 사용하여 SQL Server 데이터베이스에서 데이터를 추출하고, Apache Spark를 사용해 데이터를 변환하며, Amazon S3에 데이터를 로드한다. AWS Glue를 사용하여 데이터 품질 검사를 수행하고 날짜별로 데이터를 파티션한다. JDBC 드라이버를 사용하여 SQL Server에 연결한다.
=> AWS Glue는 여러 데이터베이스 엔진에 JDBC 연결을 지원
* 오답 정리
AWS Step Functions를 사용하여 서버리스 워크플로를 오케스트레이션한다. 워크플로를 통해 SQL Server에서 데이터를 추출해야 한다. 그런 다음 워크플로에서 AWS Lambda 함수를 사용하여 데이터를 변환해야 한다. 마지막으로 워크플로를 사용해 Amazon S3에 데이터를 로드해야 한다. Step Functions를 사용하여 데이터 품질 검사를 수행하고 날짜별로 데이터를 파티션한다.
=> Step Functions의 최대 런타임은 15분
AWS Batch를 사용하여 Amazon EC2 인스턴스 플릿에서 ETL 작업을 실행하고, 데이터 품질 검사를 수행하고, 날짜별로 데이터를 파티션한다.
=> 다른 서비스에 비해 AWS Batch는 컴퓨팅 환경을 수동으로 생성해야 하므로 더 많은 설정과 구성이 필요
'인프라 > AWS' 카테고리의 다른 글
AWS DEA-C01 (0) | 2025.01.27 |
---|---|
AWS SCS-02 (0) | 2025.01.27 |
AWS EBS & EFS (0) | 2024.09.03 |
AWS S3 정리 (6) | 2024.09.01 |
AWS Step Functions (0) | 2024.08.20 |