Ngân hàng đề — AWS Certified Solutions Architect Professional

Tìm thấy 1221 câu.

Câu 1171
A company needs to improve the reliability of its ticketing application. The application runs on an Amazon Elastic Container Service (Amazon ECS) cluster. The company uses Amazon CloudFront to serve the application. A single ECS service of the ECS cluster is the CloudFront distribution’s origin.

The application allows only a specific number of active users to enter a ticket purchasing flow. These users are identified by an encrypted attribute in their JSON Web Token (JWT). All other users are redirected to a waiting room module until there is available capacity for purchasing.

The application is experiencing high loads. The waiting room module is working as designed, but load on the waiting room is disrupting the applications availability.
This disruption is negatively affecting the application's ticket sale transactions.

Which solution will provide the MOST reliability for ticket sale transactions during periods of high load?
  1. A Create a separate service in the ECS cluster for the waiting room. Use a separate scaling configuration. Ensure that the ticketing service uses the JWT information and appropriately forwards requests to the waiting room service.
  2. B Move the application to an Amazon Elastic Kubernetes Service (Amazon EKS) cluster. Split the waiting room module into a pod that is separate from the ticketing pod. Make the ticketing pod part of a StatefulSet. Ensure that the ticketing pod uses the JWT information and appropriately forwards requests to the waiting room pod.
  3. C Create a separate service in the ECS cluster for the waiting room. Use a separate scaling configuration. Create a CloudFront function that inspects the JWT information and appropriately forwards requests to the ticketing service or the waiting room service.
  4. D Move the application to an Amazon Elastic Kubernetes Service (Amazon EKS) cluster. Split the waiting room module into a pod that is separate from the ticketing pod. Use AWS App Mesh by provisioning the App Mesh controller for Kubernetes. Enable mTLS authentication and service-to-service authentication for communication between the ticketing pod and the waiting room pod. Ensure that the ticketing pod uses the JWT information and appropriately forwards requests to the waiting room pod.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi tập trung vào việc cải thiện độ tin cậy (reliability) cho ứng dụng bán vé (ticketing application) chạy trên Amazon ECS cluster, với Amazon CloudFront làm CDN để phân phối nội dung. Hiện tại, chỉ có một ECS service duy nhất làm origin cho CloudFront distribution.

Ứng dụng có cơ chế giới hạn số lượng user active trong quy trình mua vé bằng cách kiểm tra encrypted attribute trong JSON Web Token (JWT). User hợp lệ được phép mua vé; các user khác bị chuyển hướng đến waiting room module (phòng chờ) cho đến khi có slot trống.

Vấn đề chính: Dưới high load (tải cao), waiting room hoạt động đúng nhưng gây disruption cho availability của ứng dụng, dẫn đến ảnh hưởng tiêu cực đến giao dịch bán vé. Lý do là tất cả traffic đều đổ vào ECS service duy nhất (origin), khiến load waiting room làm nghẽn cả ticketing flow.

Mục tiêu: Tìm giải pháp MOST reliable cho ticket sale transactions (giao dịch bán vé) dưới high load, nghĩa là ưu tiên bảo vệ ticketing service khỏi load không cần thiết, giảm thiểu disruption tại origin.

🛠️ Nguyên tắc AWS tốt nhất: Sử dụng edge computing (như CloudFront Functions) để route traffic sớm, tách services độc lập với scaling riêng trên ECS, tránh di chuyển sang nền tảng khác trừ khi cần thiết (theo Well-Architected Framework: Reliability pillar).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng:
Create a separate service in the ECS cluster for the waiting room. Use a separate scaling configuration. Create a CloudFront function that inspects the JWT information and appropriately forwards requests to the ticketing service or the waiting room service.

Lý do chọn đáp án này (theo kiến thức AWS cập nhật 2026):
🛠️ Giải pháp này tối ưu nhất vì:

  • Tách waiting room thành ECS service riêng với scaling configuration độc lập (sử dụng ECS Service Auto Scaling dựa trên metrics như CPU/Memory), cho phép scale waiting room linh hoạt mà không ảnh hưởng ticketing service.
  • CloudFront Function (tính năng edge compute lightweight, ra mắt 2020 và cập nhật liên tục) chạy ngay tại edge locations của CloudFront, inspect JWT (decode/verify token) và route requests sớm: User hợp lệ → ticketing service; user chờ → waiting room service.
  • Lợi ích reliability: Giảm 99% load không cần thiết đến origin (ticketing service chỉ nhận traffic qualified), tránh disruption cho ticket sales. CloudFront Functions hỗ trợ JavaScript, xử lý JWT nhanh (<1ms), chi phí thấp hơn Lambda@Edge.
  • Tuân thủ AWS best practices: Giữ nguyên ECS (không migrate), tận dụng CloudFront làm "smart origin selector".

📘 Tài liệu tham khảo:

📋 Phân tích tất cả các phương án

  • ❌ Phương án SAI:
    Create a separate service in the ECS cluster for the waiting room. Use a separate scaling configuration. Ensure that the ticketing service uses the JWT information and appropriately forwards requests to the waiting room service.
    Giải thích sai: Tách service và scaling riêng là tốt, nhưng ticketing service vẫn phải inspect JWT và forward requests → Tất cả traffic (bao gồm waiting room users) vẫn đổ vào ticketing service làm origin duy nhất của CloudFront. Load cao từ waiting room vẫn disrupt ticketing, không giải quyết gốc rễ vấn đề availability cho ticket sales.

  • ❌ Phương án SAI:
    Move the application to an Amazon Elastic Kubernetes Service (Amazon EKS) cluster. Split the waiting room module into a pod that is separate from the ticketing pod. Make the ticketing pod part of a StatefulSet. Ensure that the ticketing pod uses the JWT information and appropriately forwards requests to the waiting room pod.
    Giải thích sai: Migrate sang EKS là overkill (tăng complexity, chi phí quản lý Kubernetes), StatefulSet không cần thiết (ứng dụng stateless ticketing không yêu cầu persistent storage). Ticketing pod vẫn inspect JWT và forward → load cao vẫn đến ticketing pod. Không tận dụng edge routing, reliability kém hơn ECS + CloudFront.

  • ✅ Phương án ĐÚNG (như đã phân tích ở trên):
    Create a separate service in the ECS cluster for the waiting room. Use a separate scaling configuration. Create a CloudFront function that inspects the JWT information and appropriately forwards requests to the ticketing service or the waiting room service.
    Giải thích đúng: Route tại CloudFront edge (không chạm origin cho waiting room traffic), bảo vệ ticketing service tối đa, MOST reliable cho high load.

  • ❌ Phương án SAI:
    Move the application to an Amazon Elastic Kubernetes Service (Amazon EKS) cluster. Split the waiting room module into a pod that is separate from the ticketing pod. Use AWS App Mesh by provisioning the App Mesh controller for Kubernetes. Enable mTLS authentication and service-to-service authentication for communication between the ticketing pod and the waiting room pod. Ensure that the ticketing pod uses the JWT information and appropriately forwards requests to the waiting room pod.
    Giải thích sai: Migrate EKS + App Mesh (service mesh với mTLS) quá phức tạp, chi phí cao (App Mesh tính phí per v5 datapath), không cần cho internal traffic. Ticketing pod vẫn nhận tất cả requests để inspect JWT → disruption vẫn xảy ra. App Mesh tốt cho microservices phức tạp, nhưng không giải quyết edge load issue.

🛡️ Kết luận: Giải pháp đúng tận dụng edge intelligence của CloudFront để bảo vệ core business logic (ticket sales), phù hợp DevOps Professional level!

Câu 1172
A solutions architect is creating an AWS CloudFormation template from an existing manually created non-production AWS environment. The CloudFormation template can be destroyed and recreated as needed. The environment contains an Amazon EC2 instance. The EC2 instance has an instance profile that the EC2 instance uses to assume a role in a parent account.

