교육

Google Professional Cloud Architect Exam Actual Questions#4

김구티2 2024. 3. 11. 19:59

31. A development manager is building a new application. He asks you to review his requirements and identify what cloud technologies he can use to meet them. The application must:
1. Be based on open-source technology for cloud portability
2. Dynamically scale compute capacity based on demand
3. Support continuous software delivery
4. Run multiple segregated copies of the same application stack
5. Deploy application bundles using dynamic templates
6. Route network traffic to specific services based on URL
Which combination of technologies will meet all of his requirements?

  • A. Google Kubernetes Engine, Jenkins, and Helm
  • B. Google Kubernetes Engine and Cloud Load Balancing
  • C. Google Kubernetes Engine and Cloud Deployment Manager
  • D. Google Kubernetes Engine, Jenkins, and Cloud Load Balancing

새로운 애플리케이션을 만든다. 요구사항은 다음과 같다. ① 클라우드 이식성을 위한 오픈 소스 기술 기반 ② 수요에 따라 컴퓨팅 용량 동적으로 확장 ③ 지속적인 소프트웨어 제공 지원 ④ 동일한 애플리케이션 스택의 여러 개의 분리된 사본 실행 ⑤ 동적 템플릿 사용한 애플리케이션 번들 배포 ⑥ URL 기반으로 네트워크 트래픽을 특정 서비스로 라우팅. 어떤 기술 조합을 선택해야 하는가.

 

보자마자 쿠버네티스는 너무나도 자동으로 떠오르는데, 아쉽게도 모든 선지에 쿠버네티스가 존재한다. 요구사항 ④가 쿠버네티스가 딱 들어맞는 것이니, 이제 ③과 ⑤, ⑥을 따져 보자. ③의 지속적 SW 지원은 아무래도 젠킨스가 가장 적합하다. 이제 정답은 A와 D 중 하나로 좁혀졌다. 그리고 ⑤ 역시 젠킨스에 가장 적합한 요구사항이다. 이제 남은 게 ⑥인데, URL을 기반으로 라우팅한다는 것. 이것은 로드 밸런서에 가장 적합한 설명이지 않을까 싶다. Helm은 쿠버네티스를 더욱 편리하게 사용할 수 있도록 해주는 툴로써 가치가 있으니 말이다.

 

32. You have created several pre-emptible Linux virtual machine instances using Google Compute Engine. You want to properly shut down your application before the virtual machines are preempted.
What should you do?

  • A. Create a shutdown script named k99.shutdown in the /etc/rc.6.d/ directory
  • B. Create a shutdown script registered as a xinetd service in Linux and configure a Stackdriver endpoint check to call the service
  • C. Create a shutdown script and use it as the value for a new metadata entry with the key shutdown-script in the Cloud Platform Console when you create the new virtual machine instance
  • D. Create a shutdown script, registered as a xinetd service in Linux, and use the gcloud compute instances add-metadata command to specify the service URL as the value for a new metadata entry with the key shutdown-script-url

구글 컴퓨트 엔진을 이용해 미리 설정할 수 있는 리눅스 가상 머신 인스턴스를 여러 개 만든 상황이다. 가상 머신을 미리 설정하기 전에 애플리케이션을 제대로 종료하고자 할 때 해야 하는 일은.

 

https://cloud.google.com/compute/docs/shutdownscript의 내용을 살펴 보았을 때, C가 가장 합당한 것으로 보인다. D와 많이 헷갈리기는 했는데, shutdown-script-url은 클라우드 스토리지에서 호스팅되는 shutdown 스크립트에서만 작동하기 때문에 D가 배제되는 게 맞지 않나 싶다.

 

33. Your organization has a 3-tier web application deployed in the same network on Google Cloud Platform. Each tier (web, API, and database) scales independently of the others. Network traffic should flow through the web to the API tier and then on to the database tier. Traffic should not flow between the web and the database tier.
How should you configure the network?

  • A. Add each tier to a different subnetwork
  • B. Set up software based firewalls on individual VMs
  • C. Add tags to each tier and set up routes to allow the desired traffic flow
  • D. Add tags to each tier and set up firewall rules to allow the desired traffic flow

3계층 웹 애플리케이션이 GCP의 동일 네트워크에 배포돼 있다. 각 계층은 다른 계층과 독립적으로 확장된다. 네트워크 트래픽을 웹을 통해 API 계층으로 흐르다가 DB 계층으로 흘러가야 한다. 트래픽은 웹과 DB 계층 사이에서 흘러가서는 아 ㄴ된다. 어떻게 네트워크를 구성해야 하는가.

 

https://cloud.google.com/solutions/best-practices-vpc-design

https://cloud.google.com/solutions/best-practices-vpc-design#target_filtering의 내용을 따져 보았을 때, D가 가장 합당하다. D가 가장 권장하는 방식으로 뽑힐 수 있다.
 
