CloudPass LogoCloud Pass
AWSGoogle CloudMicrosoftCiscoCompTIADatabricks
Certifications
AWSGoogle CloudMicrosoftCiscoCompTIADatabricks
Google Professional Cloud Database Engineer
Google Professional Cloud Database Engineer

Practice Test #1

50개 문제와 120분 시간 제한으로 실제 시험을 시뮬레이션하세요. AI 검증 답안과 상세 해설로 학습하세요.

50문제120분700/1000합격 점수
기출 문제 보기

AI 기반

3중 AI 검증 답안 및 해설

모든 답안은 3개의 최고 AI 모델로 교차 검증하여 최고의 정확도를 보장합니다. 선택지별 상세 해설과 심층 문제 분석을 제공합니다.

GPT Pro
Claude Opus
Gemini Pro
선택지별 상세 해설
심층 문제 분석
3개 모델 합의 정확도

기출 문제

1
문제 1

Your media-streaming platform runs an AlloyDB for PostgreSQL cluster in us-central1 that is accessible only via a private IP; compliance forbids opening a public endpoint or installing agents on database VMs, and you must continuously replicate a subset of 12 tables (about 1.8 TB total, up to 2,500 row changes per second) into BigQuery for analytics and ML with end-to-end latency under 10 seconds and 99.9% delivery reliability using Google-managed services that automatically handle schema changes and scale without downtime; what should you do?

AlloyDB를 polling하는 custom GKE 마이크로서비스는 CDC가 아니며, 2,500 changes/sec에서 <10s 지연 시간과 99.9% 전달 신뢰성을 달성하려면 상당한 커스텀 엔지니어링(중복 제거, 순서 보장, 재시도, backpressure, schema drift 처리)이 필요합니다. Polling은 소스 부하도 증가시키고 운영 복잡성이 큽니다. 또한 자동 확장과 다운타임 없는 스키마 변경 처리를 제공하는 Google 관리형 서비스를 사용해야 한다는 요구를 위반합니다.

BigQuery federated queries(external connections 사용)는 데이터를 제자리에서 조회하기 위한 것이지, BigQuery로 지속적으로 복제하는 것이 아닙니다. 일반적으로 downstream analytics/ML을 위해 BigQuery 테이블로 end-to-end 10초 미만 지연 시간으로 변경을 전달해야 한다는 요구를 충족하지 못하며, 높은 변경률에서 성능/비용이 예측 불가능할 수 있습니다. 또한 복제 데이터에 대해 99.9% 전달 신뢰성을 보장하는 내구성 있는 전달 파이프라인을 제공하지 않습니다.

Database Migration Service는 데이터베이스 간 마이그레이션과 지속적 복제를 위해 설계되었습니다(예: on-prem/MySQL/PostgreSQL에서 Cloud SQL/AlloyDB로). BigQuery를 타깃으로 직접 CDC를 스트리밍하는 표준 관리형 서비스가 아닙니다. 설령 다른 곳에 데이터를 staging할 수 있더라도 구성 요소와 지연 시간이 추가되며, 자동 스키마 변경 처리 요구와 BigQuery로의 직접적/확장 가능/관리형 경로 요구에 부합하지 않습니다.

Datastream은 VM 에이전트를 설치하지 않고 log 기반 replication을 사용해 AlloyDB 같은 PostgreSQL 호환 소스에서 변경을 캡처하는 관리형 CDC 서비스입니다. 프라이빗 연결을 지원하므로 소스를 private-only로 유지할 수 있습니다. Datastream을 Google 제공 Dataflow template과 결합해 BigQuery로 스트리밍하면 autoscaling, checkpointing, 강력한 retry 시맨틱을 제공하여 낮은 지연 시간(<10s) ingestion과 높은 전달 신뢰성을 달성할 수 있으며, 관리형 방식으로 스키마 진화 처리도 지원합니다.

문제 분석

핵심 개념: 이 문제는 프라이빗 AlloyDB for PostgreSQL 소스에서 BigQuery로 거의 실시간 change data capture(CDC)를 수행하는 능력을 평가합니다. 완전 관리형 Google 서비스를 사용하면서 낮은 지연 시간, 높은 신뢰성, 자동 확장, 그리고 스키마 진화에 대한 복원력을 요구합니다. 정답이 맞는 이유: Datastream은 데이터베이스(예: AlloyDB 같은 PostgreSQL 호환 소스 포함)를 위한 Google의 관리형 CDC 서비스입니다. Datastream은 지속적인 row-level 변경을 캡처하고 낮은 지연 시간으로 스트리밍할 수 있습니다. AlloyDB 클러스터가 private-only이고 데이터베이스 VM에 에이전트를 설치할 수 없으므로, Datastream이 적합합니다. Datastream은 호스트 에이전트가 아니라 데이터베이스 네이티브 replication/log 기반 메커니즘을 사용하기 때문입니다. Datastream은 프라이빗 연결 패턴(구성에 따라 VPC connectivity/Private Service Connect 등)을 지원하므로 트래픽을 private IP 경로로 유지할 수 있습니다. 변경 사항을 BigQuery에 end-to-end <10s 지연 시간과 99.9% 전달 신뢰성으로 적재하려면, 권장 패턴은 Datastream CDC를 Google 제공 Datastream-to-BigQuery Dataflow template을 사용하는 streaming pipeline으로 연결하는 것입니다. Dataflow는 autoscaling, checkpointing, 그리고 exactly-once/at-least-once 처리 시맨틱(싱크 동작에 따라)을 제공하여 높은 전달 신뢰성과 다운타임 없는 지속 운영을 가능하게 합니다. 주요 기능 / 구성 / 모범 사례: - 12개 필수 테이블에 대한 include list(부분 복제)를 사용하여 PostgreSQL CDC용 Datastream을 구성합니다. - private connectivity(퍼블릭 엔드포인트 없음)와 최소 권한의 데이터베이스 replication user를 사용합니다. - Datastream-to-BigQuery Dataflow template을 사용해 지속적 ingestion, 확장, 운영 관리를 처리합니다. - 스키마 진화 처리 활성화: Datastream은 DDL 변경을 캡처하며 template/pipeline이(지원되는 변경 유형 범위 내에서) BigQuery로 스키마 업데이트를 전파할 수 있어 수동 개입을 줄입니다. - Google Cloud Architecture Framework에 따라 신뢰성을 설계합니다: 리전 리소스를 적절히 사용하고, lag/throughput을 모니터링하며, 알림을 설정하고, 2,500 changes/sec 및 1.8 TB 초기 상태에 대해 quota(BigQuery streaming inserts, Dataflow worker limits, Datastream throughput)를 계획합니다. 흔한 오해: - “Federated queries”는 더 단순해 보이지만, 데이터를 복제하지 않으며 대규모에서 sub-10-second 분석 최신성 요구를 충족하지 못합니다. - “DMS가 BigQuery로 복제할 수 있다”는 흔한 혼동입니다: DMS는 database-to-database 마이그레이션/복제(예: Cloud SQL/AlloyDB로)를 위한 것이지, BigQuery로의 지속적 CDC를 주 타깃으로 하는 서비스가 아닙니다. - “Custom polling service”는 유연해 보이지만 관리형 서비스/확장/신뢰성 요구를 위반하며, 보통 낮은 지연 시간 CDC를 무거운 엔지니어링 없이 달성하기 어렵습니다. 시험 팁: private-only 소스, 에이전트 불가, 지속적 CDC, BigQuery 타깃, 낮은 지연 시간, 관리형 스키마 변경 처리가 보이면—Datastream + Dataflow template to BigQuery를 떠올리세요. DMS는 분석용 BigQuery ingestion이 아니라 운영 DB 간 마이그레이션에 사용하세요.

2
문제 2