The solutions architect recreates the role in a CloudFormation template and uses the same role name. When the CloudFormation template is launched in the child account, the EC2 instance can no longer assume the role in the parent account because of insufficient permissions

What should the solutions architect do to resolve this issue?
  1. A In the parent account, edit the trust policy for the role that the EC2 instance needs to assume. Ensure that the target role ARN in the existing statement that allows the sts:AssumeRole action is correct. Save the trust policy.
  2. B In the parent account, edit the trust policy for the role that the EC2 instance needs to assume. Add a statement that allows the sts:AssumeRole action for the root principal of the child account. Save the trust policy.
  3. C Update the CloudFormation stack again. Specify only the CAPABILITY_NAMED_IAM capability.
  4. D Update the CloudFormation stack again. Specify the CAPABILITY_IAM capability and the CAPABILITY_NAMED_IAM capability.
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi mô tả tình huống một Solutions Architect đang chuyển đổi môi trường AWS non-production (không phải production, có thể destroy và recreate thoải mái) từ thiết lập thủ công sang AWS CloudFormation template. Môi trường bao gồm:

  • Một Amazon EC2 instance ở child account (tài khoản con).
  • EC2 này sử dụng instance profile để assume một IAM role ở parent account (tài khoản cha), giúp truy cập cross-account.

Quy trình:

  • Architect recreate IAM role (của instance profile) trong CloudFormation template với tên role giống hệt (same role name).
  • Khi launch stack CloudFormation ở child account, EC2 instance mới không assume được role ở parent account nữa, báo lỗi insufficient permissions.

Nguyên nhân gốc rễ 📌:

  • Trong thiết lập thủ công, trust policy của role ở parent account chỉ định Principal là ARN cụ thể của IAM role (instance profile role) ở child account (ví dụ: arn:aws:iam::CHILD-ACCOUNT-ID:role/MyInstanceRole với resource ID cố định từ thủ công).
  • Khi CloudFormation tạo resource mới, dù tên giống, ARN thay đổi vì physical resource ID (như i-xxx hoặc role unique ID) khác biệt. Trust policy cũ không match ARN mới → EC2 không assume được.
  • Vấn đề nằm ở trust policy của parent role, không phải permissions policy hay CloudFormation capabilities.

Mục tiêu: Sửa để EC2 ở child account (sau recreate) assume role parent thành công. Kiến thức dựa trên AWS IAM & CloudFormation phiên bản mới nhất 2025-2026 (không thay đổi lớn về trust policy cross-account).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: In the parent account, edit the trust policy for the role that the EC2 instance needs to assume. Ensure that the target role ARN in the existing statement that allows the sts:AssumeRole action is correct. Save the trust policy.

Lý do 🛠️:

  • Đây là giải pháp trực tiếp nhắm vào nguyên nhân gốc: Trust policy ở parent account cần update ARN chính xác của IAM role mới (từ CloudFormation) ở child account.
  • Trong trust policy, statement thường như:
    {
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::CHILD-ACCOUNT:role/MyInstanceRole"},
      "Action": "sts:AssumeRole"
    }
    
  • Chỉ cần chỉnh Principal ARN cho khớp ARN mới → EC2 assume được ngay. Không cần tạo resource mới hay thay đổi stack.
  • An toàn cho non-production, dễ verify qua AWS Console/IAM.

📋 Giải thích tất cả các phương án (đúng và sai)

Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Mỗi phân tích chỉ rõ đúng/sai và lý do chi tiết bằng tiếng Việt:

  • ✅ [ĐÚNG] In the parent account, edit the trust policy for the role that the EC2 instance needs to assume. Ensure that the target role ARN in the existing statement that allows the sts:AssumeRole action is correct. Save the trust policy.
    Lý do đúng 🟢: Như giải thích trên, đây là cách fix chính xác trust policy cross-account. ARN role child thay đổi sau CloudFormation → update Principal trong statement sts:AssumeRole là đủ. Không ảnh hưởng permissions khác.

  • ❌ [SAI] In the parent account, edit the trust policy for the role that the EC2 instance needs to assume. Add a statement that allows the sts:AssumeRole action for the root principal of the child account. Save the trust policy.
    Lý do sai 🔴: Thêm principal là root user của child account (arn:aws:iam::CHILD-ACCOUNT:root) không đúng vì EC2 assume qua instance profile role, không phải root. Root chỉ dùng cho account-level delegation (như Organizations), dễ gây security risk (quá rộng). Không giải quyết ARN mismatch.

  • ❌ [SAI] Update the CloudFormation stack again. Specify only the CAPABILITY_NAMED_IAM capability.
    Lý do sai 🔴: CAPABILITY_NAMED_IAM chỉ cần khi stack tạo IAM resource với tên cụ thể (named IAM), giúp CFN confirm user aware rủi ro. Nhưng vấn đề KHÔNG phải ở child stack (stack đã tạo role thành công), mà ở trust policy parent (ngoài stack). Update capability không fix cross-account trust.

  • ❌ [SAI] Update the CloudFormation stack again. Specify the CAPABILITY_IAM capability and the CAPABILITY_NAMED_IAM capability.
    Lý do sai 🔴: CAPABILITY_IAM cho custom IAM resources nói chung, kết hợp với NAMED_IAM vẫn chỉ giải quyết creation IAM trong stack. Không liên quan đến trust policy ở parent account riêng biệt. Stack child đã launch, chỉ update capability gây unnecessary re-run mà không fix issue.

📘 Tài liệu tham khảo (AWS cập nhật 2025-2026)

Hy vọng phân tích này giúp bạn ôn thi AWS Certified DevOps Engineer Professional hiệu quả! 🚀 Nếu cần ví dụ YAML template, hỏi thêm nhé!

Câu 1173
A company's web application has reliability issues. The application serves customers globally. The application runs on a single Amazon EC2 instance and performs read-intensive operations on an Amazon RDS for MySQL database.

During high load, the application becomes unresponsive and requires a manual restart of the EC2 instance. A solutions architect must improve the application's reliability.

Which solution will meet this requirement with the LEAST development effort?
  1. A Create an Amazon CloudFront distribution. Specify the EC2 instance as the distribution’s origin. Configure a Multi-AZ deployment for the RDS for MySQL database. Use the standby DB instance for the read-intensive operations.
  2. B Run the application on EC2 instances that are in an Auto Scaling group. Place the EC2 instances behind an Elastic Load Balancing (ELB) load balancer. Replace the database service with Amazon Aurora. Use Aurora Replicas for the read-intensive operations.
  3. C Deploy AWS Global Accelerator. Configure a Multi-AZ deployment for the RDS for MySQL database. Use the standby DB instance for the read-intensive operations.
  4. D Migrate the application to AWS Lambda functions. Create read replicas for the RDS for MySQL database. Use the read replicas for the read-intensive operations.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi mô tả một ứng dụng web gặp vấn đề độ tin cậy thấp (reliability issues), phục vụ khách hàng toàn cầu. Ứng dụng hiện chạy trên một instance Amazon EC2 duy nhất (single point of failure) và thực hiện các hoạt động đọc dữ liệu intensive (read-intensive operations) trên Amazon RDS for MySQL.

Khi tải cao (high load), ứng dụng trở nên không phản hồi (unresponsive) và đòi hỏi khởi động lại thủ công EC2 (manual restart). Nhiệm vụ của Solutions Architect là cải thiện độ tin cậy với ít nỗ lực phát triển nhất (LEAST development effort).

🛠️ Vấn đề cốt lõi cần giải quyết:

  • EC2 single instance: Không có khả năng scale ngang (horizontal scaling) hoặc high availability (HA), dễ fail khi overload.
  • RDS MySQL read-intensive: Đọc dữ liệu nhiều gây bottleneck trên primary instance.
  • Yêu cầu chính: Giải pháp phải scale tự động, HA, xử lý read scaling mà không cần thay đổi code ứng dụng nhiều (least dev effort), phù hợp kiến thức AWS mới nhất 2026 (Aurora vẫn là lựa chọn tối ưu cho MySQL-compatible DB với read replicas tự động).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Phương án B
