교육

Google Professional Cloud Architect Exam Actual Questions#1

김구티2 2024. 3. 8. 23:02

정말이지 혹여나 이것을 보는 사람이 있을까봐 당부한다면.. 정답이 100% 정확하다고는 할 수 없다.

 

1. Your company has decided to make a major revision of their API in order to create better experiences for their developers. They need to keep the old version of the API available and deployable, while allowing new customers and testers to try out the new API. They want to keep the same SSL and DNS records in place to serve both APIs.
What should they do?

 

  • A. Configure a new load balancer for the new version of the API
  • B. Reconfigure old clients to use a new endpoint for the new API
  • C. Have the old API forward traffic to the new API based on the path
  • D. Use separate backend pools for each API path behind the load balancer

새로운 고객과 테스터가 모두 API를 사용할 수 있어야 하고, 이전 버전의 API도 사용할 수 있어야 하며, 배포가 가능하도록 유지해야 한다. 두 API를 모두 제공하기 위해 동일한 SSL과 DNS 레코드도 유지해야 한다.

 

A. 새로운 로드 밸런서를 구성하기 위해서는 새로운 혹은 다른 SSL과 DNS 레코드가 필요하다. 문제는 SSL과 DNS 레코드의 유지를 원하므로 결정어에 어긋난다.

B. 회사는 이전 버전의 API도 사용할 수 있기를 원한다. 그렇기에 이전 클라이언트를 재구성하는 것은 요구사항에 적합하지 않다.

C. 이전 API 뒤에 있는 구현을 중단해야 하는 요구사항이 아니기 때문에 부적합하다. 또한, 이 경우에 새 API에서 버그나 호환성의 문제가 발생할 경우, 불필요한 위험이 생길 가능성이 있다.

D. HTTP(S) 로드 밸런서는 수신 URL을 기준으로 단일 IP에 도달하는 트래픽을 서도 다른 백엔드로 유도할 수 있기 때문에 [D. 로드 밸런서의 뒤의 각 API 경로에 대해 별도의 백엔드 풀 사용]이 정답이 된다.

 

2. Your company plans to migrate a multi-petabyte data set to the cloud. The data set must be available 24hrs a day. Your business analysts have experience only with using a SQL interface.
How should you store the data to optimize it for ease of analysis?

  • A. Load data into Google BigQuery
  • B. Insert data into Google Cloud SQL
  • C. Put flat files into Google Cloud Storage
  • D. Stream data into Google Cloud Datastore

여러 페타바이트의 데이터 셋을 클라우드로 마이그레이션한다. 데이터 셋은 24시간 사용 가능해야 하며. 비즈니스 분석가는 SQL 인터페이스만 사용한 경험이 있다. 분석이 쉽도록 데이터를 최적화하기 위해 데이터를 어떤 방식으로 저장해야 할까?

 

A. 빅쿼리는 표준 SQL 인터페이스를 사용하며, 24시간 내내의 가용성 측면에서도 적합하다. 또한 서버리스이기 때문에 대용량 데이터 분석에 있어 매우 적합하다.

B. 클라우드 SQL은 페타바이트의 크기나 되는 데이터를 다루기엔 적합하지 않다. 클라우드 SQL의 경우, 30TB 까지의 데이터에 적합하다.

C. 클라우드 스토리지에는 SQL 인터페이스가 없다.

D. 클라우드 데이터스토어는 NoSQL 데이터베이스이므로 적합하지 않다.

 

3. The operations manager asks you for a list of recommended practices that she should consider when migrating a J2EE application to the cloud.
Which three practices should you recommend? (Choose three.)

  • A. Port the application code to run on Google App Engine
  • B. Integrate Cloud Dataflow into the application to capture real-time metrics
  • C. Instrument the application with a monitoring tool like Stackdriver Debugger
  • D. Select an automation framework to reliably provision the cloud infrastructure
  • E. Deploy a continuous integration tool with automated testing in a staging environment
  • F. Migrate from MySQL to a managed NoSQL database like Google Cloud Datastore or Bigtable

J2EE 애플리케이션을 클라우드로 마이그레이션할 때 고려해야 하는 권장사항 목록 3가지를 골라 보자.

 

마이그레이션에는 크게 3가지 유형이 존재한다. ① 리프트 & 시프트 ② 개선 및 이동 ③ 교체

그렇기에 A는 배제될 수 있다. C의 Stackdriver Debugger와 같은 모니터링 도구를 사용하면 성능 병목 현상과 디버깅 오류를 진단하는 데 도움이 된다. D에서 인프라 프로비저닝을 자동화하면, 수동 작업이 줄어들고 환경 간에 일관된 구성이 보장된다. E에서 CI/CD 파이프라인은 빌드, 테스트 및 배포 프로세스를 자동화하여 코드 변경 사항을 안정적으로 제공하고, 다운타임을 최소화한다. 스테이징 환경에서 자동화된 테스트를 통해 문제를 미리 식별하고 수정할 수 있다.

 