You are designing a global order reconciliation service for a multinational retail platform. Applications in North America, Europe, and Asia must be able to read and write concurrently, with p95 cross-region transaction commit latency under 200 ms. The database must be fully managed, relational (ANSI SQL), provide global external consistency with RPO=0, support online schema changes, and meet a 99.99% availability target. Which Google Cloud service should you choose?

Bigtable은 매우 높은 처리량과 저지연 key/value 접근(time-series, IoT, analytics serving)에 최적화된 완전 관리형 wide-column NoSQL 데이터베이스입니다. ANSI SQL 관계형이 아니며, Spanner와 같은 전 세계 외부 일관성 기반의 멀티 리전 트랜잭션 시맨틱을 제공하지 않습니다. 가용성을 위해 복제할 수는 있지만, 엄격한 일관성과 온라인 관계형 스키마 진화 요구사항을 갖는 리전 간 ACID 트랜잭션에는 적합하지 않습니다.

Firestore는 강력한 일관성과 멀티 리전 복제 옵션을 갖춘 완전 관리형 문서 데이터베이스이며, 글로벌 애플리케이션을 지원할 수 있습니다. 그러나 관계형 ANSI SQL 데이터베이스가 아니고, 관계형으로 설명된 주문 정산 시스템에서 기대되는 관계형 스키마, 조인, SQL 트랜잭션 모델을 제공하지 않습니다. 또한 Spanner를 가리키는 전형적인 “external consistency + SQL + global transactions” 요구사항과도 일치하지 않습니다.

Cloud SQL for MySQL은 관리형 관계형 데이터베이스이지만, 기본적으로 리전 단위입니다. 리전 간 설계는 일반적으로 read replica와 비동기 복제에 의존하므로 RPO=0을 보장할 수 없습니다. 동시 멀티 리전 쓰기와 global external consistency를 달성하는 것은 Cloud SQL의 기능이 아닙니다. 장애 조치 시 primary가 변경되며, 복제 모드에 따라 운영 복잡성과 잠재적 데이터 손실이 발생할 수 있습니다. active-active 쓰기로 전 세계 99.99%를 달성하는 것은 이 서비스의 목표 사용 사례가 아닙니다.

Cloud Spanner는 모든 요구사항을 직접 충족하는 유일한 Google Cloud 데이터베이스입니다: 완전 관리형, ANSI SQL을 지원하는 관계형, global external consistency(true serializability), RPO=0을 위한 동기식 복제, 그리고 99.99% 가용성을 위해 설계된 멀티 리전 구성. 여러 리전에서의 동시 읽기/쓰기를 지원하며 온라인 스키마 변경을 제공합니다. 주문 처리 및 정산(reconciliation)과 같은 글로벌 트랜잭션 시스템을 위해 목적에 맞게 설계되었습니다.

문제 분석

핵심 개념: 이 문제는 동시 다중 리전 읽기/쓰기를 강력한 일관성(외부 일관성, external consistency)으로 지원하고, 데이터 손실이 0(RPO=0)이며, 매우 높은 가용성을 제공하는 완전 관리형 전 세계 분산 관계형 데이터베이스를 선택하는지를 평가합니다. 정답이 맞는 이유: Cloud Spanner는 Google Cloud의 전 세계 분산, 수평 확장 가능한 ANSI SQL 관계형 데이터베이스로, 멀티 리전 active-active 워크로드를 위해 설계되었습니다. 리전 간 트랜잭션에 대해 외부 일관성(true serializability)을 제공하는데, 이것이 “global external consistency with RPO=0” 요구사항의 핵심입니다. Spanner에서는 멀티 리전 구성에서 커밋이 복제본들에 동기식으로 복제되므로, 커밋이 승인(acknowledged)되면 한 리전이 장애가 나더라도 내구성이 보장됩니다(RPO=0). 또한 Spanner는 완전 관리형이며 온라인 스키마 변경을 지원하여 운영 요구사항에도 부합합니다. 주요 기능 / 구성 / 모범 사례: - 멀티 리전 인스턴스 구성(예: nam3, eur3, asia1)은 지리적으로 분리된 리전 간 고가용성과 동기식 복제를 제공합니다. 적절히 구성하면 99.99% 가용성 목표를 지원합니다. - 외부 일관성은 Spanner의 TrueTime 기반 동시성 제어로 구현되어, 전 세계적으로 일관된 읽기와 쓰기를 보장합니다. - ANSI SQL 및 관계형 모델링이 핵심 기능이며, 보조 인덱스와 트랜잭션을 포함합니다. - 온라인 스키마 변경은 다운타임 없이 많은 스키마 업데이트를 가능하게 합니다(글로벌 리테일 플랫폼에 중요). - 지연 시간: 리전 간 커밋 지연은 복제본 배치와 네트워크 거리의 영향을 받습니다. 강력한 일관성으로 리전 간 트랜잭션이 반드시 필요할 때 Spanner가 의도된 서비스입니다. 실제로는 p95 목표를 맞추기 위해 인스턴스 구성과 애플리케이션 접근 패턴(예: locality, leader placement)을 설계합니다. 흔한 오해: Firestore는 멀티 리전이며 강력한 일관성을 제공하지만, NoSQL 문서 데이터베이스로서 ANSI SQL 관계형이 아닙니다. Cloud SQL은 관계형이지만, 대륙 간 외부 일관성과 RPO=0을 만족하는 글로벌 active-active 쓰기를 위해 설계되지 않았습니다. 리전 간 복제는 일반적으로 비동기이며, 장애 조치 시 primary가 변경됩니다. Bigtable은 wide-column NoSQL로, 관계형 SQL 트랜잭션이나 리전 간 외부 일관성을 제공하지 않습니다. 시험 팁: “global”, “concurrent writes in multiple regions”, “ANSI SQL”, “external consistency”, “RPO=0”가 보이면 기본적으로 Cloud Spanner를 선택하세요. 대신 PostgreSQL/MySQL 호환성과 read replica 및 리전 HA를 강조하면 Cloud SQL을, 문서 데이터와 오프라인 동기화를 강조하면 Firestore를, 대규모 처리량의 key-value/time-series를 강조하면 Bigtable을 떠올리세요.

3
문제 3

Your company needs to relocate a high-traffic payment ledger database from a co-location data center to Google Cloud. The source is MySQL 8.0.28 using the InnoDB engine with binary logging enabled in ROW format; the dataset is 1.6 TB, averaging 900 TPS with bursts up to 1,500 TPS. A dedicated Cloud VPN tunnel provides 1 Gbps bandwidth between on-premises and Google Cloud. You must preserve ACID transactions and keep the production cutover under 3 minutes at 02:00 UTC. Cloud SQL for MySQL supports the source version. What should you do?

정답입니다. Database Migration Service는 지원되는 MySQL 데이터베이스를 최소한의 다운타임으로 Cloud SQL로 마이그레이션하기 위해 Google이 권장하는 서비스입니다. 이 서비스는 1.6 TB 데이터셋의 초기 전체 load를 수행한 다음, MySQL binlog-based replication을 사용하여 source의 지속적인 변경 사항을 계속 반영합니다. 이는 900 TPS를 유지하고 최대 1,500 TPS까지 증가하는 데이터베이스에 정확히 필요한 방식입니다. source에 이미 ROW format의 binary logging이 활성화되어 있으므로, 사전 요구 사항도 DMS continuous migration과 잘 맞습니다. 이를 통해 팀은 대량 전송 중에도 production을 계속 온라인 상태로 유지할 수 있고, 3분의 cutover 시간 창은 writes 중지, replication 따라잡기, 마이그레이션 완료, 클라이언트 리디렉션에만 사용할 수 있습니다.