Run the application on EC2 instances that are in an Auto Scaling group. Place the EC2 instances behind an Elastic Load Balancing (ELB) load balancer. Replace the database service with Amazon Aurora. Use Aurora Replicas for the read-intensive operations.

🧩 Lý do chọn đáp án này (least development effort):

  • Auto Scaling Group (ASG) + Elastic Load Balancing (ELB): Chạy app trên nhiều EC2 instances, tự động scale theo tải (CPU/Memory), phân tải traffic toàn cầu, loại bỏ single point of failure. App không cần thay đổi code, chỉ deploy AMI giống hệt.
  • Amazon Aurora thay RDS MySQL: Aurora MySQL-compatible (drop-in replacement), hiệu suất cao hơn 5x cho read-intensive nhờ Aurora Replicas (read replicas tự động scale lên đến 15 replicas/cluster, cross-region). Migrate DB dễ dàng với ít downtime (Aurora Backtrack, fast snapshot restore - tính năng 2026).
  • Least effort: Không refactor code app (vẫn EC2), chỉ config ASG/ELB (console/CloudFormation) và migrate DB (AWS DMS hoặc snapshot restore). Đáp ứng Reliability Pillar trong AWS Well-Architected Framework (2026 edition).

📋 Giải thích tất cả các phương án

Dưới đây là phân tích chi tiết từng phương án, giữ nguyên nội dung gốc tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên khả năng giải quyết vấn đề (scale EC2, read scaling DB) và least dev effort.

  • Phương án A:
    Create an Amazon CloudFront distribution. Specify the EC2 instance as the distribution’s origin. Configure a Multi-AZ deployment for the RDS for MySQL database. Use the standby DB instance for the read-intensive operations.
    ❌ Sai: CloudFront chỉ là CDN cho cache static/dynamic content, giúp giảm latency toàn cầu nhưng không scale EC2 (vẫn single instance dễ crash). RDS Multi-AZ chỉ failover standby (synchronous replica, KHÔNG dùng cho read queries - standby chỉ mirror write, không offload read theo docs AWS 2026). Không giải quyết unresponsive do overload EC2, effort thấp nhưng không full reliability.

  • Phương án B:
    Run the application on EC2 instances that are in an Auto Scaling group. Place the EC2 instances behind an Elastic Load Balancing (ELB) load balancer. Replace the database service with Amazon Aurora. Use Aurora Replicas for the read-intensive operations.
    ✅ Đúng: Như giải thích trên, scale ngang EC2 hoàn hảo (ASG + ELB Application/Network LB hỗ trợ global traffic), Aurora Replicas offload read 100% (serverless scaling đến 128 TiB 2026). Least effort: App/EC2 giữ nguyên, DB migrate dễ (99.99% durability).

  • Phương án C:
    Deploy AWS Global Accelerator. Configure a Multi-AZ deployment for the RDS for MySQL database. Use the standby DB instance for the read-intensive operations.
    ❌ Sai: Global Accelerator tối ưu routing traffic toàn cầu (anycast IP, static IP), nhưng không scale EC2 (vẫn single instance fail). RDS Multi-AZ standby KHÔNG hỗ trợ read operations (chỉ failover, read replicas mới dùng). Không giải quyết core issue overload, effort thấp nhưng thiếu scaling thực sự.

  • Phương án D:
    Migrate the application to AWS Lambda functions. Create read replicas for the RDS for MySQL database. Use the read replicas for the read-intensive operations.
    ❌ Sai: Lambda serverless scale tốt, read replicas RDS offload read hiệu quả, nhưng migrate app sang Lambda đòi hỏi refactor lớn (stateless, timeout 15p, cold starts - không least effort cho web app stateful trên EC2). RDS read replicas async, lag có thể xảy ra (Aurora tốt hơn), vi phạm yêu cầu "least development effort".

📘 Tài liệu tham khảo (AWS cập nhật 2026)

🛠️ Kết luận: Giải pháp B là tối ưu nhất cho reliability cao, chi phí thấp, effort tối thiểu! Nếu cần triển khai thực tế, dùng CloudFormation templates.

Câu 1174
A company needs to use an AWS Transfer Family SFTP-enabled server with an Amazon S3 bucket to receive updates from a third-party data supplier. The data is encrypted with Pretty Good Privacy (PGP) encryption. The company needs a solution that will automatically decrypt the data after the company receives the data.
A solutions architect will use a Transfer Family managed workflow. The company has created an IAM service role by using an IAM policy that allows access to AWS Secrets Manager and the S3 bucket. The role’s trust relationship allows the transfer amazonaws.com service to assume the role.

What should the solutions architect do next to complete the solution for automatic decryption?
  1. A Store the PGP public key in Secrets Manager. Add a nominal step in the Transfer Family managed workflow to decrypt files. Configure PGP encryption parameters in the nominal step. Associate the workflow with the Transfer Family server.
  2. B Store the PGP private key in Secrets Manager. Add an exception-handling step in the Transfer Family managed workflow to decrypt files. Configure PGP encryption parameters in the exception handler. Associate the workflow with the SFTP user.
  3. C Store the PGP private key in Secrets Manager. Add a nominal step in the Transfer Family managed workflow to decrypt files. Configure PGP decryption parameters in the nominal step. Associate the workflow with the Transfer Family server.
  4. D Store the PGP public key in Secrets Manager. Add an exception-handling step in the Transfer Family managed workflow to decrypt files. Configure PGP decryption parameters in the exception handler. Associate the workflow with the SFTP user.
Xem giải thích

🧩 Phân tích chi tiết câu hỏi

📘 Nội dung câu hỏi:
Câu hỏi xoay quanh việc triển khai giải pháp tự động giải mã dữ liệu PGP trên AWS Transfer Family (SFTP-enabled server kết nối với S3 bucket). Công ty nhận dữ liệu được mã hóa PGP từ nhà cung cấp thứ ba qua SFTP. Sau khi dữ liệu được upload vào S3, cần tự động giải mã nó bằng Transfer Family managed workflow.

Đã có sẵn:

  • IAM service role với quyền truy cập Secrets Manager và S3 bucket.
  • Trust relationship cho phép service transfer.amazonaws.com assume role.

🛠️ Mục tiêu tiếp theo: Solutions Architect cần làm gì để hoàn tất giải pháp tự động giải mã? Workflow sẽ chạy sau khi file được upload thành công (nominal flow), sử dụng private key PGP lưu trong Secrets Manager để decrypt.

🔍 Lý do ngữ cảnh quan trọng:

  • PGP encryption: Nhà cung cấp dùng public key của công ty để mã hóa → Công ty cần private key để giải mã.
  • Managed Workflow: Hỗ trợ nominal step (chạy bình thường sau upload) cho decrypt PGP; exception-handling step chỉ dùng cho lỗi.
  • Associate workflow: Có thể với server (áp dụng toàn bộ users) hoặc user cụ thể (SFTP user). Vì là server nhận từ third-party chung, associate với server là tối ưu.

✅ Đáp án đúng:
Store the PGP private key in Secrets Manager. Add a nominal step in the Transfer Family managed workflow to decrypt files. Configure PGP decryption parameters in the nominal step. Associate the workflow with the Transfer Family server.

Giải thích lý do chọn (bằng kiến thức AWS mới nhất 2026):

  • Lưu private key vào Secrets Manager ✅: Đây là nơi an toàn để lưu secret cho PGP decrypt (AWS Transfer hỗ trợ tích hợp trực tiếp).
  • Nominal step ✅: Chạy tự động sau upload thành công vào S3 (không phải exception).
  • PGP decryption parameters ✅: Cấu hình đúng cho việc giải mã (không phải encryption).
  • Associate với server ✅: Áp dụng workflow cho toàn bộ server, phù hợp với third-party supplier chung (theo AWS docs: workflows associated at server level chạy cho tất cả users).
    Giải pháp này đảm bảo tự động, scalable và secure theo best practices AWS Transfer Family (cập nhật feature PGP workflows từ 2023, ổn định đến 2026).

