EC2는 Amazon Elastic Compute Cloud로, 크기 조절이 가능한 컴퓨팅 능력, 즉 가상 서버를 제공한다. S3는 Amazon Simple Storage Service로, 임의의 양의 데이터를 객체로 저장한다. 이 둘을 바꿔치기한 서술은 예로부터 흔한 혼동이므로, 이름의 철자에서 역할을 떠올릴 수 있도록 해두면 좋다. 함수 코드를 실행하는 것은 Lambda, 파일을 공유하는 것은 EFS이다.
문제 2 | Lambda의 과금
AWS Lambda의 과금 방식으로 적절한 것은?
소비한 컴퓨팅 시간에 대해서만 과금된다
생성한 함수의 개수에 따라 매달 정액으로 과금된다
코드가 실행되지 않는 동안에도 확보한 용량에 따라 과금된다
업로드한 코드의 용량에 대해서만 과금된다
정답A. 소비한 컴퓨팅 시간에 대해서만 과금된다
Lambda는 서버 프로비저닝이나 관리 없이 코드를 실행할 수 있으며, 소비한 컴퓨팅 시간에 대해서만 과금된다. 코드가 실행되지 않는 동안에는 요금이 발생하지 않는 점이 계속 가동해야 비용이 드는 EC2와의 큰 차이이다. 함수 개수나 업로드한 코드 용량 자체를 과금 단위로 삼지는 않는다.
문제 3 | 서버리스
서버리스라고 불리는 서비스에 공통되는 특징은?
실행 전에 이용자가 OS 종류와 패치 적용 방침을 결정한다
처리를 실행하는 물리적 서버가 어디에도 존재하지 않는다
이용자가 준비한 전용 물리 서버에서만 처리가 동작한다
이용자는 서버 프로비저닝이나 관리를 하지 않아도 된다
정답D. 이용자는 서버 프로비저닝이나 관리를 하지 않아도 된다
서버리스는 물리 서버가 없다는 뜻이 아니라, 서버의 조달·설정·확장을 이용자가 하지 않아도 된다는 의미이다. Lambda는 '서버 프로비저닝이나 관리 없이 코드를 실행할 수 있다'고 설명되고, Fargate는 '서버나 클러스터의 프로비저닝·설정·확장이 필요 없다'고 설명된다. 물리 서버는 AWS 측에 있으며, OS 종류나 패치 적용을 이용자가 정하는 것은 EC2 같은 형태이다.
문제 4 | Fargate
AWS Fargate에 대한 설명으로 적절한 것은?
컨테이너용의, 서버 관리가 필요 없는 종량제 실행 엔진
Kubernetes 클러스터를 AWS에서 운영하는 매니지드 서비스
가상 서버의 인스턴스 유형과 대수를 이용자가 선택해 사용하는 구조
분산된 처리 절차를 워크플로로 정의해 실행하는 구조
정답A. 컨테이너용의, 서버 관리가 필요 없는 종량제 실행 엔진
Fargate는 컨테이너용 서버리스 종량제 컴퓨팅 엔진으로, 서버나 클러스터의 프로비저닝·설정·확장이 필요 없으며 ECS나 EKS의 시작 유형으로 사용한다. Kubernetes의 매니지드 운영은 EKS, 인스턴스 유형과 대수를 직접 선택하는 것은 EC2 시작 유형, 절차를 워크플로로 정의하는 것은 Step Functions이다.
문제 5 | ECS의 용량
Amazon ECS에서 태스크를 실행하는 기반 선택 방법에 대한 설명으로 적절한 것은?
EC2에서는 AWS가 기반을 관리하고, Fargate에서는 이용자가 인스턴스를 관리한다
Fargate와 EC2 중 어느 쪽을 선택해도 AWS가 인스턴스를 관리한다
Fargate에서는 AWS가 기반을 관리하고, EC2에서는 이용자가 인스턴스를 관리한다
Fargate와 EC2 중 어느 쪽을 선택해도 이용자가 인스턴스를 관리한다
정답C. Fargate에서는 AWS가 기반을 관리하고, EC2에서는 이용자가 인스턴스를 관리한다
ECS의 용량 선택지는 서버리스로 AWS가 기반을 관리하는 Fargate와, 인스턴스 유형과 대수를 이용자가 선택해 관리하는 EC2 2가지가 기본이다. 그 밖에 ECS Managed Instances, 온프레미스용 ECS Anywhere가 있다. 어느 쪽을 선택하든 컨테이너 배치와 확장을 하는 것은 ECS이며, 달라지는 것은 기반을 누가 돌보는가 하는 점뿐이다.
문제 6 | EKS
Amazon EKS를 채택하는 이유로 가장 적절한 것은?
Kubernetes를 직접 구축하고 운영하는 수고를 줄이고 싶기 때문
관계형 데이터베이스의 정기 백업을 맡기고 싶기 때문
수신한 트래픽을 여러 대상으로 자동 분산하고 싶기 때문
정적 웹 콘텐츠를 이용자와 가까운 곳에서 전송하고 싶기 때문
정답A. Kubernetes를 직접 구축하고 운영하는 수고를 줄이고 싶기 때문
EKS는 Amazon Elastic Kubernetes Service로, 직접 Kubernetes 클러스터를 설치·운영하지 않고도 AWS에서 Kubernetes를 실행할 수 있는 매니지드 서비스이며, Kubernetes 준수 인증을 받았다. 데이터베이스 운영 자동화는 RDS, 콘텐츠를 가까운 곳에서 전송하는 것은 CloudFront, 트래픽 분산은 Elastic Load Balancing이 담당한다.
문제 7 | 실행 방식 선택
하루에 몇 번만 도착하는 파일을, 도착했을 때만 변환하고 싶다. 비용을 억제하는 구성으로 적절한 것은?
EC2 인스턴스를 상시 가동시키고, 처리를 일정 간격으로 수행한다
EC2 인스턴스를 상시 가동시키고, 처리를 수동으로 실행한다
EKS 클러스터를 상시 가동시키고, 처리를 일정 간격으로 수행한다
Lambda에 처리를 작성하고, 파일 도착을 계기로 실행한다
정답D. Lambda에 처리를 작성하고, 파일 도착을 계기로 실행한다
Lambda는 서버 관리 없이 코드를 실행할 수 있으며 소비한 컴퓨팅 시간에 대해서만 과금되고, 실행되지 않는 동안에는 요금이 발생하지 않는다. 따라서 호출이 드문드문한 처리에서는 대기 시간에 비용이 들지 않는 Lambda가 유리하다. EC2나 EKS 클러스터를 상시 가동하는 구성은 처리가 동작하지 않는 대부분의 시간에도 비용이 계속 든다.
문제 8 | EC2의 제어
Amazon EC2의 특징을 서술한 것으로 적절한 것은?
코드 실행 시간만 과금되며, 이용자는 OS를 다룰 필요가 없다
컴퓨팅 리소스를 완전히 제어할 수 있으며, 사용한 만큼만 지불한다
데이터를 객체 단위로 저장하고 HTTP API로 읽고 쓴다
워크플로의 각 단계를 상태로 정의하고 순서대로 실행한다
정답B. 컴퓨팅 리소스를 완전히 제어할 수 있으며, 사용한 만큼만 지불한다
EC2는 클라우드에서 안전하고 크기 조절이 가능한 컴퓨팅 능력을 제공하는 서비스로, 사용한 만큼만 지불하며 컴퓨팅 리소스를 완전히 제어할 수 있다고 공식적으로 설명된다. 실행 시간만 과금되고 OS를 다루지 않는 것은 Lambda, 객체 단위로 저장하는 것은 S3, 워크플로를 상태로 정의하는 것은 Step Functions의 성질이다. 제어할 수 있는 범위가 넓은 만큼 OS 관리가 이용자에게 남는다는 점도 함께 기억해두어야 한다.
문제 9 | ECS
Amazon ECS가 담당하는 역할로 적절한 것은?
함수 형태로 작성한 코드를 이벤트 발생에 따라 실행한다
Kubernetes API를 준수하는 클러스터를 AWS에서 제공한다
컨테이너화된 애플리케이션의 배치와 관리, 규모 조정을 수행한다
가상 서버 이미지로부터 임의의 대수의 인스턴스를 시작한다
정답C. 컨테이너화된 애플리케이션의 배치와 관리, 규모 조정을 수행한다
ECS는 Amazon Elastic Container Service로, 완전 관리형 컨테이너 오케스트레이션 서비스로서 컨테이너화된 애플리케이션의 배포·관리·확장을 쉽게 해준다. Kubernetes를 준수하는 클러스터를 제공하는 것은 EKS, 가상 서버 시작은 EC2, 이벤트에 따른 코드 실행은 Lambda이다. ECS와 EKS는 둘 다 컨테이너를 묶지만 Kubernetes를 사용하는지 여부로 나뉜다.
문제 10 | ECS와 EKS
Amazon ECS와 Amazon EKS의 차이를 서술한 것으로 적절한 것은?
ECS가 Kubernetes를 실행하고, EKS는 AWS 독자 방식으로 컨테이너를 묶는다
EKS가 Kubernetes를 실행하고, ECS는 AWS 독자 방식으로 컨테이너를 묶는다
EKS는 컨테이너를 다루고, ECS는 가상 서버 이미지만 다룬다
ECS는 컨테이너를 다루고, EKS는 가상 서버 이미지만 다룬다
정답B. EKS가 Kubernetes를 실행하고, ECS는 AWS 독자 방식으로 컨테이너를 묶는다
EKS는 직접 Kubernetes 클러스터를 설치·운영하지 않고도 AWS에서 Kubernetes를 실행할 수 있는 매니지드 서비스로, Kubernetes 준수 인증을 받았다. 한편 ECS는 AWS의 완전 관리형 컨테이너 오케스트레이션 서비스로 Kubernetes를 전제로 하지 않는다. 둘 다 컨테이너를 다루는 서비스이며 가상 서버 이미지만 다루는 것이 아니다. 시작 대상으로는 둘 다 Fargate를 선택할 수 있다.
문제 11 | EBS와 EFS
Amazon EBS와 Amazon EFS의 성질 조합으로 적절한 것은?
EBS는 블록으로서 1대의 EC2에 연결하고, EFS는 다수의 EC2에서 공유한다
EBS도 EFS도 1대의 EC2 인스턴스로의 연결만을 전제로 한다
EBS도 EFS도 다수의 EC2 인스턴스에서의 병렬 공유를 전제로 한다
EBS는 파일로서 다수의 EC2에서 공유하고, EFS는 블록으로 연결한다
정답A. EBS는 블록으로서 1대의 EC2에 연결하고, EFS는 다수의 EC2에서 공유한다
EBS는 EC2 인스턴스에서 사용하는 영구 블록 스토리지 볼륨으로, 가용 영역 내에서 자동으로 복제되며 원칙적으로 1개의 인스턴스에 연결하여 사용한다. EFS는 리눅스 워크로드용 파일 시스템으로 용량이 자동으로 늘고 줄며, 수천 대의 EC2 인스턴스에서의 병렬 공유 접근을 지원한다. 공유할 수 있는 것은 EFS 쪽이며, 양쪽 모두 공유용이거나 양쪽 모두 단독 연결 전용인 경우는 없다.
문제 12 | S3의 종류
Amazon S3가 다루는 데이터 저장 방식으로 적절한 것은?
리눅스용 공유 파일 시스템으로 제공된다
인메모리 캐시로서 고속 읽기·쓰기를 제공한다
EC2 인스턴스에 연결해 사용하는 블록 스토리지이다
임의의 양의 데이터를 저장할 수 있는 객체 스토리지이다
정답D. 임의의 양의 데이터를 저장할 수 있는 객체 스토리지이다
S3는 Amazon Simple Storage Service로, 임의의 양의 데이터를 저장·보호할 수 있는, 확장성과 가용성이 뛰어난 객체 스토리지이다. 블록 스토리지는 EBS, 리눅스용 공유 파일 시스템은 EFS, 인메모리 캐시는 ElastiCache가 담당한다. 객체·블록·파일이라는 3가지 저장 방식의 차이가 AWS 스토리지를 선택할 때의 출발점이 된다.
문제 13 | 공유 방식 선택
수백 대의 EC2 인스턴스에서 같은 디렉터리를 동시에 마운트하여 읽고 쓰고 싶다. 적절한 것은?
Amazon ElastiCache의 노드를 각 인스턴스에서 참조한다
Amazon EFS의 파일 시스템을 각 인스턴스에서 마운트한다
Amazon EBS의 볼륨을 각 인스턴스에 1개씩 연결한다
S3 Glacier Deep Archive에 두고 각 인스턴스에서 읽고 쓴다
정답B. Amazon EFS의 파일 시스템을 각 인스턴스에서 마운트한다
EFS는 파일의 증감에 따라 용량이 자동으로 늘고 줄며, 수천 대의 EC2 인스턴스에서의 병렬 공유 접근을 지원하는 파일 스토리지이므로, 같은 디렉터리를 다수의 인스턴스에서 동시에 마운트하는 용도에 적합하다. EBS는 가용 영역 내의 블록 스토리지로 원칙적으로 1개의 인스턴스에 연결하므로 각자의 영역이 별도가 된다. Glacier Deep Archive는 조회에 시간이 걸리는 아카이브용 클래스, ElastiCache는 파일 시스템이 아닌 인메모리 캐시이다.
문제 14 | EBS의 AZ
Amazon EBS 볼륨이 자동으로 복제되는 범위로 적절한 것은?
계약한 모든 계정 사이에서 복제된다
1개의 가용 영역 안에서 복제된다
여러 리전에 걸쳐 복제된다
전 세계 에지 로케이션에 복제된다
정답B. 1개의 가용 영역 안에서 복제된다
EBS는 EC2 인스턴스용 영구 블록 스토리지로, 가용 영역 내에서 자동으로 복제되어 일관된 저지연 성능을 제공한다. 이 단일 AZ라는 성질 때문에 AZ를 넘나드는 가용성을 원한다면 별도의 구조가 필요하다. 리전을 넘나드는 복제나 에지 로케이션에서의 전송은 EBS의 역할이 아니다.
문제 15 | Glacier
S3 Glacier 스토리지 클래스에 관한 서술 중 적절한 것은?
저장할 수 있는 것은 데이터베이스 백업 파일에 한정된다
저장한 데이터는 블록 스토리지로서 EC2에 직접 연결할 수 있다
즉시 조회에 응하는 클래스와 시간을 들여 조회하는 클래스가 있다
아카이브용 클래스이며 조회에 걸리는 시간은 모두 동일하다
정답C. 즉시 조회에 응하는 클래스와 시간을 들여 조회하는 클래스가 있다
S3 Glacier는 아카이브용 스토리지 클래스 그룹으로, 즉시 조회가 필요한 데이터용 S3 Glacier Instant Retrieval, 거의 접근하지 않는 장기 데이터용 S3 Glacier Flexible Retrieval, 최저 비용으로 몇 시간에 걸쳐 조회하는 S3 Glacier Deep Archive가 있다. 조회 속도와 비용의 균형에 따라 클래스를 선택하는 설계이며 조회 시간이 일률적이지 않다. 저장할 수 있는 데이터 종류에 제한은 없고, 블록 스토리지로 연결하는 사용법도 아니다.
문제 16 | 3가지 구분
S3·EBS·EFS를 다루는 데이터의 단위로 분류한 조합으로 적절한 것은?
S3가 파일, EBS가 객체, EFS가 블록
S3가 블록, EBS가 객체, EFS가 파일
S3가 블록, EBS가 파일, EFS가 객체
S3가 객체, EBS가 블록, EFS가 파일
정답D. S3가 객체, EBS가 블록, EFS가 파일
S3는 객체 스토리지, EBS는 EC2에 연결하는 블록 스토리지, EFS는 리눅스 워크로드용 파일 스토리지이다. 객체는 API를 통해 통째로 넣고 빼는 것, 블록은 OS에서 디스크로 보이는 것, 파일은 여러 호스트에서 마운트해 공유할 수 있는 것이라고 정리하면 요건에서 선택할 때 헷갈리지 않는다.
문제 17 | OS 디스크
1대의 EC2 인스턴스에서 실행하는 데이터베이스의, 데이터 저장용 디스크로 사용하는 것은?
S3 Glacier Flexible Retrieval의 아카이브를 사용한다
Amazon CloudFront의 캐시를 디스크로 사용한다
Amazon S3 버킷을 디스크로 연결한다
Amazon EBS 볼륨을 인스턴스에 연결한다
정답D. Amazon EBS 볼륨을 인스턴스에 연결한다
EBS는 EC2 인스턴스에서 사용하는 영구 블록 스토리지 볼륨으로, 일관된 저지연 성능을 제공하므로 OS나 데이터베이스의 디스크로 사용하기에 적합하다. S3는 객체 스토리지로 버킷을 블록 디바이스로 연결하는 구조가 아니다. Glacier는 조회에 시간이 걸리는 아카이브용 클래스, CloudFront는 전송을 빠르게 하는 CDN이다.
문제 18 | S3의 용도
정적 웹 콘텐츠나 백업 저장소로 S3가 선택되는 이유는?
연결할 수 있는 인스턴스가 1대로 제한되어 덮어쓰기 충돌이 일어나지 않기 때문
메모리 위에 데이터를 두므로 디스크를 거치지 않고 읽고 쓸 수 있기 때문
OS에서 디스크로 보이므로 그대로 업무 시스템에 연결할 수 있기 때문
임의의 양의 데이터를 저장할 수 있으며 확장성과 가용성, 안전성이 뛰어나기 때문
정답D. 임의의 양의 데이터를 저장할 수 있으며 확장성과 가용성, 안전성이 뛰어나기 때문
S3는 임의의 양의 데이터를 저장·보호할 수 있는, 확장성·가용성·보안성·성능이 뛰어난 객체 스토리지로, 웹·모바일·백업·아카이브·IoT·빅데이터 분석 같은 용도가 공식적으로 제시되어 있다. OS에서 디스크로 보이는 것은 EBS, 1개 인스턴스로의 연결을 원칙으로 하는 것도 EBS, 메모리 위에 데이터를 두는 것은 ElastiCache의 성질이다.
문제 19 | EFS의 신축
Amazon EFS의 용량에 관한 서술로 적절한 것은?
저장할 수 있는 용량은 인스턴스의 메모리 양으로 정해진다
파일의 증감에 따라 용량이 자동으로 늘고 줄어든다
용량을 늘릴 때는 일단 분리하고 다시 만들어야 한다
생성 시 정한 용량이 고정되어 나중에 변경할 수 없다
정답B. 파일의 증감에 따라 용량이 자동으로 늘고 줄어든다
EFS는 단순하고 확장 가능하며 탄력적인 파일 시스템으로, 파일을 추가·삭제하면 용량이 자동으로 늘고 줄어 사전 용량 설계가 필요 없다. 용량을 미리 정해 고정하거나 넓히기 위해 다시 만드는 것은 블록 스토리지의 발상이며, 연결된 인스턴스의 메모리 양이 용량을 정하는 것도 아니다. 이 신축성이 공유 작업 영역으로 사용하기 좋은 이유가 된다.
문제 20 | 보관 방식 선택
거의 참조하지 않는 감사 로그를, 몇 시간에 걸쳐 조회할 수 있으면 된다는 전제로 가장 저렴하게 장기 보관하고 싶다. 적절한 것은?
S3 Glacier Deep Archive 클래스에 보관한다
Amazon EBS 볼륨을 만들어 그곳에 기록해 보관한다
Amazon ElastiCache 노드에 올려둔 채로 보관한다
Amazon EFS 파일 시스템에 둔 채로 보관한다
정답A. S3 Glacier Deep Archive 클래스에 보관한다
S3 Glacier Deep Archive는 거의 접근하지 않는 데이터를 최저 비용으로 보관하고 조회에 몇 시간이 걸리는 아카이브용 스토리지 클래스이므로 이 조건에 맞는다. EBS와 EFS는 조회 속도를 유지하는 설계여서 장기간 잠자는 데이터의 저장소로는 비용이 비싸지기 쉽다. ElastiCache는 인메모리 캐시로 애초에 장기 보관을 위한 구조가 아니다. 조회에 얼마나 기다릴 수 있는지를 먼저 정하는 것이 클래스 선택의 순서이다.
문제 21 | RDS
Amazon RDS가 자동화하는 관리 작업으로 적절한 것은?
하드웨어 준비, 패치 적용, 백업
표와 열 설계, 그리고 인덱스를 어디에 걸 것인가 하는 결정
저장된 데이터의 내용이 올바른지에 대한 검증
업무 애플리케이션의 화면 전환과 입력 검증
정답A. 하드웨어 준비, 패치 적용, 백업
RDS는 클라우드에서 관계형 데이터베이스의 설정·운영·확장을 쉽게 해주는 매니지드 서비스로, 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용, 백업 같은 관리 작업을 자동화한다. 한편 표와 열의 설계나 인덱스 판단, 애플리케이션의 구성, 데이터 내용의 타당성은 모두 이용자 측의 일로 남는다. 매니지드란 운영의 수고를 맡기는 것이지 설계까지 맡기는 것은 아니다.
문제 22 | Aurora와 RDS
Amazon Aurora와 표준 Amazon RDS의 관계를 서술한 것으로 적절한 것은?
Aurora는 RDS의 일부로, 개별 인스턴스가 아니라 클러스터 전체를 관리한다
Aurora는 RDS와는 별개의 서비스로, 전용 콘솔과 API로만 조작한다
Aurora는 RDS의 일부이지만, 패치 적용과 백업은 이용자가 직접 수행한다
Aurora는 RDS의 일부로, 다룰 수 있는 것은 키-값 형태의 데이터에 한정된다
정답A. Aurora는 RDS의 일부로, 개별 인스턴스가 아니라 클러스터 전체를 관리한다
Aurora는 매니지드 데이터베이스 서비스인 Amazon RDS의 일부로, 동일한 관리 콘솔·CLI·API 조작으로 프로비저닝, 패치 적용, 백업, 복구, 장애 감지를 수행한다. 차이는 관리 단위에 있으며, 표준 RDS가 개별 DB 인스턴스를 관리하는 데 비해 Aurora는 복제로 동기화된 DB 서버 클러스터 전체를 관리한다. Aurora는 MySQL·PostgreSQL 호환 관계형 데이터베이스이며 키-값 형태가 아니다.
문제 23 | DynamoDB
Amazon DynamoDB에 대한 설명으로 적절한 것은?
메모리 위에 데이터를 두고, 디스크를 거치지 않고 읽고 쓰기를 빠르게 한다
키-값 형태와 문서 형태에 대응하는 NoSQL 데이터베이스
페타바이트 규모의 데이터 웨어하우스로서 분석 쿼리에 응답한다
MySQL과 PostgreSQL에 호환되는 관계형 데이터베이스
정답B. 키-값 형태와 문서 형태에 대응하는 NoSQL 데이터베이스
DynamoDB는 키-값 형태와 문서 형태의 NoSQL 데이터베이스로, 어떤 규모에서도 한 자릿수 밀리초의 성능을 제공하는 완전 관리형 멀티 리전 데이터베이스이다. 데이터 웨어하우스는 Redshift, MySQL·PostgreSQL 호환 관계형 데이터베이스는 Aurora, 메모리 위에서의 읽기·쓰기는 ElastiCache가 담당한다.
문제 24 | Redshift
수년치 실적 데이터를 한데 모아 집계하고 BI 도구로 분석하고 싶다. 기반으로 적절한 것은?
Amazon SQS 큐에 넣고 순서대로 꺼내며 집계한다
Amazon EFS 파일 시스템에 둔 채로 집계한다
Amazon Redshift 데이터 웨어하우스에 두고 집계한다
Amazon ElastiCache 클러스터에 올려둔 채로 집계한다
정답C. Amazon Redshift 데이터 웨어하우스에 두고 집계한다
Redshift는 클라우드 기반의 완전 관리형 페타바이트 규모 데이터 웨어하우스 서비스로, 데이터셋의 크기와 무관하게 기존의 SQL 기반 도구나 BI 애플리케이션에서 빠른 쿼리 성능을 얻을 수 있다. ElastiCache는 인메모리 캐시, EFS는 공유 파일 시스템, SQS는 메시지 큐로, 어느 것도 대량 데이터의 집계와 분석을 담당하는 기반이 아니다.
문제 25 | 캐시
Amazon ElastiCache를 도입해 얻을 수 있는 효과로 적절한 것은?
여러 EC2 인스턴스에서 같은 디렉터리를 공유할 수 있다
표 결합이나 집계를 포함한 분석용 쿼리를 한꺼번에 빠르게 할 수 있다
장기 보관용 백업 비용을 크게 낮출 수 있다
디스크를 거치지 않고 메모리에서 조회함으로써 응답을 빠르게 할 수 있다
정답D. 디스크를 거치지 않고 메모리에서 조회함으로써 응답을 빠르게 할 수 있다
ElastiCache는 클라우드에서 인메모리 캐시를 손쉽게 배포·운영·확장할 수 있는 서비스로, 디스크 기반 데이터베이스에 의존하지 않고 고속의 인메모리 캐시에서 정보를 조회함으로써 웹 애플리케이션의 성능을 개선한다. 분석용 쿼리를 빠르게 하는 것은 Redshift, 장기 보관 비용 절감은 S3 Glacier 클래스, 디렉터리 공유는 EFS의 담당이다.
문제 26 | Aurora의 특징
Amazon Aurora의 특징으로 적절한 것은?
이용자가 용량을 먼저 정하고, 부족해질 때마다 수동으로 늘려간다
데이터를 키와 값의 쌍으로 저장하고, SQL을 사용하지 않고 읽고 쓴다
분산 공유 스토리지를 가지며, 필요에 따라 용량이 자동으로 확장된다
조회에 몇 시간이 걸리는 대신 보관 비용을 가장 저렴하게 억제한다
정답C. 분산 공유 스토리지를 가지며, 필요에 따라 용량이 자동으로 확장된다
Aurora는 MySQL·PostgreSQL 호환 완전 관리형 관계형 데이터베이스 엔진으로, 고성능 분산 공유 스토리지 서브시스템을 가지며 스토리지는 필요에 따라 자동으로 확장된다. 용량을 먼저 정해 수동으로 늘릴 필요가 없다. 키와 값의 쌍으로 저장하는 것은 DynamoDB, 시간을 들여 조회하는 대신 저렴하게 보관하는 것은 S3 Glacier의 아카이브용 클래스이다.
문제 27 | 분석과 거래
Amazon Redshift와 Amazon RDS의 용도 구분으로 적절한 것은?
둘 다 데이터 웨어하우스이며, 다룰 수 있는 데이터양만 다르다
분석을 위한 집계는 Redshift, 일상 거래 기록은 RDS가 적합하다
둘 다 NoSQL이며, 쿼리에 사용할 수 있는 언어만 다르다
일상 거래 기록은 Redshift, 분석을 위한 집계는 RDS가 적합하다
정답B. 분석을 위한 집계는 Redshift, 일상 거래 기록은 RDS가 적합하다
Redshift는 완전 관리형의 페타바이트 규모 데이터 웨어하우스 서비스로, SQL 기반 도구나 BI 애플리케이션에서 대량의 데이터를 집계·분석하는 용도에 적합하다. RDS는 관계형 데이터베이스의 설정·운영·확장을 쉽게 해주는 서비스로, 업무 시스템이 일상적인 거래를 읽고 쓰는 용도에 적합하다. 둘 다 SQL로 조회하므로 비슷해 보이지만 NoSQL도 아니고 양의 차이만 있는 것도 아니다.
문제 28 | DB 선택
한 자릿수 밀리초의 응답으로, 키를 지정해 1건씩 읽고 쓰고 싶다. 기반으로 적절한 것은?
Amazon RDS의 관계형 데이터베이스
Amazon Redshift의 데이터 웨어하우스
Amazon EFS의 공유 파일 시스템
Amazon DynamoDB의 NoSQL 데이터베이스
정답D. Amazon DynamoDB의 NoSQL 데이터베이스
DynamoDB는 키-값 형태와 문서 형태의 NoSQL 데이터베이스로, 어떤 규모에서도 한 자릿수 밀리초의 성능을 제공한다고 공식적으로 설명되어 있다. Redshift는 대량 데이터의 집계와 분석에 적합한 데이터 웨어하우스, RDS는 관계형 모델로 읽고 쓰기를 담당하는 서비스, EFS는 파일 공유를 담당하는 스토리지로, 어느 것도 이 조건을 우선 목표로 하는 기반이 아니다.
문제 29 | RDS의 위치
Amazon RDS에 대한 설명으로 적절한 것은?
대량의 데이터를 수집해 집계하는 데이터 웨어하우스
키와 값의 쌍으로 저장하고 SQL을 사용하지 않고 읽고 쓰는 데이터베이스
메모리 위에 캐시를 두어 읽기를 빠르게 하는 서비스
관계형 데이터베이스의 구축과 운영을 쉽게 해주는 서비스
정답D. 관계형 데이터베이스의 구축과 운영을 쉽게 해주는 서비스
RDS는 Amazon Relational Database Service로, 클라우드에서 관계형 데이터베이스의 설정·운영·확장을 쉽게 해주는 매니지드 서비스이다. 키와 값의 쌍으로 저장하는 것은 DynamoDB, 인메모리 캐시는 ElastiCache, 대량 데이터의 집계는 데이터 웨어하우스인 Redshift가 담당한다. 참고로 Aurora는 RDS의 일부로 제공되는 엔진이다.
문제 30 | Aurora의 관리
Aurora 클러스터에 대한 일상적인 운영에 관해 적절한 서술은?
백업과 복구 절차는 이용자가 직접 만들어야 한다
Aurora 전용 관리용 인스턴스를 별도로 세워 그곳에서 조작한다
클러스터가 아니라 개별 인스턴스 단위로만 조작할 수 있다
RDS와 동일한 콘솔과 API로 패치 적용이나 백업을 수행할 수 있다
정답D. RDS와 동일한 콘솔과 API로 패치 적용이나 백업을 수행할 수 있다
Aurora는 RDS의 일부로 제공되며, 동일한 관리 콘솔·CLI·API 조작으로 프로비저닝, 패치 적용, 백업, 복구, 장애 감지를 수행할 수 있다. 관리용 인스턴스를 별도로 세울 필요는 없고, 이러한 절차를 이용자가 직접 만들 필요도 없다. 표준 RDS가 개별 DB 인스턴스를 관리하는 데 비해, Aurora는 클러스터 전체를 관리 단위로 삼는 점이 차이이다.
문제 31 | SQS와 SNS
Amazon SQS와 Amazon SNS의 성질 조합으로 적절한 것은?
SQS는 토픽으로의 전달, SNS는 큐로의 축적을 담당하는 구조이다
SQS도 SNS도 보관한 메시지를 하나의 수신처가 꺼내는 구조이다
SQS는 큐로의 축적, SNS는 토픽으로의 전달을 담당하는 구조이다
SQS도 SNS도 1건을 다수의 수신처로 동시에 전달하기 위한 구조이다
정답C. SQS는 큐로의 축적, SNS는 토픽으로의 전달을 담당하는 구조이다
SQS는 메시지를 큐에 보관하고, 보통 하나의 컨슈머가 폴링하여 꺼내는 포인트투포인트 서비스이다. SNS는 퍼블리셔가 토픽으로 메시지를 보내고, 여러 구독자에게 동시에 푸시 전달하는 퍼브서브 서비스이다. 둘을 바꿔치기한 서술은 전형적인 혼동이며, 둘 다 같은 방식으로 전달하는 것도 아니다. 큐는 수신자가 가지러 가는 보관소, 토픽은 발신자가 밀어내는 전달자라고 방향으로 기억하면 좋다.
문제 32 | FIFO 큐
Amazon SQS의 FIFO 큐의 성질로 적절한 것은?
보낸 순서가 유지되고, 메시지가 한 번만 처리된다
보낸 순서는 유지되지 않지만, 중복 전달만은 일어나지 않는다
보낸 순서는 유지되지만, 같은 메시지가 여러 번 도착한다
보낸 순서도 처리 횟수도 어느 것도 보장 대상이 아니다
정답A. 보낸 순서가 유지되고, 메시지가 한 번만 처리된다
SQS에는 표준 큐와 FIFO 큐가 있으며, 표준 큐는 최소 한 번(at-least-once) 전달이므로 같은 메시지가 여러 번 도착할 수 있다. FIFO 큐는 정확히 한 번(exactly-once) 처리와 순서 보장을 갖추어, 보낸 순서가 유지되고 한 번만 처리된다. 순서나 유실 방지가 중요한 워크플로에서는 FIFO 큐를 선택하게 된다.
문제 33 | 팬아웃
팬아웃 패턴이라고 불리는 구성의 구축 방식으로 적절한 것은?
1개의 SNS 토픽에서 여러 SQS 큐로 동시에 전달한다
1개의 SQS 큐에서 여러 SQS 큐로 직접 전달한다
1개의 SNS 토픽을 여러 SNS 토픽이 순서대로 읽는다
1개의 SQS 큐를 여러 SNS 토픽이 순서대로 읽는다
정답A. 1개의 SNS 토픽에서 여러 SQS 큐로 동시에 전달한다
SNS는 토픽으로 보낸 메시지를 여러 구독자에게 동시에 푸시 전달하며, 구독자로 SQS 큐를 지정할 수 있다. 이 SNS 토픽에서 여러 SQS 큐로 전달하는 형태가 공식적으로 정석으로 제시되는 팬아웃 패턴이다. 큐는 전달의 출발점이 아니라 수신 측이므로 큐가 토픽을 읽는 방향은 되지 않는다.
문제 34 | 알림 수신처
Amazon SNS의 구독자로 지정할 수 있는 수신처에 대한 설명으로 적절한 것은?
지정할 수 있는 것은 이메일이나 SMS 등 사람에게 전달하는 수신처뿐이다
지정할 수 있는 것은 같은 계정 내의 EC2 인스턴스뿐이다
SQS나 Lambda 같은 앱 측 수신처와, 이메일 같은 대인용 수신처를 지정할 수 있다
지정할 수 있는 것은 SQS나 Lambda 등 앱 측 수신처뿐이다
정답C. SQS나 Lambda 같은 앱 측 수신처와, 이메일 같은 대인용 수신처를 지정할 수 있다
SNS의 구독자 유형은 SQS, Lambda, HTTP(S), Data Firehose 등 앱 간을 가리키는 A2A와, 이메일·모바일 푸시·SMS 등 대인용을 가리키는 A2P의 2가지로 정리된다. 어느 한쪽으로 한정되지도, EC2 인스턴스만을 수신처로 하는 구조도 아니다. 이러한 폭넓음이 대인 알림에도 앱 간 연계에도 SNS가 쓰이는 이유가 된다.
문제 35 | 워크플로
AWS Step Functions가 다루는 것으로 적절한 것은?
인메모리 캐시에 두는 키와 값 조합 목록
여러 단계로 이루어진 처리 흐름을 나타내는 스테이트 머신
저장한 객체의 버전과 보관 기간을 정하는 규칙
수신한 요청을 여러 대상으로 분산하는 규칙
정답B. 여러 단계로 이루어진 처리 흐름을 나타내는 스테이트 머신
Step Functions는 워크플로, 즉 스테이트 머신을 만들어 분산 애플리케이션 구축, 프로세스 자동화, 마이크로서비스 오케스트레이션, 데이터·머신러닝 파이프라인 구축을 가능하게 하는 서비스이다. 각 단계를 state, 실행 중인 인스턴스를 execution이라고 부른다. 트래픽 분산은 Elastic Load Balancing, 객체 보관은 S3, 키와 값의 캐시는 ElastiCache의 영역이다.
문제 36 | API Gateway
Amazon API Gateway가 담당하는 역할로 적절한 것은?
백엔드로의 접근을 받아들이는 프런트 도어가 된다
백엔드에서 동작하는 처리 그 자체를 컨테이너로 실행한다
정적 콘텐츠를 에지 로케이션에 캐시한다
여러 계정에 공통된 보호 규칙을 한꺼번에 적용한다
정답A. 백엔드로의 접근을 받아들이는 프런트 도어가 된다
API Gateway는 REST, HTTP, WebSocket API를 어떤 규모로도 생성·게시·유지·모니터링·보호하는 서비스로, EC2 위의 워크로드, Lambda, 임의의 웹 애플리케이션 같은 백엔드로의 접근에 프런트 도어 역할을 한다. 처리 자체를 실행하는 것은 백엔드 측, 보호 규칙의 일원화는 AWS Firewall Manager, 에지에서의 캐시는 CloudFront의 역할이다.
문제 37 | 이벤트 버스
Amazon EventBridge의 이벤트 버스에 대한 설명으로 적절한 것은?
처리의 각 단계를 상태로 정의하고 순서대로 진행하는 스테이트 머신
메시지를 순서대로 보관하고 하나의 수신처가 꺼내는 대기열
다수의 소스에서 다수의 타깃으로 이벤트를 분산하는 라우터
API로의 요청을 받아 백엔드로 중계하는 프런트 도어
정답C. 다수의 소스에서 다수의 타깃으로 이벤트를 분산하는 라우터
EventBridge는 이벤트를 이용해 애플리케이션 구성 요소들을 연결하는 서버리스 서비스로, 이벤트 수집·필터링·변환·전달을 수행한다. 이벤트 버스는 다수의 소스에서 다수의 타깃으로 이벤트를 라우팅하는 라우터이다. 대기열은 SQS, 스테이트 머신은 Step Functions, 프런트 도어는 API Gateway에 대한 설명에 해당한다.
문제 38 | 정기 실행
정해진 시각에 처리를 시작하는 구조를 cron 식으로 관리하고 싶다. 적절한 것은?
Amazon SQS의 표준 큐에 메시지를 넣고 대기시킨다
Amazon API Gateway에 WebSocket API를 생성한다
Amazon SNS의 토픽에 구독자를 등록해 대기시킨다
Amazon EventBridge Scheduler에 일정을 등록한다
정답D. Amazon EventBridge Scheduler에 일정을 등록한다
EventBridge Scheduler는 cron 식이나 rate 식에 의한 정기 실행과 단발 실행을 관리하는 구조이므로, 정해진 시각의 시작은 이곳에서 다룬다. SQS는 메시지를 보관해 수신자가 꺼내게 하는 큐, SNS는 구독자에게 전달하는 퍼브서브, API Gateway는 API를 게시해 중계하는 서비스로, 어느 것도 시각에 의한 시작을 목적으로 한 구조가 아니다.
문제 39 | 느슨한 결합
주문 접수와 시간이 걸리는 후속 처리를 분리하여 접수 측을 기다리게 하지 않고 싶다. 적절한 것은?
접수 측의 처리를 EC2에 올리고, 후속 처리도 같은 EC2에서 실행한다
접수 측이 SQS 큐에 넣고, 후속 처리가 꺼내어 진행한다
접수 측에서 후속 처리를 직접 호출하고 응답이 돌아올 때까지 기다린다
접수 측과 후속 처리를 하나의 프로그램으로 묶어 순서대로 실행한다
정답B. 접수 측이 SQS 큐에 넣고, 후속 처리가 꺼내어 진행한다
SQS는 분산된 소프트웨어 시스템이나 구성 요소를 통합해 느슨하게 결합시키는, 안전하고 내구성과 가용성이 뛰어난 호스팅 큐 서비스이다. 접수 측은 메시지를 큐에 넣은 시점에 응답할 수 있고, 후속 처리는 자신의 속도로 꺼내어 진행할 수 있으므로 한쪽의 지연이 다른 쪽을 멈추게 하기 어렵다. 직접 호출하는 구성이나 하나로 묶는 구성에서는 후속 처리의 지연이 그대로 접수 측의 대기 시간이 된다.
문제 40 | 전달 방식 선택
1건의 재고 갱신을 집계용, 알림용, 감사용 3개 처리에 동시에 전달하고 싶다. 적절한 것은?
1개의 SQS 큐를 만들어 꺼낸 처리가 나머지 2개로 전달한다
1개의 SQS 큐를 만들어 3개의 처리가 같은 큐에서 꺼낸다
3개의 SQS 큐를 만들어 갱신 발생원이 순서대로 3번씩 전송한다
1개의 SNS 토픽에 3개의 SQS 큐를 구독시켜 전달한다
정답D. 1개의 SNS 토픽에 3개의 SQS 큐를 구독시켜 전달한다
SNS는 토픽으로 보낸 메시지를 여러 구독자에게 동시에 푸시 전달하며, 구독자로 SQS 큐를 지정할 수 있으므로 1건의 사건을 3개의 처리로 나누려면 SNS 토픽과 여러 SQS 큐에 의한 팬아웃 패턴을 사용한다. 1개의 큐를 3개의 처리가 공유하면 보통 어느 하나가 꺼낸 시점에 나머지는 받을 수 없다. 발생원이 3번 보내는 구성이나 받은 처리가 전달하는 구성은 수신처가 늘어날 때마다 보내는 쪽을 고쳐야 하므로 느슨한 결합이 되지 않는다.
연습: 이 페이지의 문제 풀기
무작위로 출제하는 연습 도구입니다(JavaScript가 활성화된 경우에 작동합니다). 위의 문제와 해설은 그대로 모두 읽을 수 있습니다.
※ 해설은 학습용 정보 제공입니다. 시험 출제 범위와 제도는 연도에 따라 바뀌므로, 반드시 시행 기관의 공식 발표를 확인하십시오.
이 페이지는 일본어 원문을 번역한 것입니다. 번역과 원문의 내용이 다를 경우 일본어판이 우선합니다. 일본어 원문 보기