4. A news feed web service has the following code running on Google App Engine. During peak load, users report that they can see news articles they already viewed.
What is the most likely cause of this problem?

 

  • A. The session variable is local to just a single instance
  • B. The session variable is being overwritten in Cloud Datastore
  • C. The URL of the API needs to be modified to prevent caching
  • D. The HTTP Expires header needs to be set to -1 stop caching

위와 같은 코드가 구글 앱 엔진에서 실행된다. 최대 로드 중에 사용자는 이미 본 뉴스 기사를 볼 수 있다고 한다. 그렇다면 이 문제의 가장 유력한 원인은 무엇인가?

 

정답은 A인 것으로 보인다. 앱 엔진은 부하에 따라 새로운 컨테이너를 자동으로 회전시킨다. 트래픽이 피크에 도달하는 동안, 동일한 사용자가 요청한 HTTP 요청은 다른 컨테이너에서 처리될 수 있다. 각 컨테이너마다 세션이라는 변수가 다시 생성되기 때문에 다른 데이터를 저장할 수 있다. 여기서 문제가 발생하는데, 이 앱이 Stateful하다는 것이다. 세션 변수는 이 앱의 상태를 말하는데, 앱 엔진, 클라우드 런, 클라우드 기능에서 Stateful 변수가 문제가 된다. 이것을 해결하기 위해서는 세션을 일부 데이터베이스에 저장하고, 거기에서 검색하는 것이다. 이런 방식으로 앱은 단일 장소에서 세션을 가져오고, 상태를 Stateless로 한다.

 

5. An application development team believes their current logging tool will not meet their needs for their new cloud-based product. They want a better tool to capture errors and help them analyze their historical log data. You want to help them find a solution that meets their needs.
What should you do?

  • A. Direct them to download and install the Google StackDriver logging agent
  • B. Send them a list of online resources about logging best practices
  • C. Help them define their requirements and assess viable logging tools
  • D. Help them upgrade their current tool to take advantage of any new features

애플리케이션 개발 팀이 그들의 로깅 도구가 클라우드 기반의 새로운 제품에 대한 요구사항을 충족시키지 못할 것이라 여긴다. 그래서 그들은 오류를 포착하고, 과거 로그 데이터를 분석하는 데 도움을 줄 더욱 나은 도구를 원한다.

 

오류 포착, 과거 로그 데이터 분석에 꽂히면 A를 고르게 되고, 요구사항이라는 단어를 보게 되면 C를 고르게 되는 느낌이다. 문제에서는 이 요구사항이라는 것이 무엇인지 기술이 되지 않았다. 그렇기에 성급하게 특정 솔루션을 설치한다는 것은 개발자 입장에서는 매우 위험한 결정이 될 수 있을 것으로 보인다. 문제에서 현재 사용하고 있는 툴에 대한 이해도 없기 때문에, 이 경우에는 C를 고르는 것이 가장 적합해 보인다.

 

6. You need to reduce the number of unplanned rollbacks of erroneous production deployments in your company's web hosting platform. Improvement to the QA/Test processes accomplished an 80% reduction.
Which additional two approaches can you take to further reduce the rollbacks? (Choose two.)

  • A. Introduce a green-blue deployment model
  • B. Replace the QA environment with canary releases
  • C. Fragment the monolithic platform into microservices
  • D. Reduce the platform's dependency on relational database systems
  • E. Replace the platform's relational database systems with a NoSQL database

웹 호스팅 플랫폼에서 오류가 발생하는 운영 환경의 예상치 못한 롤백 횟수를 줄여야 한다. QA 개선 및 테스트 프로세스로 이미 80%의 절감 효과를 얻은 상황이다. 롤백을 더 줄이기 위한 방안 2가지는 무엇인가.

 