오답입니다. Cloud Data Fusion은 주로 ETL 및 데이터 통합 플랫폼이지, 낮은 다운타임 cutover를 위한 전용 트랜잭션 데이터베이스 마이그레이션 서비스가 아닙니다. 테이블별 pipeline 접근 방식은 높은 트래픽의 payment ledger에 대해 commit 순서, 트랜잭션 일관성, 또는 continuous synchronization을 자연스럽게 보장하지 못합니다. 또한 마이그레이션 중 발생하는 변경 사항을 처리하려면 상당한 다운타임이나 사용자 정의 reconciliation logic이 필요합니다. 따라서 엄격한 3분 미만 cutover 요구 사항이 있는 1.6 TB OLTP 데이터베이스에는 적합하지 않습니다.

오답입니다. mysqldump는 logical export 도구이며, 다운타임을 3분 미만으로 유지해야 하는 1.6 TB production 데이터베이스에는 일반적으로 너무 느립니다. export를 압축하더라도 dump, 전송, import, 검증에 걸리는 총 시간은 허용된 outage 시간 창보다 훨씬 길어집니다. 이 방법은 export와 import 중 source와 target 모두에 큰 부하를 주어 운영 위험도 증가시킵니다. 더 작은 데이터베이스나 긴 다운타임이 허용되는 maintenance window에는 적절할 수 있지만, 이 시나리오에는 맞지 않습니다.

오답입니다. 테이블을 CSV로 export하고 Cloud SQL로 import하는 방식은 이 정도 규모와 중요도를 가진 트랜잭션 MySQL 마이그레이션에는 적합하지 않은 수동 bulk-load 패턴입니다. CSV 워크플로는 상당한 추가 작업 없이는 triggers, routines, foreign keys 및 기타 schema-level objects와 같은 전체 데이터베이스 의미를 보존하지 못합니다. import 후 indexes와 constraints를 재구성하면 시간과 복잡성이 더 늘어나므로 outage는 3분을 훨씬 초과하게 됩니다. 이 접근 방식은 낮은 다운타임 마이그레이션이 필요한 payment ledger보다는 분석용 데이터 이동에 더 적합합니다.

문제 분석

핵심 개념: 이 문제는 continuous replication(binlog-based CDC)을 사용하는 Database Migration Service (DMS)를 통해 MySQL을 Cloud SQL로 낮은 다운타임으로 마이그레이션하는 방법을 테스트합니다. 데이터베이스 계층에서 ACID 동작을 유지하면서 엄격한 cutover RTO(3분 미만)를 충족하는 데 중점을 둡니다. 정답인 이유: 1.6 TB 데이터셋과 지속적인 900 TPS(최대 1,500까지 급증) 환경에서는 어떤 “offline” export/import 방식(mysqldump/CSV)도 3분보다 훨씬 오래 걸리며 긴 다운타임을 초래합니다. DMS는 MySQL 8.0에서 Cloud SQL for MySQL로의 마이그레이션을 지원하며, 초기 load 이후 MySQL binary logs의 ROW format 기반 continuous replication을 수행할 수 있습니다. 초기 load를 미리 실행하고 replication이 거의 따라잡은 상태를 유지하면, 최종 cutover는 짧고 통제된 작업이 됩니다: source에서 writes를 중지하고, replication lag가 거의 0이 되도록 기다린 뒤, destination을 promote하고, 애플리케이션의 연결 대상을 전환합니다. 주요 기능 / 구성 / 모범 사례: - binlog-based replication을 사용하는 DMS continuous migration을 사용합니다(GTID를 사용할 수 있으면 권장, 그렇지 않으면 file/position). source에 ROW binlog format(문제에서 제공됨)이 설정되어 있고, 초기 load 중 logs가 삭제되지 않도록 적절한 retention이 설정되어 있는지 확인합니다. - 네트워크 처리량을 검증합니다: 1 Gbps VPN(이론상 약 125 MB/s, 실제는 더 낮음)은 continuous replication과 시간에 걸친 초기 load에 충분합니다. 핵심은 cutover가 1.6 TB를 해당 시간 창 동안 전송하는 것이 아니라, 남아 있는 변경 사항을 반영하는 데만 의존한다는 점입니다. - 트랜잭션 무결성을 유지합니다: InnoDB + row-based binlogs는 commit된 변경 사항을 결정적으로 replication할 수 있게 합니다. 애플리케이션 cutover에는 connection string 업데이트와 필요 시 DNS/connection pool 새로고침이 포함되어야 합니다. - Google Cloud Architecture Framework의 reliability 지침을 따릅니다: 리허설을 수행하고, replication lag를 모니터링하며, rollback 계획을 수립합니다(source를 잠시 read-only 상태로 유지하되 사용 가능하게 둠). 흔한 오해: - “mysqldump가 가장 간단하다”: 작은 데이터베이스에는 맞지만, 1.6 TB에서는 긴 다운타임이 발생하고 3분 요구 사항을 충족하지 못할 위험이 큽니다. - “ETL 도구로 데이터를 마이그레이션할 수 있다”: Data Fusion pipelines는 변환/분석 중심의 데이터 이동용이지, 거의 무중단으로 트랜잭션 일관성을 유지하기 위한 용도가 아닙니다. - “CSV export가 더 빠르다”: schema 충실도(constraints, triggers, routines)를 잃고, index 재구성이 필요하며, 여전히 긴 다운타임을 의미합니다. 시험 팁: 대용량 데이터셋 + 엄격한 cutover 시간 창 + binlogs가 활성화된 MySQL이 보이면, 기본적으로 DMS continuous migration(CDC)을 떠올리세요. dump/CSV import는 작은 데이터셋이거나 다운타임이 허용될 때만 사용하세요. 또한 Cloud SQL은 read replicas를 지원하지만, 환경 간 마이그레이션은 managed되고 모니터링 가능한 cutover를 위해 DMS로 처리하는 것이 가장 적합하다는 점도 기억하세요.

4
문제 4

Your team runs a meal-delivery ordering platform in us-central1. The API is served from Cloud Run, and transactional data is stored in a single Cloud SQL for PostgreSQL instance with automatic maintenance updates enabled. 92% of customers are in the America/Chicago time zone and expect the app to be available every day from 6:00 to 22:00 local time. Security policy requires that database maintenance patches be applied within 7 days of release. You need to apply regular Cloud SQL maintenance without creating downtime for users during operating hours. What should you do?

유지보수 window를 설정하면 유지보수 발생 시점을 제어하는 데는 도움이 되지만, 패치에 재시작이 필요한 경우가 많기 때문에 단일 Cloud SQL 인스턴스에서 다운타임을 방지하지는 못합니다. 또한 Cloud SQL 유지보수 window는 UTC로 구성되므로 “02:00–03:00 America/Chicago”처럼 로컬 타임존으로 설정이 적용되는 방식이 아닙니다. 비프로덕션을 먼저 적용하도록 sequencing하는 것은 좋은 관행이지만, 프로덕션 가용성 문제를 해결하지는 못합니다.

read replica는 읽기 트래픽을 오프로딩할 수 있지만, primary 유지보수 동안 트랜잭션(쓰기 중심) 시스템에 대해 자동적이고 끊김 없는 연속성을 제공하지는 못합니다. Cloud SQL replica는 비동기이며, replica를 primary로 promotion하는 것은 중단을 수반하는 운영 이벤트이고 일반적으로 연결 endpoint 변경과 신중한 failover 계획이 필요합니다. 이는 운영 시간 동안 사용자 다운타임을 피해야 한다는 요구사항을 충족하지 못합니다.

유지보수 알림과 일정 재조정은 운영 측면에서 유용하지만 다운타임을 제거하지는 못합니다. 요구사항은 7일 이내 패치를 적용하고 06:00–22:00 로컬 시간 동안 다운타임을 피하는 것입니다. 사용자에게 알린다는 것은 다운타임을 수용한다는 의미이므로 명시된 목표와 충돌합니다. 또한 유지보수 시점은 Google의 유지보수 정책과 패치 컴플라이언스 기간에 의해 제약될 수 있습니다.