34. Your development team has installed a new Linux kernel module on the batch servers in Google Compute Engine (GCE) virtual machines (VMs) to speed up the nightly batch process. Two days after the installation, 50% of the batch servers failed the nightly batch run. You want to collect details on the failure to pass back to the development team.

Which three actions should you take? (Choose three.)

  • A. Use Stackdriver Logging to search for the module log entries
  • B. Read the debug GCE Activity log using the API or Cloud Console
  • C. Use gcloud or Cloud Console to connect to the serial console and observe the logs
  • D. Identify whether a live migration event of the failed server occurred, using in the activity log
  • E. Adjust the Google Stackdriver timeline to match the failure time, and observe the batch server metrics
  • F. Export a debug VM into an image, and run the image on a local server where kernel log messages will be displayed on the native screen
야간 배치 프로세스의 속도를 높이기 위해 배치 서버에 새로운 리눅스 커널 모듈을 설치했다. 설치 이틀 후, 배치 서버의 50%가 야간 배치 실행에 실패했다. 실패에 대한 세부 정보를 수집해 개발 팀에 알리고자 때 어떤 행동을 취해야 하는가.
 
A의 스택 드라이버 로깅을 사용하여 모듈 로그 항목 검색은 결국 로그를 확인한다는 소리다. 실패에 대한 세부 정보를 수집하려 할 때 로그를 수집하는 것은 기본 중의 기본이니 A는 당연히 선택한다. 거기에 E의 구글 스택 드라이버 타임라인을 고정시간에 맞게 조정하고, 배치 서버 메트릭을 관찰하는 것은 문제가 발생한 시간 창으로 확대한다는 것이다. 그러므로 E도 당연히 선택하게 된다. D와 F는 굳이 고심해볼 만한 이유도 없는 선지니 제외하면, B와 C가 남는다. 처음에는 C가 정답이지 않나 싶었는데 지문을 곱씹어 보니, 아닌 것 같은 생각이 든다. C에서는 observe the logs라고 했는데, 이것이 내가 생각할 때는 좀 명확하지 않은 표현인 것 같다. 그리고 VM이 이미 실패를 했다는 것에 집중하고자 한다. 실패가 발생을 했고, 앞으로도 그것이 반복될 것이라면 ACE가 적합해 보인다. 그런데 실패를 했다는 것이지, 이 실패가 반복된다는 내용은 적혀 있지 않다. 과거의 로그를 검토하는 것으로 포커스를 맞췄을 때, B가 적합한 선택으로 보인다.
 
35. Your company wants to try out the cloud with low risk. They want to archive approximately 100 TB of their log data to the cloud and test the analytics features available to them there, while also retaining that data as a long-term disaster recovery backup.

Which two steps should you take? (Choose two.)

  • A. Load logs into Google BigQuery
  • B. Load logs into Google Cloud SQL
  • C. Import logs into Google Stackdriver
  • D. Insert logs into Google Cloud Bigtable
  • E. Upload log files into Google Cloud Storage

리스크가 적은 클라우드 사용을 원한다. 약 100TB의 로그 데이터를 클라우드에 보관하고, 해당 데이터를 장기적인 재해 복구 백업으로 유지하면서 클라우드에서 사용할 수 있는 분석 기능을 테스트하려고 한다. 어떤 2단계를 거쳐야 하는가.

 

일단 지문을 보자마자 빅쿼리는 자동으로 대뇌에 떠오른다. 대량의 데이터를 빠르고 효율적으로 분석하는 데 있어 빅쿼리는 너무나도 자명한 솔루션이다. 그리고 이것을 클라우드에 '보관'해야 한다면, 클라우드 스토리지를 고를 수밖에 없다.

 

36. You created a pipeline that can deploy your source code changes to your infrastructure in instance groups for self-healing. One of the changes negatively affects your key performance indicator. You are not sure how to fix it, and investigation could take up to a week.
What should you do?

  • A. Log in to a server, and iterate on the fox locally
  • B. Revert the source code change, and rerun the deployment pipeline
  • C. Log into the servers with the bad code change, and swap in the previous code
  • D. Change the instance group template to the previous one, and delete all instances

자체 복구를 위해 인스턴스 그룹의 인프라에 소스 코드 변경 사항을 배포할 수 있는 파이프라인을 만들었다. 변경 사항 중 하나는 주요 성능 지표에 부정적인 영향을 미친다. 도통 원인을 모르며, 조사에는 일주일이 걸릴 수 있다. 어찌 해야 하는가.

 