D. 플랫폼의 관계형 데이터베이스 의존성과 E. 관계형 데이터베이스를 NoSQL로 대체는 애당초 이 지문 맥락에 맞지 않다. 결국 A, B, C 중에 2개가 정답이 되는 것이다. A에서 그린-블루 구축은 사용자 트래픽을 이전 버전의 앱 또는 마이크로서비스에서 거의 동일한 새 릴리즈로 점진적으로 전송하는 애플리케이션 릴리즈 모델이다. 이 2가지 모두 실제 운영 환경에서 실행되고 있다. 이 릴리즈는 분명 롤백을 줄이는 데 있어 유용하다. B의 경우, QA 환경을 카나리 릴리즈로 대체하는 것인데, 이는 사실 생각해 보면 조금 이상하다. 카나리 릴리즈 자체는 분명 롤백을 줄이는 데 도움이 되기도 한다. 그런데 문제는, QA 환경을 카나리로 대체한다는 것이다. QA로 이미 효과를 얻었는데, 굳이 그것을 다른 것으로 대체한다? 그렇다면, 카나리로 대체했을 때 명백히 80%의 절감 효과를 뛰어 넘는다는 계산이 있어야만 한다. 그런데 그것이 명확하지 않으므로 여기서 B는 제외된다. 남은 C가 정답이 되는 것인데, C는 아주 일반적인 개선 사항 중 하나이므로 쉽게 정답으로 택할 수 있다. 마이크로서비스는 전체 기능을 많은 마이크로(소규모) 기능으로 분리하는 것이다. 소규모 기능만 관리하게 되기 때문에 롤백을 줄이는 데 있어서 도움이 되는 것이다. 다만, C가 언제나 롤백 감소를 보장하는 것은 아니라는 점을 이해하는 게 중요하다고 생각한다. 만일 프로그래밍 오류가 존재한다면, 롤백 감소의 영향은 없을 수도 있다.

 

7. To reduce costs, the Director of Engineering has required all developers to move their development infrastructure resources from on-premises virtual machines(VMs) to Google Cloud Platform. These resources go through multiple start/stop events during the day and require state to persist. You have been asked to design the process of running a development environment in Google Cloud while providing cost visibility to the finance department.
Which two steps should you take? (Choose two.)

  • A. Use the - -no-auto-delete flag on all persistent disks and stop the VM
  • B. Use the - -auto-delete flag on all persistent disks and terminate the VM
  • C. Apply VM CPU utilization label and include it in the BigQuery billing export
  • D. Use Google BigQuery billing export and labels to associate cost to groups
  • E. Store all state into local SSD, snapshot the persistent disks, and terminate the VM
  • F. Store all state in Google Cloud Storage, snapshot the persistent disks, and terminate the VM

비용 절감을 위해 개발 인프라 리소스를 사내 가상 머신에서 이동하도록 요구했다. VM에서 GCP로 이동시키는 것이다. 이러한 리소스는 하루 동안 여러 번의 시작/정지 이벤트를 거치며, 상태가 지속되어야 한다. 이때 비용 가시성을 제공하면서, 구글 클라우드에서 개발 환경을 실행하는 실행하는 프로세스를 설계해야 한다. 어떤 두 단계를 밟아야 하는가.

 

https://cloud.google.com/sdk/gcloud/reference/compute/instances/set-disk-auto-delete#--auto-delete%20; 에서의 내용을 고려했을 때, A가 정답인 것은 명확해 보인다. 자동 삭제 금지 플래그는 VM을 시작 및 정지할 때 상태를 유지하는 데 도움이 된다. 1단계를 만족시키는 것이 A인 것이다. 다음 2단계가 비용 가시성이 되는데, 이것에 대한 정답으로 D가 옳은 것으로 보인다. 구글 빅쿼리 빌링 내보내기를 통해 그룹에 비용을 연결하는 것, 이것은 빅쿼리 데이터 분석을 통해 세분화된 비용 가시성을 제공한다. 라벨과 빌링 내보내기를 결합하면, 리소스 소비를 특정 그룹과 연결하여 빌링 메커니즘을 가능하게 하고, 비용 책임을 강화할 수 있을 것이다.

 

8. Your company wants to track whether someone is present in a meeting room reserved for a scheduled meeting. There are 1000 meeting rooms across 5 offices on 3 continents. Each room is equipped with a motion sensor that reports its status every second. The data from the motion detector includes only a sensor ID and several different discrete items of information. Analysts will use this data, together with information about account owners and office locations.
Which database type should you use?

  • A. Flat file
  • B. NoSQL
  • C. Relational
  • D. Blobstore

예약된 미팅을 위해 예약된 미팅룸에 누가 있는지 추적하려 한다. 3개 대륙의 5개 오피스에 총 1,000개의 미팅 룸이 있다. 각 방에는 매 초마다 상태를 보고하는 모션 센서가 장착돼 있다. 모션 감지기의 데이터에는 센서 ID와 몇 가지 다른 별개 항목만 포함된다. 이 데이터를 계정 소유자 및 오피스 위치에 대한 정보와 함께 사용한다. 어떤 DB 유형을 사용해야 할까.

 

여기서 데이터는 Realtime 데이터다. A의 플랫 파일의 경우, 파일을 조회하거나 분석하는 데 있어 적합한 것이 아니다. C의 관계형 DB의 경우, 현대 애플리케이션이 직면한 규모와 스피드 문제에 있어 적합하도록 설계된 것이 아니다. 더군다나, 현재 사용 가능한 상품 스토리지 및 처리 능력을 활용하도록 설계된 것도 아니다. Blobsotre의 경우, 애플리케이션이 데이터스토어 서비스의 개체에 허용되는 크기보다 훨씬 큰 blobs라는 데이터 개체를 서비스할 수 있다. 이 블롭은 비디오, 이미지 파일과 같은 큰 파일을 제공하고 사용자가 이를 업로드할 수 있도록 하는 데 있어 유용할 뿐이다. 결국 B의 NoSQL이 가장 합리적이다. NoSQL은 비정형 데이터를 수용하기 때문에 적합하다. 만약 NoSQL이 아니라면, Pub/Sub도 좋은 선택이 될 것이다.

 