Cloud SQL High Availability (regional)는 계획된 유지보수와 비계획 장애 모두에서 다운타임을 최소화하도록 설계되었습니다. 다른 zone에 동기식 standby가 있으므로, 유지보수 중 Cloud SQL이 fail over하여 서비스가 최소한의 중단으로 계속 사용 가능하도록 할 수 있습니다. 이는 Architecture Framework의 신뢰성 원칙에 가장 잘 부합하며, 운영 시간 동안 사용자에게 영향을 주지 않으면서 7일 이내 패치 요구사항을 충족합니다.

문제 분석

핵심 개념: 이 문제는 Cloud SQL 유지보수 동작과 계획된 유지보수 동안 가용성을 확보하도록 설계하는 방법을 평가합니다. Cloud SQL에서 유지보수(OS/데이터베이스 패치)는 재시작이 필요할 수 있으며, 따라서 단일 인스턴스 배포에서는 다운타임이 발생할 수 있습니다. Google Cloud Architecture Framework의 핵심 아키텍처 원칙은 고가용성을 위해 설계하고 단일 장애 지점을 최소화하는 것입니다. 정답이 맞는 이유: Cloud SQL for PostgreSQL에 High Availability (regional)를 활성화하면 동일 리전(us-central1) 내의 다른 zone에 동기식(synchronous) standby를 둔 primary 인스턴스가 생성됩니다. 유지보수 중 Cloud SQL은 standby로 제어된 failover를 수행하고 업데이트를 적용한 뒤 (선택적으로) 다시 fail back할 수 있습니다. 이는 단일 인스턴스를 패치하는 것에 비해 사용자에게 보이는 중단을 크게 줄여, 패치를 7일 이내 적용해야 하는 정책을 준수하면서도 운영 시간(06:00–22:00 America/Chicago) 동안 다운타임이 없어야 한다는 요구사항을 충족하는 데 도움이 됩니다. 주요 기능 / 구성: - Cloud SQL HA (regional)는 자동 failover 및 regional IP 옵션을 포함한 zonal redundancy를 사용합니다. - 유지보수는 스케줄링할 수 있지만, 유지보수 window가 있더라도 단일 인스턴스는 재시작 동안 여전히 다운타임을 겪습니다. - HA는 고가용성과 계획/비계획 다운타임 감소가 필요한 프로덕션 워크로드에 권장되는 접근 방식입니다. - Cloud Run은 stateless이며 짧은 연결 끊김을 허용할 수 있고, HA는 데이터베이스 측 중단 구간을 최소화합니다. 흔한 오해: - 유지보수 window만 설정(Option A)하면 다운타임이 제거되는 것이 아니라 발생 시점만 제어합니다. 또한 Cloud SQL 유지보수 window는 UTC로 구성되며, 프로덕션이 단일 인스턴스라면 인스턴스 간 “sequencing”은 도움이 되지 않습니다. - read replica(Option B)는 읽기 확장과 재해 복구 패턴에 유용하지만 비동기(asynchronous)이며, 유지보수 중 쓰기(write)에 대해 자동으로 primary를 대체하려면 promotion과 애플리케이션 재구성이 필요합니다. - 사용자에게 알림(Option C)은 운영 시간 동안 다운타임을 피해야 한다는 요구사항을 충족하지 못합니다. 시험 팁: Cloud SQL에서 “유지보수 중 다운타임 회피”가 보이면 먼저 HA (regional)를 떠올리세요. 유지보수 window는 스케줄링을 위한 것이지 다운타임을 제거하는 것이 아닙니다. read replica는 끊김 없는 쓰기 가용성을 제공하지 않습니다. 또한 Cloud SQL 유지보수 window는 UTC로 지정되며, 보안 패치 타임라인 때문에 제한된 기간 내 유지보수가 강제될 수 있으므로 HA가 가장 안전하고 컴플라이언스 친화적인 설계입니다.

5
문제 5

You operate a Cloud SQL for PostgreSQL deployment in Google Cloud. The primary instance runs in zone europe-west1-b, and a read replica runs in zone europe-west1-c within the same region. An alert reports that the read replica in europe-west1-c was unreachable for 11 minutes due to a zonal network disruption. You must ensure that the read-only workload continues to function and that the replica remains available with minimal manual intervention. What should you do?

primary의 clone은 read replica와 동일하지 않습니다. clone은 독립적인 복사본이며, 생성 후 primary로부터 asynchronous replication을 계속하지 않습니다. read traffic에 clone을 사용하면 시간이 지나면서 data divergence가 발생하고 더 많은 수동 관리가 필요합니다. 따라서 관리되는 read replica topology를 적절히 복구하지 못합니다.

이것이 최선의 선택인 이유는 read-only workload가 serving replica에 의존하고 있는데, 유일한 replica에 장시간 접근할 수 없기 때문입니다. 새 read replica를 생성하는 것은 primary를 write용으로 online 상태로 유지하면서 read capacity를 복구하는 가장 직접적인 방법입니다. traffic을 새 replica로 리디렉션하면 workload 요구 사항을 충족할 수 있으며, automatic recovery를 기다리는 것은 서비스 연속성을 보장하지 못합니다. 여러 replica를 미리 구성해 두는 것에 비하면 이상적이지는 않지만, 제시된 선택지 중에서는 가장 강력한 복구 조치입니다.

이 선택지는 read replica가 정상 zone에서 자동으로 다시 생성된다는 가정에 의존하기 때문에 올바르지 않습니다. Cloud SQL은 zonal disruption 이후 read 가용성을 유지하기 위해 단일 read replica를 다른 곳에 자동으로 재생성한다는 문서화된 보장을 제공하지 않습니다. 상태를 확인하는 것은 합리적인 운영 점검이지만, 그 자체로 read-only workload가 계속 동작하도록 보장하지는 않습니다. 문제는 단순히 무엇을 관찰해야 하는지가 아니라, 가용성을 보장하기 위해 무엇을 해야 하는지를 묻고 있습니다.

primary를 재시작하는 것은 불필요하며 잠재적으로 해롭습니다. 문제는 primary database process가 아니라 zonal network disruption으로 인해 replica에 접근할 수 없다는 점입니다. primary를 재시작하면 write traffic이 중단될 수 있고 replica 또는 read service의 복구도 보장하지 못합니다. 실제 failure domain을 해결하지 못한 채 위험만 추가합니다.

문제 분석