❌ Giải thích tất cả các phương án

Dưới đây là phân tích từng lựa chọn giữ nguyên văn bản gốc tiếng Anh, kèm giải thích hoàn toàn bằng tiếng Việt với lý do đúng/sai:

  • Store the PGP public key in Secrets Manager. Add a nominal step in the Transfer Family managed workflow to decrypt files. Configure PGP encryption parameters in the nominal step. Associate the workflow with the Transfer Family server.
    ❌ Sai: Public key chỉ dùng để mã hóa (bên third-party), không decrypt được. Cấu hình "PGP encryption parameters" sai vì cần decryption. Nominal step và associate server đúng nhưng không cứu vãn được lỗi cốt lõi về key và params.

  • Store the PGP private key in Secrets Manager. Add an exception-handling step in the Transfer Family managed workflow to decrypt files. Configure PGP encryption parameters in the exception handler. Associate the workflow with the SFTP user.
    ❌ Sai: Private key đúng nhưng dùng exception-handling step sai (chỉ chạy khi lỗi upload, không phải nominal flow tự động sau receive). "PGP encryption parameters" sai (phải decryption). Associate với SFTP user không tối ưu cho server chung (cần tạo user riêng và quản lý phức tạp hơn).

  • Store the PGP private key in Secrets Manager. Add a nominal step in the Transfer Family managed workflow to decrypt files. Configure PGP decryption parameters in the nominal step. Associate the workflow with the Transfer Family server.
    ✅ Đúng: Toàn bộ đúng như giải thích trên – private key, nominal step, decryption params, associate server. Đảm bảo decrypt tự động ngay sau upload.

  • Store the PGP public key in Secrets Manager. Add an exception-handling step in the Transfer Family managed workflow to decrypt files. Configure PGP decryption parameters in the exception handler. Associate the workflow with the SFTP user.
    ❌ Sai: Public key không decrypt được (lỗi chính). Exception-handling step sai (không phải flow bình thường). Associate với SFTP user không phù hợp. Decryption params đúng nhưng các phần khác sai hoàn toàn.

📚 Tài liệu tham khảo (AWS cập nhật mới nhất 2026)

🛡️ Lưu ý: Giải pháp này tuân thủ AWS Well-Architected Framework (Security Pillar), đảm bảo least privilege với IAM role. Nếu cần code CloudFormation, có thể dùng CDK hoặc Console để implement nhanh! 🚀

Câu 1175
A company is migrating infrastructure for its massive multiplayer game to AWS. The game’s application features a leaderboard where players can see rankings in real time. The leaderboard requires microsecond reads and single-digit-millisecond write latencies. The datasets are single-digit terabytes in size and must be available to accept writes in less than a minute if a primary node failure occurs.

The company needs a solution in which data can persist for further analytical processing through a data pipeline.

Which solution will meet these requirements with the LEAST operational overhead?
  1. A Create an Amazon ROS database with a read replica. Configure the application to point writes to the writer endpoint. Configure the application to point reads to the reader endpoint.
  2. B Create an Amazon MemoryDB for Redis cluster in Muit-AZ mode Configure the application to interact with the primary node.
  3. C Create multiple Redis nodes on Amazon EC2 instances that are spread across multiple Availability Zones. Configure backups to Amazon S3.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi tập trung vào việc di chuyển hạ tầng cho một trò chơi multiplayer quy mô lớn (massive multiplayer game) lên AWS, cụ thể là hệ thống leaderboard hiển thị thứ hạng người chơi theo thời gian thực (real time). Các yêu cầu kỹ thuật khắt khe bao gồm:

  • Đọc dữ liệu (reads) ở mức microsecond (μs, tức hàng triệu giây).
  • Ghi dữ liệu (writes) ở mức single-digit millisecond (dưới 10ms).
  • Kích thước dữ liệu ở mức single-digit terabytes (vài TB).
  • Tính sẵn sàng cao (HA): Có thể chấp nhận writes mới trong dưới 1 phút nếu node chính (primary) gặp sự cố.
  • Lưu trữ dữ liệu lâu dài: Dữ liệu phải persist để xử lý phân tích qua data pipeline (ví dụ: streaming hoặc export cho analytics).
  • Tiêu chí chọn giải pháp: LEAST operational overhead (ít công vận hành nhất), nghĩa là ưu tiên dịch vụ managed của AWS để giảm thiểu quản lý thủ công như patching, scaling, backup.

Đây là kịch bản điển hình cho in-memory database hỗ trợ Redis (phù hợp leaderboard với tốc độ cao), nhưng phải có durability (bền vững dữ liệu) và failover nhanh theo chuẩn AWS 2024-2026 (MemoryDB được cập nhật với Multi-AZ v2 cho failover <30 giây).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Create an Amazon MemoryDB for Redis cluster in Multi-AZ mode. Configure the application to interact with the primary node.

Lý do 🛠️:

  • MemoryDB for Redis là dịch vụ fully managed của AWS (ra mắt 2021, cập nhật 2025 với scale TB dễ dàng), tương thích Redis OSS, hỗ trợ microsecond reads và sub-ms writes nhờ in-memory.
  • Multi-AZ mode: Tự động failover primary node trong <30 giây (dưới 1 phút), replica tự động promote mà không mất dữ liệu nhờ multi-replica persistence (snapshot + append-only files).
  • Dataset TB: Hỗ trợ cluster lên đến hàng TB với node size lớn (r6g.16xlarge+).
  • Persist data: Tích hợp backups to S3, Redis Streams cho data pipeline (export sang Kinesis/S3 cho analytics), zero-ETL integration với Redshift/S3 (mới 2025).
  • Least op overhead: AWS quản lý patching, scaling, monitoring; app chỉ connect primary endpoint (tự động redirect sau failover).
  • Phù hợp game leaderboard: AWS Game Tech dùng MemoryDB cho real-time ranking (ví dụ: Fortnite-like).

📋 Phân tích chi tiết tất cả các phương án

Dưới đây là phân tích từng phương án, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá ✅ (đúng) hoặc ❌ (sai) dựa trên yêu cầu latencies, HA, persistence, và op overhead.

  • Phương án 1: Create an Amazon ROS database with a read replica. Configure the application to point writes to the writer endpoint. Configure the application to point reads to the reader endpoint.
    ❌ Sai vì: "ROS" có lẽ lỗi đánh máy của RDS (Relational Database Service), là database quan hệ (như MySQL/PostgreSQL), không hỗ trợ microsecond reads/writes (latencies thường 10-100ms+ do disk-based I/O). Read replica chỉ scale reads, không phải in-memory. Failover RDS ~1-2 phút (không <1 phút), và op overhead cao cho config endpoint thủ công. Không phù hợp leaderboard real-time, thiếu native persistence cho Redis-like pipeline.

  • Phương án 2: Create an Amazon MemoryDB for Redis cluster in Multi-AZ mode. Configure the application to interact with the primary node.
    ✅ Đúng hoàn hảo (như đã giải thích ở phần trên). Đáp ứng tất cả yêu cầu với op overhead thấp nhất nhờ managed service, failover sub-minute, và tích hợp data pipeline (Redis RDB/AOF snapshots + S3 export).

  • Phương án 3: Create multiple Redis nodes on Amazon EC2 instances that are spread across multiple Availability Zones. Configure backups to Amazon S3.
    ❌ Sai vì: Đây là self-managed Redis trên EC2, op overhead rất cao (phải tự install Redis, config replication/sentinel/cluster, quản lý failover thủ công, patching, scaling AZ). Latencies có thể đạt nếu tune tốt, nhưng failover >1 phút (phụ thuộc script), dataset TB cần nhiều instance lớn (chi phí cao). Backups to S3 thủ công, không seamless pipeline. AWS khuyến nghị tránh self-managed cho production game (dùng managed như MemoryDB/ElastiCache thay).

