솔루션 설계자 관점의 서버리스

GonnabeAlright·2022년 6월 19일
0
post-thumbnail
  1. 데이터를 프로세싱하는 데에 대략 1시간 정도가 걸리는 Lambda 함수를 생성했습니다. 코드를 머신에서 로컬로 실행했을 때에는 문제가 없었으나 Lambda 함수를 호출할 때는 3초가 지난 후 '시간초과' 오류가 발생하여 실패합니다. 어떻게 해야 할까요 ?
  • A. Lambda의 시간 초과를 25분으로 구성
  • B. Lambda의 메모리를 10GB으로 구성
  • C. 코드를 다른 곳(예: EC2 인스턴스)에서 실행

✅ Lambda의 최대 실행 시간은 15분입니다. 코드를 EC2 인스턴스처럼 다른 곳에서 실행할 수도 있고, Amazon ECS를 사용할 수도 있습니다.

  1. 다음 중 동적 DB_URL 변수를 Lambda 함수의 코드로 주입하기 위한 최적의 방법은 무엇일까요 ?
  • A. Lambda의 환경 변수 사용
  • B. 코드 내에 넣고 zip 파일 생성하기
  • C. 코드 자체에 넣기

✅ Lambda의 환경 변수를 사용하면 코드를 업데이트하지 않고 함수의 행위 특성을 조정할 수 있습니다.

  1. DynamoDB 표를 생성하기 전에는 DynamoDB 테이블이 실행될 EC2 인스턴스를 프로비저닝해야 합니다.
  • A. 맞습니다.
  • B. 아닙니다.

✅ DynamoDB는 프로비저닝, 패치 혹은 관리할 서버가 없고 설치, 유지 및 운용해야 할 소프트웨어가 없는 서버리스 서비스입니다. DynamoDB는 용량 조정 및 성능 유지를 위한 테이블의 확장 및 축소를 자동으로 스케일링합니다. 이는 프로비저닝(RCU & WCU 지정) 및 온디맨드 (사용한 만큼의 비용 책정) 용량 모드 모두를 제공합니다

  1. DynamoDB 테이블을 10 RCU와 10 WCU로 프로비저닝했습니다. 한 달 후, 더 많은 읽기 트래픽을 처리하기 위해 RCU를 증가시키려 합니다. 어떻게 해야 할까요 ?
  • A. RCU는 증가, WCU는 동일하게 유지
  • B. RCU와 WCU 모두를 증가시켜야 함
  • C. RCU 증가 및 WCU 감소

✅ RCU와 WCU는 분리되어 있으므로, 각 값을 개별적으로 증가/감소시킬 수 있습니다.

  1. DynamoDB를 데이터베이스로 사용하는 전자 상거래 웹사이트가 있습니다. 곧 크리스마스 세일 기간에 들어갈 예정이며, 굉장히 인기가 높은 몇몇 항목들이 높은 조회수를 기록할 것으로 에상하고 있습니다. 안타깝게도 작년에는 높은 트래픽의 양으로 인해 ProvisionedThroughputExceededException 예외 처리 오류가 발생했습니다. 이 오류의 재발을 방지하려면 어떻게 해야 할까요 ?
  • A. RCU를 아주 높은 값으로 설정
  • B. DAX 클러스터 생성하기
  • C. 세일 기간 중 데이터베이스를 DynamoDB 밖으로 이전시키기