핵심 개념: 이 문제는 zonal disruption 동안 Cloud SQL for PostgreSQL read replica의 가용성과 운영 복구를 테스트합니다. Cloud SQL read replica는 별도의 asynchronous replica instance이며, 한 zone에 있는 단일 replica는 여전히 해당 zone의 read traffic에 대한 single point of failure입니다. Cloud SQL은 단일 read replica에 대해 automatic read workload failover를 제공하지 않으므로, 지속적인 read 가용성이 필요하다면 replica capacity를 직접 복구하거나 미리 여러 replica로 설계해야 합니다. 정답인 이유: 유일한 read replica에 11분 동안 접근할 수 없었고, 요구 사항이 최소한의 수동 개입으로 read-only workload가 계속 동작하도록 보장하는 것이므로, 가장 적절한 조치는 최신 사용 가능한 상태에서 새 read replica를 생성하고 read traffic을 그쪽으로 리디렉션하는 것입니다. 이렇게 하면 primary를 중단하지 않고 serving replica를 복구할 수 있습니다. 이는 zonal failure 이후 read 가용성을 다시 확립하기 위한 선택지 중 가장 적절한 운영 대응입니다. 주요 특징: - Cloud SQL read replica는 asynchronous이며, 그 자체만으로 automatic read failover semantics를 제공하지 않습니다. - replica zone에 영향을 주는 zonal outage가 발생하면, 다른 replica가 이미 존재하지 않는 한 read traffic은 serving target을 잃을 수 있습니다. - read replica를 다시 만드는 것은 관리적 복구 작업입니다. 더 강한 복원력을 위해서는 여러 zone에 걸쳐 multiple replica를 배포하고 application 측 routing 또는 connection management를 사용해야 합니다. 흔한 오해: 흔한 실수는 zonal disruption 이후 Cloud SQL이 자동으로 다른 zone에 read replica를 다시 생성한다고 가정하는 것입니다. 또 다른 오해는 primary를 재시작하면 replica 복구에 도움이 된다는 생각인데, 일반적으로는 불필요한 write 중단만 추가합니다. clone 역시 read replica의 대체물이 아닙니다. clone은 replication target이 아니라 독립적인 복사본이기 때문입니다. 시험 팁: - primary HA/failover 동작과 read replica 동작을 구분하세요. 둘은 동일하지 않습니다. - 문제가 read workload 연속성 유지에 대해 묻는다면, replica redundancy와 traffic redirection을 떠올리세요. - replica가 하나뿐이고 그것이 사용할 수 없게 되면, 아키텍처에 이미 추가 replica가 포함되어 있지 않은 한 수동 재생성이 필요할 수 있습니다.

이동 중에도 모든 문제를 풀고 싶으신가요?

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.

6
문제 6

You manage a Cloud SQL for PostgreSQL instance and currently run a 120-line Python 3.11 script that executes SELECT statements to collect table bloat and index usage metrics, writes a CSV to a Cloud Storage bucket, and publishes a Pub/Sub message; the script is stateless and completes in under 90 seconds. You need to run this job automatically every Monday at 02:00 UTC while minimizing operational cost and operational overhead. What should you do?

Compute Engine VM에 cron을 사용하면 스크립트를 실행할 수는 있지만 OS 유지보수, 패치, 모니터링, 그리고 02:00 UTC에 VM이 항상 사용 가능하도록 보장하는 등 운영 오버헤드가 추가됩니다. 작업은 매주 약 90초만 실행되는데도 VM을 프로비저닝된 상태(종종 24/7 실행)로 유지해야 하므로 일반적으로 비용이 더 높습니다. 이는 비용과 운영을 최소화하라는 요구사항과 충돌합니다.

Cloud Composer(관리형 Airflow)는 복잡한 워크플로, 의존성, 다단계 파이프라인을 위해 설계되었습니다. 주 1회 실행되는 120줄짜리 단일 스크립트에는 Composer가 과도하며, 상당한 비용(환경 리소스가 지속적으로 실행)과 운영 복잡성(DAG 관리, Airflow 개념, 환경 업그레이드)을 유발합니다. “운영 비용과 오버헤드 최소화”와 맞지 않습니다.

Cloud Functions는 짧고 상태 비저장인 Python 작업에 매우 적합하며, Cloud Scheduler는 정확한 시간에 매주 실행되도록 하는 관리형 cron 트리거를 제공합니다. 이 접근은 serverless이며 자동으로 확장되고 사용량 기반 과금이므로 비용과 운영 부담을 모두 최소화합니다. 함수는 최소 권한 service account를 사용해 Cloud SQL에 안전하게 연결하고, Cloud Storage에 쓰고, Pub/Sub에 publish할 수 있습니다.

Cloud Tasks는 주로 큐 기반 dispatch, rate limiting, retry policy를 갖춘 비동기 task 실행을 위한 서비스입니다. cron 스케줄링을 기본으로 제공하지 않으므로 매주 task를 enqueue하려면 Cloud Scheduler(또는 다른 트리거)가 여전히 필요해 불필요한 구성 요소가 추가됩니다. 단순한 주간 작업이라면 Cloud Scheduler에서 함수를 직접 호출하는 것이 더 단순하고, 더 저렴하며, 운영 부담이 더 낮습니다.

문제 분석

핵심 개념: 이 문제는 Cloud SQL, Cloud Storage, Pub/Sub와 상호작용하는 짧고 상태 비저장(stateless)인 관리 작업에 대해 운영 부담이 가장 낮고 비용이 가장 낮은 serverless 스케줄링 패턴을 선택하는지를 평가합니다. 핵심 서비스는 serverless 실행을 위한 Cloud Functions(또는 Cloud Run)와 cron과 유사한 트리거를 위한 Cloud Scheduler입니다. 정답이 맞는 이유: 90초 미만에 완료되는 상태 비저장 Python 스크립트는 Cloud Functions에 매우 적합합니다. 서버 관리, OS 패치, cron 신뢰성 문제를 피할 수 있습니다. Cloud Scheduler는 특정 스케줄(매주 월요일 02:00 UTC)로 동작하는 관리형 cron 서비스를 제공하며 HTTP 트리거 함수 호출(또는 Pub/Sub로 publish)도 가능합니다. 이 조합은 항상 켜져 있는 VM이나 지속 실행되는 오케스트레이션 환경 비용이 아니라 호출 및 실행 시간에 대해서만 비용을 지불하므로 운영 오버헤드와 비용을 최소화합니다. 주요 기능 / 구성 / 모범 사례: - (권장) 2nd gen Cloud Function을 HTTP trigger로 사용하고 IAM을 통해 invoker 권한을 최소 권한(least privilege)으로 제한합니다. - Cloud SQL for PostgreSQL에는 Cloud SQL Python Connector 또는 Cloud SQL Auth Proxy 방식으로 연결합니다(2nd gen은 direct VPC connectivity 옵션을 지원). 가능하다면 IAM DB authentication을 선호하고, Secret Manager에 secret을 저장합니다. - 함수의 service account에는 필요한 역할만 부여합니다: Cloud SQL Client, Storage Object Creator(또는 특정 bucket 권한), Pub/Sub Publisher. - 적절한 timeout(>= 90s), memory, concurrency 기본값을 설정하고 단일 목적(single-purpose)으로 유지합니다. - Cloud Scheduler는 UTC timezone에서 "0 2 * * 1" 같은 cron expression을 사용합니다. 흔한 오해: - Cloud Composer는 “enterprise-grade”처럼 보일 수 있지만, 단일 짧은 작업에는 무겁고 비용이 큽니다. - Cloud Tasks는 스케줄링과 자주 혼동되는데, 이는 비동기 task dispatch 및 retry 제어를 위한 것이지 매주 cron 스케줄링을 위한 것이 아닙니다. - VM + cron은 단순하지만 운영 부담(패치, 모니터링, 가용성) 증가로 이어지며, 항상 켜져 있는 리소스 때문에 일반적으로 비용도 더 듭니다. 시험 팁: “stateless”, “short runtime”, “minimize ops/cost”가 보이면 기본 선택은 serverless compute(Cloud Functions/Cloud Run) + 시간 기반 트리거를 위한 Cloud Scheduler입니다. Cloud Tasks는 이벤트나 애플리케이션에 의해 시작되는 대량의 재시도 가능한 백그라운드 작업에 사용하고, 매주 스케줄에는 사용하지 않습니다.

7
문제 7

A nightly containerized ETL job running as the service account sa-etl@project-id.iam.gserviceaccount.com must read rows from a Cloud SQL for MySQL instance in us-central1 via the Cloud SQL Auth Proxy using a standard MySQL user (not IAM DB Auth) and then upsert up to 50,000 records into a regional Cloud Spanner database in us-central1. You must grant only predefined IAM roles following the principle of least privilege so the job can connect to Cloud SQL to read data and modify a table in Cloud Spanner; which roles should you assign to the service account?