9. You set up an autoscaling instance group to serve web traffic for an upcoming launch. After configuring the instance group as a backend service to an HTTP(S) load balancer, you notice that virtual machine (VM) instances are being terminated and re-launched every minute. The instances do not have a public IP address.
You have verified the appropriate web response is coming from each instance using the curl command. You want to ensure the backend is configured correctly.
What should you do?

  • A. Ensure that a firewall rules exists to allow source traffic on HTTP/HTTPS to reach the load balancer.
  • B. Assign a public IP to each instance and configure a firewall rule to allow the load balancer to reach the instance public IP.
  • C. Ensure that a firewall rule exists to allow load balancer health checks to reach the instances in the instance group.
  • D. Create a tag on each instance with the name of the load balancer. Configure a firewall rule with the name of the load balancer as the source and the instance tag as the destination.

다음 시작을 위해 웹 트래픽을 처리하도록 자동 스케일링 인스턴스 그룹을 설정한다. 인스턴스 그룹을 HTTP(S) 로드 밸런서에 대한 백엔드 서비스로 구성한 후에는 가상 머신 인스턴스가 매분마다 종료되고 다시 시작된다. 이 인스턴스에는 공용 IP 주소가 없다. curl 명령을 사용하여 각 인스턴스에서 적절한 웹 응답이 오갔는지 확인했다. 그리고 백엔드가 올바르게 구성되었는지 확인하기 위해 무서을 해야 하는가.

 

A와 B는 VM을 종료하거나 시작하지 않고, 그저 트래픽을 방지한다. D의 경우, 논리 없이 의사 상태 점검을 시작하는 것이므로, 결국 A, B와 같다고 할 수 있다. 그렇기에 C가 정답이 된다.

 

10. You write a Python script to connect to Google BigQuery from a Google Compute Engine virtual machine. The script is printing errors that it cannot connect to BigQuery.
What should you do to fix the script?

  • A. Install the latest BigQuery API client library for Python
  • B. Run your script on a new virtual machine with the BigQuery access scope enabled
  • C. Create a new service account with BigQuery access and execute your script with that user
  • D. Install the bq component for gcloud with the command gcloud components install bq.

구글 컴퓨트 엔진 가상 머신으로부터 구글 빅쿼리에 연결하기 위해 파이썬 스크립트를 작성한다. 이 스크립트는 빅쿼리에 연결할 수 없는 오류를 보여준다. 스크립트를 어떻게 고쳐야 하는가.

 

A에서 클라이언트 라이브러리가 설치되어 있지 않으면, 애당초 파이썬 스크립트가 실행되지를 않는다. 스크립트가 실행되지 않는 게 아니라, 빅쿼리에 연결이 되지 않는 것이므로, 클라이언트 라이브러리는 설치가 되어 있는 상태다. B에서 엑세스 범위는 API 호출을 통해 서비스에 엑세스하려고 할 때 클라이언트 애플리케이션이 OAuth에서 엑세스 권한을 가진 access token을 검색하는 방법이다. 이 경우, 파이썬 스크립트가 라이브러리 대신 API 호출을 사용할 수 있다. 그리고 여기서 클라이언트 라이브러리는 굳이 엑세스 범위가 필요치 않다. https://cloud.google.com/bigquery/docs/authorization#authenticate_with_oauth_20 에서 해당 내용을 자세히 이해할 수 있다. C에서 새로운 서비스 계정은 구글 클라우드에 있어 이 상황에서의 모범 사례라 할 수 있다. 새로운 계정을 만든 다음, 해당 서비스 계정을 사용하여 빅쿼리에 엑세스할 수 있다. 이렇게 하면, 스크립트가 빅쿼리에 연결되어 필요한 데이터에 엑세스할 수 있다. D의 경우, 파이썬을 사용하여 빅쿼리에 연결하고자 할 때, bg component for gcloud를 설치할 필요 자체가 없다.

 

728x90

'교육' 카테고리의 다른 글

Google Professional Cloud Architect Exam Actual Questions#3  (0) 2024.03.10
Google Professional Cloud Architect Exam Actual Questions#2  (0) 2024.03.09
GCP 기초 #7  (0) 2024.03.05
GCP 기초 #6  (1) 2024.03.05
GCP 기초 #5  (0) 2024.03.04