A에서 서버에 로그인하여 픽스를 반복하는 것은 솔직히 보자마자 너무 오래 걸리지 않나.. 싶었다. 어느 세월에 그걸 다 하고 앉아있냐는 말이다. B에서 소스 코드 변경을 되돌리고, 배포 파이프라인을 다시 실행하는 것. 이 revert 자체가 소스 레포에 기록된다. 소스 코드 변경과 함께 팝업이 뜨므로, 변경 및 배포를 되돌리면 문제가 해결될 것이다. 그렇기에 B를 정답으로 고르겠다. C는 자동으로 할 수 있는 것을 굳이 굳이 수동으로 하는 내용이기에 A처럼 바로 배제가 된다. 그리고 D도 마찬가지로, 분명 합당해 보이기는 하는데, 코드 라이프사이클 관점에서 보면 B가 더욱 적합해 보인다. 계속 문제를 풀면서 느끼는 건데, 만약 내 생각이 맞다면, 언제나 구글은 영리한 해결을 원하는 것으로 보인다. 씹고 뜯어보면 말이 되는 것이더라도, 굳이..라는 생각을 들게 만든다면 피해가는 게 맞지 않나 싶다. 물론 나중에 자격시험을 보면서 이것이 옳은 것일지 틀린 것일지 판명이 나겠지만 말이다.

 

37. Your organization wants to control IAM policies for different departments independently, but centrally.
Which approach should you take?

  • A. Multiple Organizations with multiple Folders
  • B. Multiple Organizations, one for each department
  • C. A single Organization with Folders for each department
  • D. A single Organization with multiple projects, each with a central owner

회사는 서로 다른 부서에 대한 IAM 정책을 독립적으로 컨트롤하려 하지만, 그러면서 중앙제어이길 원한다.

 

그러기 위해서는 단일 조직을 만들고, 폴더를 사용하여 각 부서의 정책을 구성하면 되는 간단한 문제다. C가 명확하게 정답이다.

 

38. You deploy your custom Java application to Google App Engine. It fails to deploy and gives you the following stack trace.
What should you do?

  • A. Upload missing JAR files and redeploy your application.
  • B. Digitally sign all of your JAR files and redeploy your application
  • C. Recompile the CLoakedServlet class using and MD5 hash instead of SHA1

사용자 지정 자바 앱을 구글 앱 엔진에 배포하고자 한다. 이 앱은 배포에 실패하고 위와 같은 스택 추적을 제공한다. 어떻게 해야 하는가.

 

https://docs.oracle.com/javase/tutorial/deployment/jar/signindex.html의 내용을 보았을 때, B가 가장 합당한 것으로 보인다. JavaVerifier.Java.428 이것이 핵심 키워드가 될 것이다. 근데 이 문제도 그렇지만.. GCP와 무슨 관련이 있는지 알 수 없는 문제들이 점차 보이는 것 같다.

 

39. You are designing a mobile chat application. You want to ensure people cannot spoof chat messages, by providing a message were sent by a specific user.
What should you do?

  • A. Tag messages client side with the originating user identifier and the destination user.
  • B. Encrypt the message client side using block-based encryption with a shared key.
  • C. Use public key infrastructure (PKI) to encrypt the message client side using the originating user's private key.
  • D. Use a trusted certificate authority to enable SSL connectivity between the client application and the server.

모바일 채팅 앱을 설계하고 있다. 특정 사용자가 보낸 메시지를 제공하여 사람들이 채팅 메시지를 스푸핑할 수 없도록 하고 싶다. 어떻게 해야 하는가.

 

C와 D 중에서 선택하기 위해 이것저것 찾아 보았는데, C가 합당한 것으로 보인다. 요구사항은 스푸핑 방지다. 기, 무, 가를 충족할 수 있어야 한다는 것인데, PKI를 통해 기밀성, 무결성, 가용성을 충족할 수 있으므로 C가 합당해 보인다.

 

40. As part of implementing their disaster recovery plan, your company is trying to replicate their production MySQL database from their private data center to their GCP project using a Google Cloud VPN connection. They are experiencing latency issues and a small amount of packet loss that is disrupting the replication.
What should they do?

  • A. Configure their replication to use UDP.
  • B. Configure a Google Cloud Dedicated Interconnect.
  • C. Restore their database daily using Google Cloud SQL.
  • D. Add additional VPN connections and load balance them.
  • E. Send the replicated transaction to Google Cloud Pub/Sub.

재해 복구 계획을 구현하기 위해 구글 클라우드 VPN 연결을 사용하여 MySQL 데이터베이스를 개인 데이터 센터에서 GCP 프로젝트로 복제하려고 한다. 그런데 지연 시간 문제와 소량의 패킷 손실로 인해 복제에 문제가 발생하고 있다. 어떻게 해야 하는가.

 

VPN을 추가한다 한들, 레이턴시가 해결되지는 않는다. 처리량 문제라면 VPN이 해결책이 될 수 있겠지만, 레이턴시를 위해서라면 B를 선택하는 것이 가장 합당해 보인다. A, C, E는 아예 보자마자 배제가 가능한 선지다.

728x90