roles/cloudsql.viewer는 Cloud SQL Auth Proxy 연결성에 충분하지 않습니다. Viewer는 인스턴스 구성/메타데이터를 나열하고 조회할 수 있지만, 프록시가 사용하는 Cloud SQL Admin API를 통해 연결을 설정하는 데 필요한 권한을 제공하지 않습니다. roles/spanner.databaseUser는 Spanner DML에 적절하지만, Cloud SQL 측이 실패하여 작업이 여전히 연결할 수 없습니다.

roles/cloudsql.client는 Cloud SQL Auth Proxy/Cloud SQL connectors를 사용하여 Cloud SQL 인스턴스에 연결할 수 있도록 워크로드 identity(service account)에 부여하는 올바른 최소 사전 정의 역할입니다. 작업이 표준 MySQL user를 사용하므로, IAM은 DB 인증이 아니라 프록시 연결에만 필요합니다. roles/spanner.databaseUser는 Spanner 데이터(Upsert 포함)를 관리자 권한 없이 읽고/쓰기 위한 최소 권한 역할입니다.

roles/cloudsql.editor와 roles/spanner.admin은 둘 다 과도합니다. Cloud SQL Editor는 인스턴스(설정, flags, 일부 컨텍스트에서 users)를 수정할 수 있어 읽기 전용 ETL 소스 연결에 필요하지 않습니다. Spanner Admin은 인스턴스와 데이터베이스 생성/삭제 및 IAM/policies 변경을 허용하며, 기존 데이터베이스에 행을 upsert하는 요구사항을 훨씬 초과합니다. 이는 최소 권한을 위반하고 위험을 증가시킵니다.

roles/cloudsql.instanceUser는 Cloud SQL에 대한 IAM database authentication을 위한 것으로, database login 자체가 IAM principal에 연결되는 경우에 사용됩니다. 이 시나리오에서는 작업이 표준 MySQL username과 password를 사용하므로, 해당 role은 Cloud SQL Auth Proxy를 통한 연결에 필요한 최소 권한 선택이 아닙니다. proxy/connectors는 roles/cloudsql.client가 제공하는 Cloud SQL connection permissions를 필요로 하며, MySQL account는 별도로 database 내 SELECT privileges가 필요합니다. 따라서 D는 명시된 authentication model에 대해 잘못된 Cloud SQL role을 선택했기 때문에 틀렸습니다.

문제 분석

핵심 개념: 이 문제는 Cloud SQL Auth Proxy(Cloud SQL for MySQL)와 Cloud Spanner를 사용한 크로스-데이터베이스 ETL에서 최소 권한(least privilege) IAM을 테스트합니다. 특히 Cloud SQL 연결 권한(IAM)과 데이터베이스 인증(MySQL user/password), 그리고 DML을 위한 Spanner 데이터 플레인 권한을 구분합니다. 정답이 맞는 이유: Cloud SQL Auth Proxy를 통해 연결하려면, 호출 주체(identity)가 Cloud SQL API 계층에서 인스턴스 연결 메타데이터/인증서를 획득하고 보안 연결을 설정할 수 있도록 권한이 부여되어야 합니다. 이를 부여하는 사전 정의 역할(predefined role)은 roles/cloudsql.client입니다. 표준 MySQL user(IAM DB Auth 아님)를 사용하므로, IAM은 MySQL 자체에 인증하는 데 사용되지 않습니다. IAM은 프록시가 인스턴스에 연결하는 것을 승인하는 데만 사용됩니다. Cloud Spanner의 경우 작업이 최대 50,000개의 레코드를 upsert(insert/update)해야 하므로 데이터베이스에 대한 쓰기 권한이 필요합니다. roles/spanner.databaseUser는 Spanner 데이터베이스에 대한 애플리케이션 수준 접근을 위해 의도된 최소 권한 사전 정의 역할로, 인스턴스/데이터베이스 생성이나 스키마 변경 같은 관리 기능 없이 데이터 읽기 및 쓰기(DML)를 포함합니다. 주요 기능 / 모범 사례: - Cloud SQL Auth Proxy는 인스턴스에 연결하기 위한 IAM 권한이 필요하며, roles/cloudsql.client가 이를 위한 표준 최소 역할입니다. - 데이터베이스 자격 증명은 분리됩니다: MySQL user는 MySQL에서 SELECT 권한을 가져야 하지만, 이는 IAM으로 부여되지 않습니다. - Spanner 접근은 역할 분리를 따라야 합니다: 애플리케이션 작성자는 roles/spanner.databaseUser를 사용하고, 관리자는 roles/spanner.admin을 사용합니다. - Google Cloud Architecture Framework의 보안 원칙인 최소 권한 및 blast radius 최소화에 부합합니다. 흔한 오해: - 작업이 “읽기”를 하므로 roles/cloudsql.viewer가 그럴듯해 보이지만, viewer는 인스턴스 메타데이터를 보는 용도이며 Auth Proxy에 필요한 connect 기능을 부여하지 않습니다. - roles/cloudsql.editor 또는 roles/spanner.admin은 과도한 권한이며 최소 권한을 위반합니다. - roles/cloudsql.instanceUser는 Cloud SQL 연결성과 자주 혼동됩니다. 이는 주로 IAM database authentication 및 인스턴스 수준 사용자 개념과 관련이 있으며, 전통적인 MySQL user를 사용하는 표준 Auth Proxy 연결 요구사항과는 다릅니다. 시험 팁: - Cloud SQL Auth Proxy/Cloud SQL connectors: 연결성은 “roles/cloudsql.client”를 떠올리세요. - Spanner에서 관리자 권한 없이 애플리케이션 read/write: “roles/spanner.databaseUser.” - 항상 IAM authorization(서비스에 연결/접근)과 DB 내부 권한 부여(MySQL GRANT/Spanner schema roles)를 분리해서 생각하세요.

8
문제 8

Your logistics company is launching a live fleet-tracking map powered by Cloud Bigtable; the service performs approximately 150,000 random point-read operations per second with a 60:1 read-to-write ratio, requires 95th percentile read latency under 10 ms in a single region, and stores about 25 TB of frequently accessed hot data; to meet these latency and throughput targets, which Bigtable storage type should you choose?

엄격한 p95 latency 목표(<10 ms)를 가진 high-volume 랜덤 포인트 읽기가 지배적인 Bigtable 워크로드에는 SSD가 올바른 선택입니다. SSD는 HDD보다 훨씬 높은 랜덤 IOPS와 더 일관된 tail latency를 제공하며, 이는 25 TB의 hot data에서 ~150,000 reads/sec를 처리하는 데 필수적입니다. 여전히 충분한 nodes로 클러스터를 sizing해야 하지만, latency SLO를 충족하기 위한 올바른 스토리지 매체는 SSD입니다.

두 개의 Bigtable instances로 분할하면 총합 용량을 늘릴 수는 있지만, 복잡성(data partitioning, routing logic, 운영 오버헤드)을 추가하며, 기반 스토리지가 적합하지 않다면 지연 시간 제약을 본질적으로 해결하지 못합니다. Bigtable은 nodes를 추가하고 적절한 row-key 분산을 사용하여 인스턴스 내에서 확장하도록 설계되었습니다. 이 문제는 지연 시간/처리량 목표를 충족하기 위해 어떤 스토리지 유형을 선택해야 하는지를 구체적으로 묻고 있습니다.

HDD는 TB당 스토리지 비용을 낮추지만, 지연 시간에 민감한 high-QPS 랜덤 포인트-리드 워크로드에는 적합하지 않습니다. HDD-backed Bigtable은 지연 시간 요구사항이 덜 엄격하고 scan 중심의 액세스 패턴을 가진 대규모 데이터셋에 더 적합합니다. p95 10 ms 미만 조건에서 150,000 random reads/sec라면, nodes를 추가하더라도 HDD는 tail-latency와 IOPS 요구사항을 충족하지 못할 가능성이 큽니다.