✅ DynamoDB Accelerator(DAX)는 완전 관리형에 고가용성을 갖춘 DynamoDB 용 인메모리 캐시이며 최대 10배까지 성능을 향상시켜 줍니다. 이는 가장 자주 사용되는 데이터를 캐시해 DynamoDB 테이블의 핫 키에서 과도한 양의 읽기를 오프로딩 해주어 ProvisionedThroughputExceededException 예외 처리 오류를 방지합니다.

  1. DynamoDB를 데이터 저장소로 사용하는 모바일 애플리케이션을 개발했습니다. 신규 사용자가 가입한 후 환영 이메일을 자동으로 보내려고 합니다. 이를 달성하는 가장 효율적인 방법은 무엇일까요 ?
  • A. CloudWatct Event를 사용해 Lambda 함수를 매 분 실행하여 테이블에 등록된 새로운 사용자를 스캔하게 만들기
  • B. SNS와 DynamoDB 통합을 활성화
  • C. DynamoDB와 Streams을 활성화하고 이메일을 보내기 위해 Lambda 함수를 호출하도록 구성
  1. 서버리스 API를 생성하기 위해서는 Amazon API Gateway를 ( ) 와 통합해야 합니다.
  • A. EC2 인스턴스
  • B. Elastic Loda Balancing
  • C. AWS Lambda
  1. 엣지 최적화 API 게이트웨이를 사용할 경우, API Gateway가 모든 AWS 리전의 CloudFront 엣지 로케이션에 존재하게 됩니다.
  • A. 아닙니다.
  • B. 맞습니다.

✅ 엣지 최적화 API Gateway는 지리적으로 분산된 클라이언트에 가장 적합합니다. API 요청은 가장 가까운 CloudFront 엣지 로케이션으로 라우팅되며, 이는 지연 시간을 향상시킵니다. API Gateway는 여전히 하나의 AWS 리전에 존재합니다.

  1. 사용자들이 여러분의 API Gateway가 호스팅하는 API로 요청을 보내기 전에 Facebook을 이용해 인증을 하도록 만들려 합니다. 매끄러운 인증 통합을 위해서는 어떤 방법을 사용해야 할까요 ?
  • A. Amazon Cognito Sync
  • B. Lambda 권한 부여자가 있는 DynamoDB 사용자 테이블
  • C. Amazon Cognito 사용자 풀

✅ Amazon Cognito 사용자 풀은 Facebook과 통합되어 애플리케이션의 사용자들에게 인증된 로그인을 제공합니다.

  1. 프로덕션에서 실행하고 있는 애플리케이션은 DynamoDB를 데이터베이스로 활용하고 있으며 원활하고 지속적인 사용량을 경험하고 있습니다. 애플리케이션을 개발 모드에서도 실행해야 하는데, 이 모드에서는 예쌍 불가능한 요청 볼륨을 경험하게 될 겁니다. 이런 경우, 어떤 방법을 가장 비용 효율적인 솔루션으로 추천해야 할까요 ?
  • A. 개발 및 프로덕션 모두에 오토 스케일링이 활성화되어 있는 프로비저닝된 용량 모드 사용하기
  • B. 프로덕션에는 오토 스케일링이 활성화된 프로비저닝된 용량모드를 사용하고 개발에는 온디맨드 용량 모드 사용하기
  • C. 개발에는 오토 스케일링이 활성화된 프로비저닝된 용량 모드를 사용하고 프로덕션에는 온디맨드 용량 모드 사용하기
  • D. 개발 및 프로덕션 모두에 온디맨드 용량 모드 사용하기
  1. CloudFront 배포를 통해 전역적으로 제공되는 애플리케이션이 있습니다. 인증 요청이 오리진까지 전달되게 하는 대신, CloudFront 엣지 로케이션에서 사용자를 인증하려 합니다. 이 요구 사항을 만족시키기 위해서는 어떤 방법을 사용해야 할까요 ?
  • A. Lambda@Edge
  • B. API Gateway
  • C. DynamoDB
  • D. AWS 글로벌 액셀러레이터

✅ Lambda@Edge는 CloudFront의 기능으로 사용자에 가깝게 코드를 실행하도록 해주어 성능을 향상시키고 지연 시간을 줄여 줍니다.

  1. DynamoDB 테이블 내 항목의 최대 크기는 ( )입니다.
  • A. 1MB
  • B. 500KB
  • C. 400KB
  • D. 400MB

0개의 댓글