📘 Tài liệu tham khảo (AWS cập nhật 2024-2026)

  • MemoryDB docs: AWS MemoryDB for Redis – Chi tiết Multi-AZ failover <30s, TB scale, data persistence via S3/Streams.
  • So sánh ElastiCache vs MemoryDB: AWS Blog: MemoryDB for durable Redis – Nhấn mạnh least op overhead cho game workloads.
  • GameLoft case study: AWS Games Case Studies – Sử dụng MemoryDB cho leaderboard.
  • Exam guide DOP-C02: AWS Certified DevOps Engineer Professional (2024) – Topic "High Performance Databases" ưu tiên managed in-memory cho real-time.
  • Cập nhật 2025: MemoryDB hỗ trợ Redis 7.1, zero-ETL to Redshift cho analytics pipeline.

Hy vọng phân tích này giúp bạn ôn thi hiệu quả! 🚀 Nếu cần thêm ví dụ code/config, hãy hỏi nhé!

Câu 1176
A company is running several applications in the AWS Cloud. The applications are specific to separate business units in the company. The company is running the components of the applications in several AWS accounts that are in an organization in AWS Organizations.

Every cloud resource in the company’s organization has a tag that is named BusinessUnit. Every tag already has the appropriate value of the business unit name.

The company needs to allocate its cloud costs to different business units. The company also needs to visualize the cloud costs for each business unit.

Which solution will meet these requirements?
  1. A In the organization's management account, create a cost allocation tag that is named BusinessUnit. Also in the management account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure the S3 bucket as the destination for the AWS CUR. From the management account, query the AWS CUR data by using Amazon Athena. Use Amazon QuickSight for visualization.
  2. B In each member account, create a cost allocation tag that is named BusinessUnit. In the organization’s management account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure the S3 bucket as the destination for the AWS CUR. Create an Amazon CloudWatch dashboard for visualization.
  3. C In the organization's management account, create a cost allocation tag that is named BusinessUnit. In each member account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure each S3 bucket as the destination for its respective AWS CUR. In the management account, create an Amazon CloudWatch dashboard for visualization.
  4. D In each member account, create a cost allocation tag that is named BusinessUnit. Also in each member account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure each S3 bucket as the destination for its respective AWS CUR. From the management account, query the AWS CUR data by using Amazon Athena. Use Amazon QuickSight for visualization.
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi tập trung vào việc phân bổ chi phí đám mây AWS theo các đơn vị kinh doanh (BusinessUnit) trong một tổ chức AWS Organizations. 🏢

  • Công ty chạy nhiều ứng dụng thuộc các đơn vị kinh doanh riêng biệt, phân bổ trên nhiều AWS accounts trong một organization.
  • Mọi tài nguyên đám mây đã được gắn tag BusinessUnit với giá trị phù hợp (user-defined tag).
  • Yêu cầu chính:
    • Phân bổ chi phí theo từng BusinessUnit.
    • Hiển thị trực quan (visualize) chi phí cho từng đơn vị từ góc nhìn tổ chức.

🛠️ Giải pháp cần thiết: Sử dụng Cost Allocation Tags để kích hoạt tag phân bổ chi phí, kết hợp AWS Cost and Usage Report (CUR) để xuất dữ liệu chi phí chi tiết, lưu vào S3, query bằng Athena, và visualize bằng QuickSight. Tất cả phải thực hiện từ management account để bao quát toàn organization (theo best practice AWS Organizations đến 2026).

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Lựa chọn A (phương án đầu tiên).

🧩 Lý do chi tiết:

  • Tạo cost allocation tag "BusinessUnit" ở management account → AWS tự động kích hoạt tag này cho toàn organization (activate AWS-generated + user-defined tags). Điều này đảm bảo chi phí từ tất cả member accounts được phân bổ theo tag.
  • Tạo S3 bucket và CUR ở management account → CUR từ management account có thể bao quát dữ liệu chi phí toàn tổ chức (include linked accounts).
  • Query CUR bằng Athena (trên S3) và visualize bằng QuickSight → Đây là cách chuẩn để phân tích dữ liệu CUR lớn, tạo dashboard động theo BusinessUnit.
  • Hoàn hảo khớp yêu cầu: phân bổ + visualize tập trung, scalable cho multi-account.

🔍 Phân tích tất cả các phương án

  • ✅ Phương án ĐÚNG (A):
    In the organization's management account, create a cost allocation tag that is named BusinessUnit. Also in the management account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure the S3 bucket as the destination for the AWS CUR. From the management account, query the AWS CUR data by using Amazon Athena. Use Amazon QuickSight for visualization.
    🟢 Đúng vì: Cost allocation tag chỉ cần kích hoạt một lần ở management account để áp dụng toàn org (AWS auto-propagate). CUR/S3/Athena/QuickSight từ management account xử lý dữ liệu unified, hiệu quả cao, theo best practice 2026.

  • ❌ Phương án SAI (B):
    In each member account, create a cost allocation tag that is named BusinessUnit. In the organization’s management account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure the S3 bucket as the destination for the AWS CUR. Create an Amazon CloudWatch dashboard for visualization.
    🟡 Sai vì: Tạo tag ở từng member account không hiệu quả (không auto-propagate toàn org, phải activate thủ công nhiều nơi). CloudWatch dashboard không phù hợp visualize chi phí CUR (chỉ metrics thời gian thực, không query dữ liệu lịch sử chi tiết như CUR).

  • ❌ Phương án SAI (C):
    In the organization's management account, create a cost allocation tag that is named BusinessUnit. In each member account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure each S3 bucket as the destination for its respective AWS CUR. In the management account, create an Amazon CloudWatch dashboard for visualization.
    🟡 Sai vì: CUR ở từng member account → dữ liệu phân tán (khó aggregate toàn org từ management). CloudWatch dashboard không hỗ trợ visualize CUR cross-account hiệu quả (thiếu query sâu).

  • ❌ Phương án SAI (D):
    In each member account, create a cost allocation tag that is named BusinessUnit. Also in each member account, create an Amazon S3 bucket and an AWS Cost and Usage Report (AWS CUR). Configure each S3 bucket as the destination for its respective AWS CUR. From the management account, query the AWS CUR data by using Amazon Athena. Use Amazon QuickSight for visualization.
    🟡 Sai vì: Tag và CUR/S3 phân tán ở từng member → khó quản lý, không unified data cho Athena/QuickSight từ management (phải cross-account query phức tạp, không scalable). Không khớp best practice tập trung ở management account.

🛡️ Lời khuyên DevOps: Luôn dùng management account cho cost governance trong Organizations để tránh fragmented data! 🚀

Câu 1177 Chọn nhiều đáp án
A utility company wants to collect usage data every 5 minutes from its smart meters to facilitate time-of-use metering. When a meter sends data to AWS, the data is sent to Amazon API Gateway, processed by an AWS Lambda function. and stored in an Amazon DynamoDB table. During the pilot phase, the Lambda functions took from 3 to 5 seconds to complete.

As more smart meters are deployed, the engineers notice the Lambda functions are taking from 1 to 2 minutes to complete. The functions are also increasing in duration as new types of metrics are collected from the devices. There are many ProvisionedThroughputExceededException errors while performing PUT operations on DynamoDB, and there are also many TooManyRequestsException errors from Lambda.

Which combination of changes will resolve these issues? (Choose two.)
  1. A Increase the write capacity units to the DynamoDB table.
  2. B Increase the memory available to the Lambda functions.
  3. C Increase the payload size from the smart meters to send more data.
  4. D Stream the data into an Amazon Kinesis data stream from API Gateway and process the data in batches.
  5. E Collect data in an Amazon SQS FIFO queue, which triggers a Lambda function to process each message
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi mô tả một công ty tiện ích thu thập dữ liệu sử dụng từ các đồng hồ thông minh (smart meters) mỗi 5 phút để hỗ trợ đo lường theo thời gian sử dụng. Dữ liệu được gửi đến Amazon API Gateway, xử lý bởi AWS Lambda, và lưu vào Amazon DynamoDB.