Cloud Bigtable은 동일한 instance 내에서 SSD와 HDD를 혼합하는 것을 지원하지 않습니다. 스토리지 유형은 instance level에서 선택됩니다. 개념적으로도, 모든 hot data가 SSD에 있고 액세스가 올바르게 routing되지 않는 한 요구되는 p95 latency를 보장할 수 없습니다. 시험 관점에서는 이를 유효하지 않은 구성으로 보고, hot하고 latency-critical한 워크로드에는 SSD를 선택하세요.

문제 분석

핵심 개념: 이 문제는 Cloud Bigtable 성능 계획—특히 스토리지 유형(SSD vs HDD)이 랜덤 포인트-리드 지연 시간과 지속 처리량에 어떤 영향을 미치는지—를 평가합니다. Bigtable은 낮은 지연 시간의 key/value 액세스에 최적화되어 있지만, 스토리지 매체는 랜덤 읽기의 tail latency(p95/p99)에 큰 영향을 줍니다. 정답이 맞는 이유: 워크로드는 랜덤 포인트 읽기가 지배적입니다: 150,000 reads/sec, read-to-write ratio 60:1. 요구사항은 단일 리전에서 약 25 TB의 hot data를 제공하면서 p95 read latency를 10 ms 미만으로 유지하는 것입니다. 높은 QPS에서 랜덤 액세스 패턴을 처리할 때, SSD-backed Bigtable은 HDD보다 훨씬 낮은 지연 시간과 더 높은 IOPS를 제공합니다. HDD는 대규모 sequential scan과 비용에 민감한 colder dataset에 더 적합하며, 일반적으로 매우 높은 랜덤 읽기 비율을 엄격한 p95 지연 시간 목표와 함께 지속적으로 만족시키기 어렵습니다. 따라서 SSD가 처리량과 지연 시간 SLO를 모두 충족하기 위한 올바른 스토리지 유형입니다. 핵심 기능 / Best Practices: - 지연 시간에 민감하고 high-QPS 랜덤 읽기에는 SSD 스토리지를 사용합니다. - Bigtable nodes를 추가하여 처리량을 확장합니다. 스토리지 유형과 node count가 함께 달성 가능한 QPS와 tail latency를 결정합니다. CPU saturation을 피하고 per-node QPS를 권장 범위 내로 유지할 수 있도록 충분한 nodes를 확보합니다. - 요구사항대로 single-region 설계를 유지합니다. 더 높은 availability 또는 multi-region reads가 필요할 때만 multiple clusters를 사용합니다. - row keys를 설계하여 읽기가 고르게 분산되도록(핫스팟 방지) 하며, 이는 150k QPS에서 매우 중요합니다. 흔한 오해: - “두 인스턴스로 분할”은 읽기 용량을 늘리는 것처럼 보이지만, routing, consistency, 운영 오버헤드를 복잡하게 만들고 HDD의 근본적인 latency/IOPS 한계를 해결하지 못합니다. - “HDD가 더 저렴하다”는 TB당 비용 측면에서는 맞지만, 이 문제는 hot data에 대한 p95 latency와 높은 랜덤 읽기 처리량을 우선합니다. - “한 인스턴스에서 SSD와 HDD를 혼합”은 Bigtable에서 지원되지 않는 구성입니다. 스토리지 유형은 인스턴스 단위로 선택합니다. Exam Tips: Bigtable + 엄격한 sub-10 ms p95 + 높은 랜덤 포인트-리드 QPS를 보면 기본적으로 SSD를 선택하세요. HDD는 주로 비용 최적화가 필요한, 지연 시간 민감도가 낮은 워크로드(예: batch analytics scans)에 사용하며, Bigtable 성능은 주로 node count로 확장되고 스토리지 유형은 랜덤 I/O 지연 시간과 tail behavior에 큰 영향을 준다는 점을 기억하세요.

9
문제 9

You are designing the database layer for a global real-time loyalty points platform for a retail conglomerate. The system must support ACID transactions with strong consistency for balance updates and redemptions. It must store both relational data (customers, stores, balances) and semi-structured JSON attributes (dynamic campaign metadata, per-store rules). It must scale transparently with multi-region writes and low-latency access across at least 3 continents, with RPO=0 and RTO<60 seconds during regional failures. You need a Google Cloud database that satisfies all of these requirements. What should you choose?

Cloud SQL for PostgreSQL은 ACID와 relational modeling을 지원하지만, cross-region read replicas는 asynchronous이며 주로 read scaling과 disaster recovery를 위한 것입니다. strong consistency를 갖춘 active-active multi-region writes를 제공하지 않으며, failover는 일반적으로 promotion을 수반하고 replication lag 가능성이 있어(RPO>0) 문제가 됩니다. 또한 primary writer가 한 리전에 있기 때문에 글로벌 사용자에 대한 latency도 제한됩니다.

Cloud Spanner multi-region은 수평 확장, strong consistency, ACID transactions를 갖춘 전 세계 분산 OLTP를 위해 목적에 맞게 설계되었습니다. 리전 간 synchronous replication을 지원하여(RPO=0 가능), automatic failover로(엄격한 RTO 지원) 고가용성을 제공하며, replica를 통해 저지연 reads도 제공합니다. 또한 relational schemas와 JSON(및 관련 타입)을 사용한 semi-structured data를 지원하여 혼합 데이터 요구사항에 부합합니다.

Datastore mode의 Firestore는 높은 확장성과 multi-region replication을 제공하지만, NoSQL document database이며 고객/매장/잔액에 기대되는 relational 기능(joins, relational constraints)을 동일하게 제공하지 않습니다. transactions를 지원하더라도 모델과 query 패턴이 크게 다르며, 복잡한 relational integrity와 글로벌 strong consistency 기반의 잔액 업데이트를 대규모로 처리하는 용도에는 최적의 선택이 아닙니다.

Bigtable은 매우 높은 처리량과 대규모 time-series 또는 key-value 워크로드에 최적화된 wide-column NoSQL database입니다. relational modeling이나 SQL을 제공하지 않으며, OLTP 시스템이 잔액 업데이트/사용에 필요로 하는 것처럼 row 전반에 걸친 범용 ACID transactions를 지원하지 않습니다. multi-cluster replication은 가용성을 개선하지만, strong consistency를 갖춘 multi-region transactional database는 아닙니다.

문제 분석