🔍 Vấn đề trong giai đoạn pilot:

  • Lambda hoàn thành nhanh (3-5 giây).
  • Khi triển khai nhiều meter hơn và thêm metrics mới:
    • Lambda chậm hơn (1-2 phút).
    • Lỗi ProvisionedThroughputExceededException trên DynamoDB (vượt quá công suất ghi đã provisioned).
    • Lỗi TooManyRequestsException từ Lambda (throttling do vượt concurrency limit hoặc invoke quá nhiều).

🛠️ Mục tiêu: Chọn 2 thay đổi kết hợp để giải quyết, tập trung vào scale xử lý dữ liệu lớn, giảm tải trực tiếp lên DynamoDB và Lambda. Kiến thức AWS cập nhật 2026: DynamoDB hỗ trợ on-demand mode nhưng ở đây dùng provisioned; Lambda có burst concurrency lên đến hàng nghìn nhưng vẫn throttle nếu không optimize; Kinesis lý tưởng cho streaming high-throughput với batching.

✅ Đáp án đúng và lý do lựa chọn

Hai đáp án đúng là:

  • Increase the write capacity units to the DynamoDB table.
  • Stream the data into an Amazon Kinesis data stream from API Gateway and process the data in batches.

📈 Lý do chọn:

  • Tăng write capacity units trực tiếp khắc phục ProvisionedThroughputExceededException bằng cách cung cấp thêm throughput cho DynamoDB (theo best practice AWS: scale provisioned capacity tự động qua Application Auto Scaling).
  • Stream vào Kinesis + batch processing giảm số lượng invoke Lambda và write DynamoDB riêng lẻ (từ every 5 minutes/meter thành batches), giải quyết throttling Lambda (TooManyRequestsException) và thời gian xử lý dài. Kinesis Producer Library (KPL) từ API Gateway hỗ trợ durable buffering, shard scaling tự động (lên đến hàng TB/giờ theo docs 2026).

Kết hợp hai thay đổi này optimize toàn bộ pipeline: buffer + batch ở Kinesis giảm tải realtime, scale DynamoDB cho write bursts.

🔍 Phân tích tất cả các phương án

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh:

  • Increase the write capacity units to the DynamoDB table.
    ✅ Đúng: Phương án này trực tiếp giải quyết lỗi ProvisionedThroughputExceededException bằng cách tăng WCUs (Write Capacity Units), cho phép DynamoDB xử lý thêm write requests/giây. Theo AWS 2026, dùng Auto Scaling hoặc on-demand mode để tự động adjust, tránh over-provisioning. Kết hợp với batching sẽ hiệu quả hơn.

  • Increase the memory available to the Lambda functions.
    ❌ Sai: Tăng memory làm CPU allocation cao hơn, có thể giảm thời gian thực thi Lambda (scale theo memory), nhưng không giải quyết throttling (TooManyRequestsException do account-level concurrency limit ~1000, hoặc burst). Vấn đề gốc là volume cao từ nhiều meters, không phải compute power.

  • Increase the payload size from the smart meters to send more data.
    ❌ Sai: Tăng payload làm dữ liệu lớn hơn, tăng thời gian xử lý Lambda/DynamoDB, payload limit API Gateway (10MB), và write units tiêu thụ nhiều hơn (DynamoDB tính theo item size). Làm tình hình tệ hơn, không scale.

  • Stream the data into an Amazon Kinesis data stream from API Gateway and process the data in batches.
    ✅ Đúng: Kinesis làm buffer stream, hỗ trợ PutRecord từ API Gateway (qua integration), Lambda consumer process batches (Enhanced Fan-Out hoặc Kinesis Data Firehose). Giảm invokes từ "mỗi meter" xuống batches (e.g., 1000 records/shard), giải quyết throttling Lambda và overload DynamoDB. AWS 2026: Kinesis shards auto-scale dựa trên throughput.

  • Collect data in an Amazon SQS FIFO queue, which triggers a Lambda function to process each message.
    ❌ Sai: SQS FIFO đảm bảo ordering nhưng process từng message (không batch tự động như Kinesis), vẫn gây nhiều Lambda invokes → throttling. SQS trigger Lambda max batch size 10k nhưng ở đây volume cao every 5 phút, không hiệu quả cho streaming; thiếu buffering mạnh như Kinesis.

📘 Tài liệu tham khảo

Hy vọng phân tích giúp bạn ôn thi hiệu quả! 🚀 Nếu cần thêm ví dụ code hoặc diagram, hỏi nhé!

Câu 1178
A company recently completed a successful proof of concept of Amazon WorkSpaces. A solutions architect needs to make the solution highly available across two AWS Regions. Amazon WorkSpaces is deployed in a failover Region, and a hosted zone is deployed in Amazon Route 53.

What should the solutions architect do to configure high availability for the solution?
  1. A Create a connection alias in the primary Region and in the failover Region. Associate the connection aliases with a directory in each Region. Create a Route 53 failover routing policy. Set Evaluate Target Health to Yes.
  2. B Create a connection alias in the primary Region and in the failover Region. Associate the connection aliases with a directory in the primary Region. Create a Route 53 multivalue answer routing policy.
  3. C Create a connection alias in the primary Region. Associate the connection alias with a directory in the primary Region. Create a Route 53 weighted routing policy.
  4. D Create a connection alias in the primary Region Associate the connection alias with a directory in the failover Region. Create a Route 53 failover routing policy. Set Evaluate Target Health to Yes.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi xoay quanh việc làm cho giải pháp Amazon WorkSpaces có tính sẵn sàng cao (high availability - HA) trên hai AWS Regions. Công ty đã hoàn thành proof of concept (POC) thành công với WorkSpaces. Kiến trúc sư giải pháp cần triển khai WorkSpaces ở failover Region (vùng dự phòng), và đã có hosted zone trong Amazon Route 53.

Mục tiêu chính: Sử dụng Route 53 để định tuyến lưu lượng đến WorkSpaces ở primary Region (vùng chính), và tự động chuyển sang failover Region nếu primary gặp sự cố. Điều này yêu cầu cấu hình connection alias (bí danh kết nối) cho WorkSpaces (để client kết nối qua DNS), liên kết với directory (Active Directory hoặc tương đương) ở từng vùng, và chính sách định tuyến failover trong Route 53 với Evaluate Target Health = Yes để kiểm tra sức khỏe đích.

Bối cảnh AWS cập nhật 2026: Amazon WorkSpaces hỗ trợ multi-Region HA qua connection aliases và Route 53 (theo AWS WorkSpaces User Guide và Route 53 Developer Guide, phiên bản mới nhất). WorkSpaces yêu cầu connection alias phải được tạo riêng cho từng Region và associate với directory địa phương để tránh latency và đảm bảo failover mượt mà.

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng:
Create a connection alias in the primary Region and in the failover Region. Associate the connection aliases with a directory in each Region. Create a Route 53 failover routing policy. Set Evaluate Target Health to Yes.

Lý do chi tiết 🛠️:

  • Tạo connection alias ở cả hai Region để client (WorkSpaces client app) có thể kết nối qua DNS tùy chỉnh (ví dụ: workspaces.company.com).
  • Associate alias với directory ở chính Region đó (primary alias → primary directory; failover alias → failover directory) để đảm bảo tính nhất quán, tránh lỗi authentication cross-Region và giảm latency.
  • Sử dụng Route 53 failover routing policy với Evaluate Target Health = Yes để Route 53 kiểm tra health check của primary endpoint (qua alias primary). Nếu primary down, tự động chuyển sang failover. Đây là cách chuẩn AWS khuyến nghị cho WorkSpaces HA multi-Region.
    Kết quả: Giải pháp HA hoàn chỉnh, tự động failover mà không gián đoạn lớn.

📋 Giải thích tất cả các phương án (đúng/sai)

Dưới đây là phân tích từng lựa chọn một cách chi tiết. Tôi giữ nguyên văn bản gốc bằng tiếng Anh, và giải thích hoàn toàn bằng tiếng Việt với lý do đúng/sai.

  • ✅ Create a connection alias in the primary Region and in the failover Region. Associate the connection aliases with a directory in each Region. Create a Route 53 failover routing policy. Set Evaluate Target Health to Yes.
    Đúng vì: Như đã giải thích ở trên. Đây là quy trình chính xác theo best practice AWS: alias riêng Region, directory địa phương, failover policy với health check. Đảm bảo HA thực sự cross-Region.

  • ❌ Create a connection alias in the primary Region and in the failover Region. Associate the connection aliases with a directory in the primary Region. Create a Route 53 multivalue answer routing policy.
    Sai vì: Mặc dù tạo alias ở cả hai Region, nhưng associate cả hai alias với directory primary sẽ gây lỗi authentication ở failover Region (directory không khớp Region, dẫn đến latency cao và fail khi failover). Hơn nữa, multivalue answer policy chỉ trả về nhiều IP ngẫu nhiên (không phải failover thực sự), thiếu health check tự động chuyển hướng.

  • ❌ Create a connection alias in the primary Region. Associate the connection alias with a directory in the primary Region. Create a Route 53 weighted routing policy.
    Sai vì: Chỉ tạo alias ở primary Region → Không có endpoint failover, client không thể chuyển sang Region khác. Weighted policy dùng cho load balancing theo trọng số (không phải HA/failover), không tự động chuyển khi primary down. Thiếu hoàn toàn cơ chế dự phòng.

  • ❌ Create a connection alias in the primary Region Associate the connection alias with a directory in the failover Region. Create a Route 53 failover routing policy. Set Evaluate Target Health to Yes.
    Sai vì: Alias primary associate với directory failover gây mismatch Region → Lỗi kết nối, authentication fail do cross-Region latency và policy không khớp. Dù có failover policy tốt, nhưng cấu hình alias sai làm toàn bộ giải pháp thất bại ngay từ primary.

Kết luận 🚀: Cấu hình đúng giúp WorkSpaces đạt 99.99% availability cross-Region theo SLA AWS. Hãy test health check kỹ trước production!

Câu 1179
A company plans to migrate many VMs from an on-premises environment to AWS. The company requires an initial assessment of the on-premises environment before the migration, a visualization of the dependencies between applications that run on the VMs, and a report that provides an assessment of the on-premises environment.

To get this information, the company has initiated a Migration Evaluator assessment request. The company has the ability to install collector software in its on-premises environment without any constraints

Which solution will provide the company with the required information with the LEAST operational overhead?
  1. A Install the AWS Application Discovery Agent on each on-premises VM. After the data collection period ends, use AWS Migration Hub to view the application dependencies. Download the Quick insights assessment report from Migration Hub.
  2. B Install the Migration Evaluator Collector on each on-premises VM. After the data collection period ends, use Migration Evaluator to view the application dependencies. Download and export the discovered server list from Migration Evaluator. Upload the list to Amazon QuickSight When the QuickSight report is generated, download the Quick Insights assessment report.
  3. C Setup the AWS Application Discovery Service Agentless Collector in the on-premises environment. After the data collection period ends, use AWS Migration Hub to view the application dependencies. Export the discovered server list from Application Discovery Service. Upload the list to Migration Evaluator. When the Migration Evaluator report is generated, download the Quick Insights assessment.
  4. D Set up the Migration Evaluator Collector in the on-premises environment. Install the AWS Application Discovery Agent on each VM. After the data collection period ends, use AWS Migration Hub to view the application dependencies. Download the Quick Insights assessment report from Migration Evaluator.
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi xoay quanh việc di chuyển hàng loạt máy ảo (VMs) từ môi trường on-premises sang AWS, với yêu cầu cụ thể:

  • Đánh giá ban đầu môi trường on-premises.
  • Hình ảnh hóa (visualization) các phụ thuộc (dependencies) giữa các ứng dụng chạy trên VMs.
  • Báo cáo đánh giá (assessment report) về môi trường on-premises, cụ thể là Quick Insights assessment report.

Công ty đã khởi tạo yêu cầu đánh giá Migration Evaluator (initiated a Migration Evaluator assessment request), và có thể cài đặt phần mềm collector trên môi trường on-premises mà không gặp ràng buộc nào.
Mục tiêu: Chọn giải pháp cung cấp đầy đủ thông tin yêu cầu với chi phí vận hành thấp nhất (LEAST operational overhead).
🛠️ Kiến thức cốt lõi (cập nhật AWS 2024-2026):

  • AWS Application Discovery Service (ADDS) trong AWS Migration Hub thu thập dữ liệu chi tiết về servers, processes, network connections để visualize dependencies (qua Server group & Dependencies graph).
  • Migration Evaluator (ME) cung cấp Quick Insights report (chi phí di chuyển, right-sizing). Tích hợp với Migration Hub để pull data từ ADDS tự động.
  • ADS Agent: Cài trên từng VM → thu thập dữ liệu chi tiết (processes/apps/dependencies).
  • ADS Agentless Collector: Deploy 1 appliance trên hypervisor → chỉ inventory VMs, KHÔNG hỗ trợ dependencies visualization đầy đủ (thiếu process-level data).
  • ME Collector: Deploy 1 VM collector → thu thập inventory/perf qua SSH/WMI, KHÔNG visualize app dependencies.
    📘 Tài liệu tham khảo:
  • AWS Docs: Application Discovery Service (Agent vs Agentless).
  • AWS Docs: Migration Evaluator (Quick Insights & Integration).
  • AWS Migration Hub (Tích hợp ADDS → ME report).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Install the AWS Application Discovery Agent on each on-premises VM. After the data collection period ends, use AWS Migration Hub to view the application dependencies. Download the Quick insights assessment report from Migration Hub.

🧩 Lý do:

  • Đây là giải pháp đơn giản nhất, tích hợp liền mạch với LEAST operational overhead cho yêu cầu đầy đủ:
    • ADS Agent trên từng VM thu thập dữ liệu chi tiết → Migration Hub visualize dependencies (app graphs chính xác).
    • Vì đã initiated ME assessment, data từ Migration Hub tự động generate Quick Insights report (không cần export/upload thủ công).
  • Với "many VMs" nhưng "no constraints install", overhead chủ yếu là cài agent ban đầu, sau đó passive collection (không cần quản lý thêm). Không cần deploy collector riêng hay bước trung gian phức tạp.
  • Các giải pháp khác thêm bước thừa hoặc thiếu tính năng (xem phân tích dưới).

📋 Phân tích chi tiết tất cả các phương án