핵심 개념: 이 문제는 ACID 트랜잭션과 혼합된 relational + semi-structured 데이터를 지원하는, 전 세계적으로 분산되고 강한 일관성(strong consistency)을 제공하며 수평 확장 가능한 Google Cloud의 OLTP 데이터베이스를 선택하는지를 평가합니다. 정답이 맞는 이유: multi-region 구성의 Cloud Spanner는 리전 전반에 걸친 강한 일관성과 고가용성이 필요한 글로벌 실시간 트랜잭션 시스템을 위해 설계되었습니다. Spanner는 읽기/쓰기에서 external consistency(강한 일관성)와 완전한 ACID 트랜잭션을 제공하며, 이는 로열티 잔액 업데이트 및 사용(중복 사용 방지 및 정확한 잔액 보장)에 필수적입니다. 또한 Spanner가 관리하는 수평 샤딩을 통해 투명하게 확장되므로 수동 파티셔닝을 피할 수 있습니다. 주요 기능 / 구성: 1) Multi-region instance configuration(예: nam3/eur3/asia3)은 대륙 간 저지연 액세스와 자동 failover를 제공합니다. multi-region에서 Spanner는 voting/leader 모델을 사용하는 synchronous replication을 사용하며, 커밋이 리전 간에 복제되어 RPO=0을 가능하게 합니다. 2) 고가용성과 빠른 복구: 리전 장애는 자동 leader 재선출과 남아 있는 replica에서의 서비스 제공으로 처리되며, 이는 엄격한 RTO 목표(장애 유형과 클라이언트 재시도 동작에 따라 보통 수 초~1분 미만)에 부합합니다. 3) 데이터 모델 유연성: Spanner는 relational schema(tables, interleaving/foreign keys)와 JSON data type(및/또는 ARRAY/STRUCT 패턴)을 통한 semi-structured 속성을 지원하여, 동적인 캠페인 메타데이터와 매장별 규칙에 적합합니다. 4) 운영 모범 사례: multi-region configs를 사용하고, locality와 hotspot 회피를 위해 primary keys를 설계하며, 잔액 변경에는 read-write transactions를 사용하고, commit latency 트레이드오프(글로벌 synchronous replication은 single-region 대비 write latency 증가)를 고려합니다. 흔한 오해: PostgreSQL 호환성 때문에 cross-region replica가 있는 Cloud SQL이 매력적으로 보일 수 있지만, multi-region writes에서 strong consistency와 RPO=0을 제공할 수 없습니다. replica는 asynchronous이며 일반적으로 read-only입니다. Firestore와 Bigtable은 전 세계적으로 확장되지만, 여기에서 요구되는 트랜잭션 의미론과 SQL 기반 relational modeling을 갖춘 relational OLTP 시스템은 아닙니다. 시험 팁: “global”, “ACID”, “strong consistency”, “multi-region writes”, “RPO=0”이 보이면 기본 정답은 Spanner입니다. 워크로드가 analytics가 아니라 OLTP(잔액/사용)인지 확인하고, multi-region Spanner는 글로벌 일관성과 가용성을 위해 더 높은 write latency를 감수한다는 점을 기억하세요—이 시나리오에서는 명시적 요구사항입니다.

10
문제 10

You operate a Cloud SQL for MySQL primary instance (sql-prod-eu) in europe-west1 with two cross-region read replicas (sql-dr-us in us-central1 and sql-dr-asia in asia-southeast1); during a 45-minute disaster recovery exercise, you stopped sql-prod-eu and promoted sql-dr-us to primary to handle up to 3,000 write QPS, and now that the exercise is complete you must restore the pre-exercise topology with sql-prod-eu as the primary in europe-west1 and cross-region replicas in us-central1 and asia-southeast1 while preserving all writes that occurred during the test—what should you do?

오답입니다. sql-prod-eu를 다시 온라인 상태로 가져오는 것만으로는 sql-dr-us가 promote된 이후 발생한 write가 반영되지 않으므로, 이를 다시 primary로 만들면 데이터가 손실됩니다. Cloud SQL for MySQL은 이전 primary와 promoted replica 사이의 분기된 이력을 자동으로 조정하지 않습니다. 따라서 replica를 sql-prod-eu로 다시 지정하면 DR 연습의 모든 write를 보존하는 대신 오래된 타임라인을 복구하게 됩니다.

오답입니다. sql-prod-eu를 sql-dr-us의 cross-region read replica로 다시 생성하는 것은 중간 재빌드 단계일 뿐이며, sql-prod-eu를 primary로 복구해야 한다는 요구 사항을 충족하지 못합니다. 이 선택지는 작성된 그대로라면 europe-west1을 primary가 아닌 replica로 남겨두므로, 연습 전 topology가 실제로 복구되지 않습니다. 필요한 조치에는 새 europe-west1 instance가 따라잡은 후 이를 promote하는 단계가 반드시 포함되어야 합니다. 선택지 D는 그 promotion 단계를 명시적으로 포함하므로, 더 적절하고 완전한 정답입니다.

오답입니다. sql-dr-us를 삭제하면 DR 연습 중 생성된 write를 포함하고 있는 instance가 단순히 제거될 뿐입니다. Cloud SQL은 해당 write를 sql-prod-eu로 자동 전송하거나, promoted primary가 삭제될 때 이전 topology를 자동으로 되돌리지 않습니다. 이 선택지는 데이터 손실을 초래하며, 유효한 primary/replica 구성도 복구하지 못합니다.

정답입니다. sql-dr-us가 promote되어 write를 처리한 후에는, DR 기간 동안의 transaction이 완전하게 반영된 유일한 복사본을 가진 권한 있는 primary가 되었습니다. 해당 write를 잃지 않고 europe-west1을 primary region으로 복구하려면, sql-dr-us로부터 europe-west1에 새 read replica를 생성하고, 이것이 따라잡을 때까지 기다린 다음, 이를 promote하여 primary로 만들어야 합니다. 새 europe-west1 primary가 활성화되면, 원하는 topology를 다시 구성하기 위해 us-central1 및 asia-southeast1에 cross-region replica를 재생성할 수 있습니다. 이것이 지원되는 failback 패턴인 이유는 Cloud SQL이 replication을 이전 primary로 역방향으로 되돌려 다시 권한 있는 primary로 만드는 것을 지원하지 않기 때문입니다.

문제 분석

핵심 개념: Cloud SQL for MySQL에서 read replica를 promote하면 원래 replication topology가 끊어지고 새로운 독립형 primary가 생성됩니다. promote 이후에 발생한 모든 write는 해당 promoted instance에만 존재하므로, 이전 primary는 새로운 source of truth로부터 다시 빌드하지 않고는 primary로 복구할 수 없습니다. 정답인 이유: 모든 write를 보존하면서 fail back하려면, 현재 활성 primary로부터 대상 region에 새 instance를 시드하고, replication이 따라잡도록 한 다음, 그 새 regional replica를 promote하여 primary로 만들어야 합니다. 핵심 기능: cross-region read replica는 비동기적으로 복제되고, promotion은 되돌릴 수 없는 topology 변경이며, failback은 이전 primary를 직접 재사용하는 대신 promoted primary로부터 다시 빌드해야 합니다. 흔한 오해: 많은 응시자는 이전 primary를 단순히 다시 시작해서 재사용할 수 있다고 가정하거나, promoted primary를 삭제하면 역할이 자동으로 원복된다고 생각하지만, 둘 다 지원되지 않습니다. 시험 팁: promoted replica가 write를 수락한 상태에서 데이터 손실 없이 원래 primary region을 복구해야 한다면, 원하는 region에서 promoted primary로부터 새 replica를 생성한 뒤 이를 promote하는 선택지를 찾으세요.

합격 후기(6)

J
J***********Nov 24, 2025

학습 기간: 1 month

Cloud Pass helped me master through practical and realistic questions. The explanations were clear and helped me understand.

혜
혜**Nov 21, 2025

학습 기간: 1 month

문제 다 풀고 시험쳤는데 유사한 문제가 많았어요. 다른 분들도 화이팅입니다!

L
L***********Nov 16, 2025

학습 기간: 2 weeks

I studied with Cloud Pass for two weeks, doing around 20 ~30 questions a day. The difficulty level was very similar to the real PCDBE exam. If you’re preparing for this certification, this app is a must have.

A
A************Nov 15, 2025

학습 기간: 1 month

Very close to the real exam. Thanks

P
P************Oct 30, 2025

학습 기간: 1 month

Being able to reset my progress and re-solve the hard questions helped me a lot. Passed!

← 모든 Google Professional Cloud Database Engineer 문제 보기

지금 학습 시작하기

Cloud Pass를 다운로드하고 모든 Google Professional Cloud Database Engineer 기출 문제를 풀어보세요.

Get it on Google PlayDownload on the App Store
Cloud PassCloud Pass

IT 자격증 문제풀이 앱

Get it on Google PlayDownload on the App Store

자격증

AWSGCPMicrosoftCiscoCompTIADatabricks

법률

FAQ개인정보 처리방침서비스 약관

회사

문의하기계정 삭제

© Copyright 2026 Cloud Pass, All rights reserved.

이동 중에도 모든 문제를 풀고 싶으신가요?

앱 받기

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.