Dưới đây là phân tích từng phương án theo thứ tự, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phân tích nhấn mạnh đúng/sai, lý do dựa trên AWS best practices (2026).

  • ✅ Đúng (Phương án tối ưu):
    Install the AWS Application Discovery Agent on each on-premises VM. After the data collection period ends, use AWS Migration Hub to view the application dependencies. Download the Quick insights assessment report from Migration Hub.
    🛠️ Giải thích: ADS Agent cung cấp dữ liệu đầy đủ cho Migration Hub visualize dependencies (processes/network). Tích hợp trực tiếp với Migration Evaluator (qua initiated request) để download Quick Insights từ Hub → không overhead thừa, tự động, phù hợp many VMs.

  • ❌ Sai:
    Install the Migration Evaluator Collector on each on-premises VM. After the data collection period ends, use Migration Evaluator to view the application dependencies. Download and export the discovered server list from Migration Evaluator. Upload the list to Amazon QuickSight When the QuickSight report is generated, download the Quick Insights assessment report.
    🧩 Lý do sai:

    • ME Collector KHÔNG cài trên TỪNG VM (chỉ 1 collector VM cho toàn env).
    • ME không hỗ trợ visualize app dependencies (chỉ inventory/perf).
    • Export → QuickSight → generate report là overhead cao, phức tạp, không dùng ME native Quick Insights. Không đáp ứng đầy đủ.
  • ❌ Sai:
    Setup the AWS Application Discovery Service Agentless Collector in the on-premises environment. After the data collection period ends, use AWS Migration Hub to view the application dependencies. Export the discovered server list from Application Discovery Service. Upload the list to Migration Evaluator. When the Migration Evaluator report is generated, download the Quick Insights assessment.
    🛠️ Lý do sai:

    • Agentless Collector chỉ inventory VMs/config → Migration Hub KHÔNG visualize app dependencies đầy đủ (thiếu processes/connections; chỉ server-level).
    • Cần export/upload thủ công sang ME → overhead cao hơn tích hợp trực tiếp. Không phải least overhead cho dependencies yêu cầu.
  • ❌ Sai:
    Set up the Migration Evaluator Collector in the on-premises environment. Install the AWS Application Discovery Agent on each VM. After the data collection period ends, use AWS Migration Hub to view the application dependencies. Download the Quick Insights assessment report from Migration Evaluator.
    🧩 Lý do sai:

    • Kết hợp ME Collector (1 cái) + ADS Agent (trên TỪNG VM) → overhead kép cao hơn (2 hệ thống riêng biệt).
    • Quick Insights từ ME riêng, không tận dụng tích hợp Migration Hub → thừa bước, không least operational.

🔥 Kết luận: Giải pháp đúng tận dụng tích hợp AWS native (ADDS + Migration Hub + ME) để đạt mọi yêu cầu với quy trình mượt mà nhất! Nếu cần lab thực tế, dùng AWS Free Tier Migration Hub.

Câu 1180
A company hosts its primary API on AWS by using an Amazon API Gateway API and AWS Lambda functions that contain the logic for the API methods. The company’s internal applications use the API for core functionality and business logic. The company’s customers use the API to access data from their accounts. Several customers also have access to a legacy API that is running on a single standalone Amazon EC2 instance.

The company wants to increase the security for these APIs to better prevent denial of service (DoS) attacks, check for vulnerabilities, and guard against common exploits.

What should a solutions architect do to meet these requirements?
  1. A Use AWS WAF to protect both APIs. Configure Amazon Inspector to analyze the legacy API. Configure Amazon GuardDuty to monitor for malicious attempts to access the APIs.
  2. B Use AWS WAF to protect the API Gateway API. Configure Amazon Inspector to analyze both APIs. Configure Amazon GuardDuty to block malicious attempts to access the APIs.
  3. C Use AWS WAF to protect the API Gateway API. Configure Amazon Inspector to analyze the legacy API. Configure Amazon GuardDuty to monitor for malicious attempts to access the APIs.
  4. D Use AWS WAF to protect the API Gateway AP! Configure Amazon Inspector to protect the legacy API. Configure Amazon GuardDuty to block malicious attempts to access the APIs.
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi xoay quanh việc tăng cường bảo mật cho hai loại API của một công ty trên AWS, nhằm chống tấn công DoS (Denial of Service), kiểm tra lỗ hổng bảo mật (vulnerabilities) và bảo vệ chống khai thác phổ biến (common exploits). Cụ thể:

  • API chính: Được host trên Amazon API Gateway kết hợp AWS Lambda (chứa logic xử lý phương thức API). API này phục vụ ứng dụng nội bộ (core functionality, business logic) và khách hàng (truy cập dữ liệu tài khoản).
  • API legacy: Chạy trên một instance Amazon EC2 độc lập (standalone), chỉ một số khách hàng truy cập.
  • Yêu cầu: Giải pháp phải sử dụng các dịch vụ AWS phù hợp để bảo vệ toàn diện, tận dụng tính năng mới nhất (cập nhật đến 2026, dựa trên AWS Well-Architected Framework và dịch vụ security như WAF v2, Inspector Gen2, GuardDuty Malware Protection).

🛠️ Các dịch vụ liên quan chính (kiến thức cập nhật 2026):

  • AWS WAF (Web Application Firewall): Chống DoS (throttling, rate-based rules), exploits (SQLi, XSS) – tích hợp trực tiếp với API Gateway, ALB, CloudFront.
  • Amazon Inspector: Quét lỗ hổng (vulnerability scanning) trên EC2, Lambda functions, container images (hỗ trợ Lambda từ 2023, Gen2 từ 2024 với CIS benchmarks).
  • Amazon GuardDuty: Giám sát (monitoring) hoạt động độc hại (malicious attempts) qua CloudTrail, VPC Flow Logs, DNS – không block tự động, chỉ alert (tích hợp với EventBridge/ Lambda để respond).

📘 Tài liệu tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Use AWS WAF to protect the API Gateway API. Configure Amazon Inspector to analyze the legacy API. Configure Amazon GuardDuty to monitor for malicious attempts to access the APIs.

Lý do:

  • 🛡️ WAF bảo vệ API Gateway: Hoàn hảo cho API chính (tích hợp native, chống DoS/exploits qua managed rulesets như Core Rule Set - CRS).
  • 🔍 Inspector phân tích legacy API (EC2): Inspector chuyên quét vulnerabilities trên EC2 instance (CVE scanning, network reachability), phù hợp legacy standalone.
  • 👀 GuardDuty monitor: Giám sát attempts độc hại trên toàn bộ APIs (network/API calls), không cần block (vì yêu cầu là "monitor/guard", không phải auto-block).
  • Giải pháp tối ưu, chi phí thấp, tuân thủ AWS best practices cho hybrid APIs (API Gateway + EC2).

📋 Giải thích chi tiết tất cả các phương án

Dưới đây là phân tích từng lựa chọn giữ nguyên văn bản gốc bằng tiếng Anh, với lý do đúng/sai bằng tiếng Việt:

  • ❌ Phương án A: Use AWS WAF to protect both APIs. Configure Amazon Inspector to analyze the legacy API. Configure Amazon GuardDuty to monitor for malicious attempts to access the APIs.
    Lý do sai: WAF không dễ dàng protect "both APIs" vì legacy EC2 standalone không hỗ trợ WAF trực tiếp (cần ALB/CloudFront proxy, không đề cập). Phần còn lại đúng nhưng "both APIs" làm sai toàn bộ.

  • ❌ Phương án B: Use AWS WAF to protect the API Gateway API. Configure Amazon Inspector to analyze both APIs. Configure Amazon GuardDuty to block malicious attempts to access the APIs.
    Lý do sai:

    • Inspector có thể analyze Lambda (API Gateway backend) và EC2, nhưng mô tả "both APIs" không chính xác (Inspector quét infra/code, không phải API endpoint trực tiếp).
    • GuardDuty không "block", chỉ monitor/alert (block cần tích hợp riêng với WAF/Shield Advanced).
  • ✅ Phương án C (Đúng): Use AWS WAF to protect the API Gateway API. Configure Amazon Inspector to analyze the legacy API. Configure Amazon GuardDuty to monitor for malicious attempts to access the APIs.
    Lý do đúng: Kết hợp hoàn hảo – WAF cho API Gateway (DoS/exploits), Inspector cho EC2 vulnerabilities, GuardDuty monitor toàn diện. Phù hợp yêu cầu mà không over-engineer.

  • ❌ Phương án D: Use AWS WAF to protect the API Gateway AP! Configure Amazon Inspector to protect the legacy API. Configure Amazon GuardDuty to block malicious attempts to access the APIs.
    Lý do sai:

    • "AP!" là lỗi đánh máy (API), nhưng chính yếu: Inspector không "protect", chỉ analyze/scan (protect là vai trò của WAF).
    • GuardDuty không block, sai như phương án B.