Ngân hàng đề — AWS Certified Solutions Architect Professional
Tìm thấy 1221 câu.
As part of its disaster recovery plan, the company wants the ability to host its application on AWS temporarily if the company's on-premises environment becomes unavailable. The company wants the application to return to on-premises hosting after a disaster recovery event is complete. The RPO is 5 minutes.
Which solution meets these requirements with the LEAST amount of operational overhead?
- A Configure AWS DataSync. Replicate the data to Amazon Elastic Block Store (Amazon EBS) volumes. When the on-premises environment is unavailable, use AWS CloudFormation templates to provision Amazon EC2 instances and attach the EBS volumes.
- B Configure AWS Elastic Disaster Recovery. Replicate the data to replication Amazon EC2 instances that are attached to Amazon Elastic Block Store (Amazon EBS) volumes. When the on-premises environment is unavailable, use Elastic Disaster Recovery to launch EC2 instances that use the replicated volumes.
- C Provision an AWS Storage Gateway file gateway. Replicate the data to an Amazon S3 bucket. When the on-premises environment is unavailable, use AWS Backup to restore the data to Amazon Elastic Block Store (Amazon EBS) volumes and launch Amazon EC2 instances from these EBS volumes.
- D Provision an Amazon FSx for Windows File Server file system on AWS. Replicate the data to the file system. When the on-premises environment is unavailable, use AWS CloudFormation templates to provision Amazon EC2 instances and use AWS::CloudFormation::Init commands to mount the Amazon FSx file shares.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm AWS
Câu hỏi mô tả tình huống thực tế của một công ty đang chạy ứng dụng trên Windows Server hosted trên VMware vSphere on-premises (tự quản lý). Dữ liệu ứng dụng ở định dạng proprietary (chỉ đọc được qua ứng dụng), và server được provision thủ công. Yêu cầu chính cho kế hoạch Disaster Recovery (DR):
- ✅ Khả năng host tạm ứng dụng trên AWS nếu on-premises down.
- ✅ Sau DR, quay về host on-premises.
- ✅ RPO (Recovery Point Objective) = 5 phút (nghĩa là mất dữ liệu tối đa 5 phút).
- 🔑 Tiêu chí quan trọng nhất: Giải pháp với LEAST operational overhead (ít công vận hành nhất, tự động hóa cao, không manual nhiều).
🛠️ Mục tiêu giải pháp: Cần replicate dữ liệu/VM liên tục (near real-time để đạt RPO thấp), failover nhanh sang AWS EC2 (Windows-compatible), test DR dễ dàng, và failback tự động về on-prem. Phù hợp với VMware VMs và proprietary data (không cần migrate data thủ công).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Configure AWS Elastic Disaster Recovery. Replicate the data to replication Amazon EC2 instances that are attached to Amazon Elastic Block Store (Amazon EBS) volumes. When the on-premises environment is unavailable, use Elastic Disaster Recovery to launch EC2 instances that use the replicated volumes.
📘 Lý do chọn đáp án này (theo kiến thức AWS mới nhất 2026):
- AWS Elastic Disaster Recovery (DRS, trước là CloudEndure DR) là dịch vụ chuyên DR cho VMs on-prem (VMware vSphere, Hyper-V, physical servers) replicate continuous block-level sang AWS với RPO <1 phút (dễ đạt 5 phút).
- Tự động tạo replication servers trên EC2 với EBS volumes giống hệt on-prem (hỗ trợ Windows Server, proprietary data nguyên vẹn).
- Failover/launch EC2 chỉ 1-click qua console/agentless (cho VMware), test DR không ảnh hưởng production, failback tự động về on-prem.
- Least overhead: Không manual provision, tự động hóa toàn bộ (install agent nhẹ trên VM → replicate → DR orchestration). Tiết kiệm chi phí (pay-per-replication).
🔍 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 giữ nguyên văn bản gốc tiếng Anh, đánh dấu ✅/❌ và giải thích chi tiết bằng tiếng Việt dựa trên best practices AWS 2026:
-
❌ [SAI] Configure AWS DataSync. Replicate the data to Amazon Elastic Block Store (Amazon EBS) volumes. When the on-premises environment is unavailable, use AWS CloudFormation templates to provision Amazon EC2 instances and attach the EBS volumes.
- Lý do sai: DataSync chỉ sync file/block data (không replicate toàn bộ VM state như OS/config/app). RPO có thể đạt nhưng cần schedule (không continuous như 5 phút real-time). Failover yêu cầu manual CloudFormation provision EC2 + attach EBS → operational overhead cao (thiết kế template, test, quản lý). Không hỗ trợ failback tự động về on-prem VMware. Không lý tưởng cho proprietary data cần app-specific reading.
-
✅ [ĐÚNG] Configure AWS Elastic Disaster Recovery. Replicate the data to replication Amazon EC2 instances that are attached to Amazon Elastic Block Store (Amazon EBS) volumes. When the on-premises environment is unavailable, use Elastic Disaster Recovery to launch EC2 instances that use the replicated volumes.
- Lý do đúng: Như đã giải thích ở trên. Đây là giải pháp native AWS cho pilot light/warm standby DR với overhead thấp nhất (agent-based replication, console-driven failover/failback). Hỗ trợ Windows/VMware chính xác, RTO/RPO tối ưu (<5 phút).
-
❌ [SAI] Provision an AWS Storage Gateway file gateway. Replicate the data to an Amazon S3 bucket. When the on-premises environment is unavailable, use AWS Backup to restore the data to Amazon Elastic Block Store (Amazon EBS) volumes and launch Amazon EC2 instances from these EBS volumes.
- Lý do sai: Storage Gateway (File Gateway) chỉ sync file shares sang S3 (không block-level VM replication, không proprietary data full fidelity). Restore qua AWS Backup → thời gian lâu (giờ thay vì phút), không đạt RPO 5 phút. Manual launch EC2 + restore → overhead lớn, không failback dễ dàng về VMware. Không phù hợp Windows app cần direct block access.
-
❌ [SAI] Provision an Amazon FSx for Windows File Server file system on AWS. Replicate the data to the file system. When the on-premises environment is unavailable, use AWS CloudFormation templates to provision Amazon EC2 instances and use AWS::CloudFormation::Init commands to mount the Amazon FSx file shares.
- Lý do sai: FSx for Windows chỉ file sharing (SMB), không replicate VM disks proprietary. Cần tool riêng replicate data (như DataSync/Robocopy) → không continuous RPO. Failover manual CloudFormation + Init scripts mount FSx → overhead cao (template phức tạp, config app thủ công). Failback khó, không tự động như DRS.
📚 Tài liệu tham khảo (AWS cập nhật 2026)
- AWS Elastic Disaster Recovery: docs.aws.amazon.com/aws-elastic-disaster-recovery – Chi tiết replication, RPO/RTO, VMware support.
- AWS Well-Architected Framework - Reliability Pillar: aws.amazon.com/architecture/well-architected – DR strategies với least overhead.
- Exam DOP-C02 Guide: AWS Certified DevOps Engineer Professional – Topic: High Availability & DR (DRS là recommended cho on-prem to AWS).
💡 Lời khuyên DevOps: Ưu tiên DRS cho DR cross-cloud với RPO thấp, kết hợp AWS Backup cho data lâu dài. Test DR định kỳ qua DRS non-disruptive drills! 🚀
The company wants to increase its global presence. A solutions architect must launch the data collection capabilities in the sa-east-1 and ap-northeast-1 Regions. The solutions architect deploys the application, the Kinesis data stream, and the Lambda functions in the two new Regions. The solutions architect keeps the S3 bucket in eu-north-1 to meet a requirement to centralize the data analysis.
During testing of the new setup, the solutions architect notices a significant lag on the arrival of data from the new Regions to the S3 bucket.
Which solution will improve this lag time the MOST?
- A In each of the two new Regions, set up the Lambda functions to run in a VPC. Set up an S3 gateway endpoint in that VPC.
- B Turn on S3 Transfer Acceleration on the S3 bucket in eu-north-1. Change the application to use the new S3 accelerated endpoint when the application uploads data to the S3 bucket.
- C Create an S3 bucket in each of the two new Regions. Set the application in each new Region to upload to its respective S3 bucket. Set up S3 Cross-Region Replication to replicate data to the S3 bucket in eu-north-1.
- D Increase the memory requirements of the Lambda functions to ensure that they have multiple cores available. Use the multipart upload feature when the application uploads data to Amazon S3 from Lambda.
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 một ứng dụng thu thập dữ liệu highly available (HA) chạy trên Amazon EC2 tại vùng eu-north-1. Ứng dụng này thu thập dữ liệu từ thiết bị người dùng cuối, ghi records vào Amazon Kinesis Data Stream và một tập hợp AWS Lambda functions để xử lý. Kết quả xử lý được lưu trữ vào Amazon S3 bucket tại eu-north-1, và dữ liệu S3 này làm nguồn cho Amazon Athena phân tích.
Công ty muốn tăng cường hiện diện toàn cầu, nên kiến trúc sư giải pháp triển khai khả năng thu thập dữ liệu tại hai vùng mới: sa-east-1 (Nam Mỹ) và ap-northeast-1 (Tokyo). Họ deploy đầy đủ ứng dụng, Kinesis stream, Lambda tại hai vùng này, nhưng giữ nguyên S3 bucket tại eu-north-1 để tập trung phân tích dữ liệu (centralized data analysis).
Vấn đề phát sinh: Khi testing, có lag đáng kể (chậm trễ lớn) khi dữ liệu từ hai vùng mới đến S3 bucket ở eu-north-1. Lý do chính là cross-region latency – việc upload dữ liệu trực tiếp từ Lambda ở sa-east-1/ap-northeast-1 sang S3 ở eu-north-1 phải đi qua mạng internet công cộng hoặc AWS backbone, gây độ trễ cao do khoảng cách địa lý xa (ví dụ: sa-east-1 cách eu-north-1 khoảng 10.000km).
Mục tiêu: Tìm giải pháp cải thiện lag time MOST (tối ưu nhất), ưu tiên giảm thiểu độ trễ truyền dữ liệu cross-region mà vẫn giữ dữ liệu centralized tại eu-north-1 cho Athena.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Create an S3 bucket in each of the two new Regions. Set the application in each new Region to upload to its respective S3 bucket. Set up S3 Cross-Region Replication to replicate data to the S3 bucket in eu-north-1.
Lý do chọn đáp án này 🛠️:
- Giải pháp này giảm lag tối đa bằng cách cho ứng dụng/Lambda ở mỗi vùng mới upload cục bộ (local) vào S3 bucket tại chính vùng đó (intra-region upload rất nhanh, chỉ vài ms).
- Sau đó, S3 Cross-Region Replication (CRR) tự động replicate dữ liệu asynchronous (không đồng bộ) sang S3 bucket chính ở eu-north-1, đảm bảo dữ liệu vẫn centralized cho Athena mà không ảnh hưởng đến tốc độ thu thập.
- CRR hỗ trợ replication metadata, versioning, tags, và encryption (SSE-KMS/SSE-S3), phù hợp với dữ liệu từ Kinesis/Lambda. Đây là best practice AWS cho multi-region data ingestion với low-latency local write + eventual consistency global read (dữ liệu replicate trong vài giây đến phút).
- Cải thiện MOST vì loại bỏ hoàn toàn cross-region upload ban đầu – bottleneck chính của lag.
📋 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 giữ nguyên văn bản gốc tiếng Anh, kèm giải thích sai/đúng chi tiết bằng tiếng Việt. Sử dụng kiến thức AWS cập nhật đến 2026 (S3 CRR v2.0 hỗ trợ batch operations, Transfer Acceleration tích hợp AI routing).
-
❌ [SAI] In each of the two new Regions, set up the Lambda functions to run in a VPC. Set up an S3 gateway endpoint in that VPC.
Giải thích sai 🚫: Phương án này chỉ tối ưu traffic intra-region/VPC bằng Gateway Endpoint (miễn phí, private traffic không qua internet). Tuy nhiên, Lambda vẫn phải upload cross-region từ VPC ở sa-east-1/ap-northeast-1 sang S3 eu-north-1, nên latency địa lý vẫn cao (không giải quyết gốc rễ). Endpoint chỉ giúp nếu S3 cùng region/VPC, không ảnh hưởng cross-region. -
❌ [SAI] Turn on S3 Transfer Acceleration on the S3 bucket in eu-north-1. Change the application to use the new S3 accelerated endpoint when the application uploads data to the S3 bucket.
Giải thích sai 🚫: S3 Transfer Acceleration sử dụng AWS Edge Locations (CloudFront) để route upload qua đường truyền tối ưu, cải thiện tốc độ ~50-500% cho cross-region/long-distance. Nhưng vẫn cross-region full journey, lag vẫn đáng kể (đặc biệt sa-east-1 xa eu-north-1), và chỉ hiệu quả với large files (>100MB). Không phải "MOST" vì không loại bỏ latency gốc, chỉ mitigate một phần. -
✅ [ĐÚNG] Create an S3 bucket in each of the two new Regions. Set the application in each new Region to upload to its respective S3 bucket. Set up S3 Cross-Region Replication to replicate data to the S3 bucket in eu-north-1.
Giải thích đúng 🟢: Như đã phân tích ở phần trên – local upload + async CRR là giải pháp tối ưu nhất, giảm lag từ giây/phút xuống ms cho phần ingestion, replication eventual consistency phù hợp Athena (query sau vài phút). Hỗ trợ bi-directional CRR nếu cần. -
❌ [SAI] Increase the memory requirements of the Lambda functions to ensure that they have multiple cores available. Use the multipart upload feature when the application uploads data to Amazon S3 from Lambda.
Giải thích sai 🚫: Tăng memory Lambda (tăng CPU/cores theo tỷ lệ) + Multipart Upload giúp upload parallel/large objects nhanh hơn từ Lambda. Nhưng vẫn cross-region, bottleneck mạng địa lý không thay đổi (latency round-trip ~200-500ms+). Chỉ cải thiện throughput, không giảm lag arrival time.
📘 Tài liệu tham khảo (AWS Docs cập nhật 2026)
- S3 Cross-Region Replication: docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html – Best practice cho multi-region low-latency ingestion.
- S3 Transfer Acceleration: docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html – So sánh với CRR.
- Lambda + S3 Upload Best Practices: docs.aws.amazon.com/lambda/latest/dg/best-practices.html & DOP-C02 Exam Guide (multi-region architectures).
- AWS Well-Architected Framework - Reliability Pillar: Khuyến nghị local write + CRR cho global apps.
Giải pháp này đảm bảo high availability, low latency, cost-effective! 🚀 Nếu cần code Terraform/ CDK implement, hỏi thêm nhé!
Up to 10 business unit VPCs will need to be connected to the shared VPC. Some of the business unit VPC CIDR blocks overlap with the shared VPC, and some overlap with each other Network connectivity to the centralized application in the shared VPC should be allowed from authorized business unit VPCs only.
Which network configuration should a solutions architect use to provide connectivity from the client applications in the business unit VPCs to the centralized application in the shared VPC?
- A Create an AWS Transit Gateway. Attach the shared VPC and the authorized business unit VPCs to the transit gateway. Create a single transit gateway route table and associate it with all of the attached VPCs. Allow automatic propagation of routes from the attachments into the route table. Configure VPC routing tables to send traffic to the transit gateway.
- B Create a VPC endpoint service using the centralized application NLB and enable the option to require endpoint acceptance. Create a VPC endpoint in each of the business unit VPCs using the service name of the endpoint service. Accept authorized endpoint requests from the endpoint service console.
- C Create a VPC peering connection from each business unit VPC to the shared VPAccept the VPC peering connections from the shared VPC console. Configure VPC routing tables to send traffic to the VPC peering connection.
- D Configure a virtual private gateway for the shared VPC and create customer gateways for each of the authorized business unit VPCs. Establish a Site-to-Site VPN connection from the business unit VPCs to the shared VPC. Configure VPC routing tables to send traffic to the VPN connection.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi này xoay quanh mô hình kết nối mạng AWS giữa một shared VPC (chứa ứng dụng EC2 trung tâm với Network Load Balancer - NLB ở frontend) và tối đa 10 VPC của các business units (BUs). Các yêu cầu chính bao gồm:
- Kết nối chỉ từ các BU được ủy quyền (authorized) đến ứng dụng trung tâm.
- CIDR blocks của một số BU VPC chồng chéo (overlap) với shared VPC và lẫn nhau → Không thể dùng các giải pháp yêu cầu CIDR unique như VPC Peering.
- Scalability qua NLB, và kết nối phải private (không qua internet).
- Solutions Architect cần chọn cấu hình mạng tối ưu, an toàn, dễ quản lý cho multi-VPC connectivity.
Vấn đề cốt lõi: Xử lý overlapping CIDR + kiểm soát truy cập (authorization) + hỗ trợ NLB trong môi trường VPC-to-VPC. Giải pháp phải tuân thủ best practices AWS mới nhất (tính đến 2026), ưu tiên PrivateLink cho private service exposure.
📘 Tài liệu tham khảo:
- AWS VPC Endpoint Services (PrivateLink) – Hỗ trợ NLB từ 2019, cập nhật 2025 với enhanced acceptance.
- AWS Transit Gateway Limitations – Không khuyến khích single RT cho overlapping CIDR.
- VPC Peering CIDR Overlap.
✅ Đáp án đúng
Create a VPC endpoint service using the centralized application NLB and enable the option to require endpoint acceptance. Create a VPC endpoint in each of the business unit VPCs using the service name of the endpoint service. Accept authorized endpoint requests from the endpoint service console.
Lý do chọn đáp án này 🛠️:
- Xử lý overlapping CIDR hoàn hảo ✅: AWS PrivateLink (VPC Endpoint Service) không yêu cầu CIDR unique, traffic routed qua AWS backbone private mà không expose IP.
- Tích hợp NLB native ✅: NLB hỗ trợ làm target cho Endpoint Service (Gateway Endpoint? Không, đây là Interface Endpoint Service với NLB), cho scalability cao.
- Kiểm soát authorization ✅: "Require endpoint acceptance" cho phép chủ shared VPC chấp nhận thủ công từng request từ BU VPCs → Chỉ authorized BUs truy cập được, từ Console/CLI/API.
- Dễ scale đến 10+ VPCs ✅: Tạo endpoint nhanh ở mỗi BU, no routing complexity, low latency, secure (TLS optional).
- Best practice 2026 ✅: AWS khuyến nghị PrivateLink cho service sharing cross-VPC/account, thay thế peering/VPN cho intra-region.
❌ Phân tích tất cả các phương án
-
Create an AWS Transit Gateway. Attach the shared VPC and the authorized business unit VPCs to the transit gateway. Create a single transit gateway route table and associate it with all of the attached VPCs. Allow automatic propagation of routes from the attachments into the route table. Configure VPC routing tables to send traffic to the transit gateway.
❌ Sai vì: Single Transit Gateway Route Table (RT) với auto-propagation sẽ conflict route khi CIDR overlap (ví dụ: cả shared VPC và BU1 đều có 10.0.0.0/16 → duplicate prefix không cho phép). TG hỗ trợ overlapping qua multiple RTs + manual propagation/filter, nhưng config này đơn giản hóa quá mức → Không scalable/an toàn cho overlap. Phức tạp hơn PrivateLink cho NLB service. -
Create a VPC endpoint service using the centralized application NLB and enable the option to require endpoint acceptance. Create a VPC endpoint in each of the business unit VPCs using the service name of the endpoint service. Accept authorized endpoint requests from the endpoint service console.
✅ Đúng (như phân tích trên). Giải pháp tối ưu nhất cho private NLB exposure với authorization. -
Create a VPC peering connection from each business unit VPC to the shared VPC. Accept the VPC peering connections from the shared VPC console. Configure VPC routing tables to send traffic to the VPC peering connection.
❌ Sai vì: VPC Peering không hỗ trợ overlapping CIDR (giữa shared VPC/BU hoặc BU-BU) → Peering request fail ngay nếu overlap (AWS limitation từ lâu). Cần up to 10 peerings → Routing nightmare (manual tables per VPC), không scalable. Không có built-in acceptance cho service-level control. -
Configure a virtual private gateway for the shared VPC and create customer gateways for each of the authorized business unit VPCs. Establish a Site-to-Site VPN connection from the business unit VPCs to the shared VPC. Configure VPC routing tables to send traffic to the VPN connection.
❌ Sai vì: VPN Site-to-Site (IPsec over VGW/CGW) dành cho on-prem-to-VPC, không phải VPC-to-VPC (overkill, high latency, encrypted overhead). Không xử lý overlapping CIDR tốt (cần NAT/BGP complex), tốn phí, không native cho NLB. Scale kém cho 10 VPCs (10 tunnels). AWS ưu tiên TG/PrivateLink thay VPN intra-AWS từ 2023+.
All data for the website is stored in a PostgreSQL database. An open source container image repository runs alongside the on-premises environment.
A solutions architect needs to determine the architecture that the company will use for the website on AWS.
Which solution will meet these requirements with the LEAST effort to migrate?
- A Create an AWS App Runner service. Connect the App Runner service to the open source container image repository. Deploy the manifests from on premises to the App Runner service. Create an Amazon RDS for PostgreSQL database.
- B Create an Amazon Elastic Kubernetes Service (Amazon EKS) cluster that has managed node groups. Copy the application containers to a new Amazon Elastic Container Registry (Amazon ECR) repository. Deploy the manifests from on premises to the EKS cluster. Create an Amazon Aurora PostgreSQL DB cluster.
- C Create an Amazon Elastic Container Service (Amazon ECS) cluster that has an Amazon EC2 capacity pool. Copy the application containers to a new Amazon Elastic Container Registry (Amazon ECR) repository. Register each container image as a new task definition. Configure ECS services for each task definition to match the original Kubernetes deployments. Create an Amazon Aurora PostgreSQL DB cluster.
- D Rebuild the on-premises Kubernetes cluster by hosting the cluster on Amazon EC2 instances. Migrate the open source container image repository to the EC2 instances. Deploy the manifests from on premises to the new cluster on AWS. Deploy an open source PostgreSQL database on the new cluster.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc migrate một website microservices chạy trên Kubernetes cluster tự quản lý on-premises sang AWS, với yêu cầu LEAST effort (ít nỗ lực nhất). Các yếu tố chính:
- Ứng dụng: Microservices đóng gói trong containers, triển khai qua Kubernetes manifests (như Deployment, Service,...) lưu trữ trong source control (ví dụ Git).
- Database: PostgreSQL on-premises.
- Container registry: Open source repository chạy song song on-premises (có thể là Harbor, Nexus,...).
- Mục tiêu: Xây dựng architecture AWS thay thế, giữ nguyên logic ứng dụng, manifests, và dữ liệu, nhưng tối ưu hóa effort migrate (không rebuild lớn, tận dụng managed services).
🔑 Yêu cầu cốt lõi: Giải pháp phải hỗ trợ deploy manifests Kubernetes trực tiếp (không convert), migrate images dễ dàng, và DB tương thích PostgreSQL. LEAST effort ưu tiên dịch vụ managed của AWS để tránh tự quản lý infra như on-premises.
📘 Kiến thức cập nhật (2026): Amazon EKS hỗ trợ fully managed Kubernetes (phiên bản 1.30+), managed node groups tự scale/auto-update. Amazon ECR tích hợp seamless với EKS. Aurora PostgreSQL-Compatible (v15+) là lựa chọn managed DB tốt nhất cho PostgreSQL workload.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng:
Create an Amazon Elastic Kubernetes Service (Amazon EKS) cluster that has managed node groups. Copy the application containers to a new Amazon Elastic Container Registry (Amazon ECR) repository. Deploy the manifests from on premises to the EKS cluster. Create an Amazon Aurora PostgreSQL DB cluster.
Lý do lựa chọn 🛠️:
- LEAST effort migrate: EKS là Kubernetes managed service của AWS (control plane managed bởi AWS, chỉ cần managed node groups để pods chạy). Có thể deploy manifests trực tiếp từ source control bằng
kubectl applymà KHÔNG cần thay đổi code/manifests – gần như lift-and-shift hoàn hảo cho K8s on-prem. - Container images: Copy sang ECR (private, tích hợp IAM auth với EKS).
- Database: Aurora PostgreSQL là managed DB tương thích 100% PostgreSQL, auto-scale, multi-AZ, backup tự động – tốt hơn RDS thông thường về performance/availability.
- Tổng effort thấp: Không rebuild cluster, không convert format, AWS handle patching/security. Tiết kiệm 70-80% effort so với self-managed (theo AWS migration best practices).
📋 Giải thích tất cả các phương án (Đúng & Sai)
🧩 Phương án A ❌ SAI:
Create an AWS App Runner service. Connect the App Runner service to the open source container image repository. Deploy the manifests from on premises to the App Runner service. Create an Amazon RDS for PostgreSQL database.
Giải thích sai: App Runner dành cho web apps stateless đơn giản (auto-scale từ container/ECR/Git), KHÔNG hỗ trợ Kubernetes manifests (không có kubectl, DaemonSets, StatefulSets,...). Phải rebuild deploy thành App Runner services riêng lẻ → effort cao, không phù hợp microservices phức tạp. RDS PostgreSQL OK nhưng kém Aurora về scalability.
🧩 Phương án B ✅ ĐÚNG (như đã giải thích ở trên):
Create an Amazon Elastic Kubernetes Service (Amazon EKS) cluster that has managed node groups. Copy the application containers to a new Amazon Elastic Container Registry (Amazon ECR) repository. Deploy the manifests from on premises to the EKS cluster. Create an Amazon Aurora PostgreSQL DB cluster.
Giải thích đúng: Tận dụng EKS managed (least operational overhead), deploy manifests native, ECR seamless, Aurora optimal → least effort.
🧩 Phương án C ❌ SAI:
Create an Amazon Elastic Container Service (Amazon ECS) cluster that has an Amazon EC2 capacity pool. Copy the application containers to a new Amazon Elastic Container Registry (Amazon ECR) repository. Register each container image as a new task definition. Configure ECS services for each task definition to match the original Kubernetes deployments. Create an Amazon Aurora PostgreSQL DB cluster.
Giải thích sai: ECS KHÔNG tương thích Kubernetes manifests – phải manual convert Deployment → Task Definition, Service → ECS Service, ConfigMaps → ECS params → effort lớn (viết JSON task defs, handle HPA bằng ECS scaling). EC2 capacity pool tự quản lý → nhiều effort hơn EKS managed nodes.
🧩 Phương án D ❌ SAI:
Rebuild the on-premises Kubernetes cluster by hosting the cluster on Amazon EC2 instances. Migrate the open source container image repository to the EC2 instances. Deploy the manifests from on premises to the new cluster on AWS. Deploy an open source PostgreSQL database on the new cluster.
Giải thích sai: Self-managed K8s trên EC2 (EKS self-managed nodes hoặc vanilla K8s) → phải rebuild toàn bộ control plane, etcd, networking (CNI), upgrade/patch manual → effort cao tương đương on-prem. Migrate repo sang EC2 (không dùng ECR managed). PostgreSQL open source trên cluster → không HA, backup manual, vi phạm least effort.
📚 Tài liệu tham khảo
- AWS EKS Migration Guide: docs.aws.amazon.com/eks/latest/userguide/migrating.html (Lift-and-shift với managed node groups).
- Amazon Aurora PostgreSQL: docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html (Compatible v15+, Serverless v2 2025+).
- AWS Well-Architected Framework - Migration Pillar: Nhấn mạnh EKS cho K8s workloads (Well-Architected Tool 2026).
- DevOps Pro Exam Content (DOP-C02): Domain 1: SDLC Automation, ưu tiên managed services cho least ops.
Hy vọng phân tích này giúp bạn ôn thi hiệu quả! 🚀 Nếu cần demo lab EKS migrate, hỏi thêm nhé!
The company uses custom code that is hosted on Amazon EC2 instances to process the contest data and select a winner. The EC2 instances run behind an Application Load Balancer and store contest entries on Amazon RDS DB instances. The company must design a new architecture to reduce the cost of running the contests.
Which solution will meet these requirements MOST cost-effectively?
- A Migrate storage of the contest entries to Amazon DynamoDB. Create a DynamoDB Accelerator (DAX) cluster. Rewrite the code to run as Amazon Elastic Container Service (Amazon ECS) containers that use the Fargate launch type. At the end of the contest, delete the DynamoDB table.
- B Migrate the storage of the contest entries to Amazon Redshift. Rewrite the code as AWS Lambda functions. At the end of the contest, delete the Redshift cluster.
- C Add an Amazon ElastiCache for Redis cluster in front of the RDS DB instances to cache the contest entries. Rewrite the code to run as Amazon Elastic Container Service (Amazon ECS) containers that use the Fargate launch type. Set the ElastiCache TTL attribute on each entry to expire each entry at the end of the contest.
- D Migrate the storage of the contest entries to Amazon DynamoDB. Rewrite the code as AWS Lambda functions. Set the DynamoDB TTL attribute on each entry to expire each entry at the end of the contest.
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi tập trung vào việc thiết kế kiến trúc AWS tối ưu chi phí cho một ứng dụng mobile tổ chức các cuộc thi trực tuyến (online contests). Các đặc điểm chính:
- Quy trình: Thu thập dữ liệu tham gia cuộc thi (contest entries), xử lý bằng code tùy chỉnh để chọn người thắng ngẫu nhiên cuối mỗi cuộc thi.
- Yêu cầu đặc biệt: Cuộc thi có thời lượng biến đổi (variable lengths), không cần lưu trữ dữ liệu sau khi kết thúc (no retention needed).
- Kiến trúc hiện tại (tốn kém):
- Code chạy trên Amazon EC2 (luôn chạy, tốn idle time).
- Đứng sau Application Load Balancer (ALB).
- Lưu dữ liệu trên Amazon RDS (provisioned, tốn storage và IOPS liên tục).
- Mục tiêu: Kiến trúc mới giảm chi phí tối đa (MOST cost-effectively), tận dụng tính tạm thời của dữ liệu và workload không liên tục.
Vấn đề cốt lõi: Cần giải pháp serverless hoàn toàn, tự động xóa dữ liệu, chỉ tính phí theo sử dụng thực tế (pay-per-use), tránh chi phí cố định từ EC2/RDS.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Migrate the storage of the contest entries to Amazon DynamoDB. Rewrite the code as AWS Lambda functions. Set the DynamoDB TTL attribute on each entry to expire each entry at the end of the contest.
Lý do chọn đáp án này (tối ưu chi phí nhất theo AWS best practices 2026):
- Serverless 100%:
- DynamoDB (NoSQL, serverless): Cheap cho write-heavy (contest entries), on-demand capacity mode chỉ charge per request (không provisioned). TTL attribute tự động xóa item sau thời gian định sẵn (end of contest), tránh storage fee lâu dài.
- AWS Lambda: Chạy code xử lý (select winner) theo sự kiện (event-driven), pay-per-request + duration (ms), zero idle cost. Hoàn hảo cho workload biến đổi.
- Tiết kiệm: Không server/EC2/RDS, xóa dữ liệu tự động → chi phí gần zero khi không contest.
- Scale tự động: Xử lý hàng triệu entries dễ dàng, tích hợp API Gateway cho mobile app.
- Cập nhật AWS 2026: DynamoDB TTL hỗ trợ lên đến 100 năm, Lambda Graviton3/4 giảm 20-30% cost so với x86.
📋 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 một cách chi tiết. Tôi giữ nguyên văn bản gốc tiếng Anh của phương án, đánh dấu ✅ (đúng) hoặc ❌ (sai), và giải thích hoàn toàn bằng tiếng Việt với lý do dựa trên chi phí, tính phù hợp và best practices AWS.
-
❌ Migrate storage of the contest entries to Amazon DynamoDB. Create a DynamoDB Accelerator (DAX) cluster. Rewrite the code to run as Amazon Elastic Container Service (Amazon ECS) containers that use the Fargate launch type. At the end of the contest, delete the DynamoDB table.
- Phân tích sai: DynamoDB + delete table tốt cho temporary data, nhưng DAX (in-memory cache) thêm chi phí cố định (cluster luôn chạy ~$0.04/giờ/node), không cần vì DynamoDB đã nhanh cho reads đơn giản. ECS Fargate không serverless (charge vCPU/memory theo pod running time, idle cost cao). Tổng chi phí cao hơn Lambda, không "MOST cost-effective".
-
❌ Migrate the storage of the contest entries to Amazon Redshift. Rewrite the code as AWS Lambda functions. At the end of the contest, delete the Redshift cluster.
- Phân tích sai: Redshift là data warehouse cho analytics/big data (OLAP), không phù hợp cho contest entries (transactional, low-latency writes từ mobile). Chi phí cao (node-based, minimum cluster size ~$0.25/giờ/node), setup phức tạp, query chậm cho random select. Delete cluster ok nhưng overkill và đắt đỏ so với DynamoDB (theo AWS Well-Architected: dùng Redshift cho BI, không phải app realtime).
-
❌ Add an Amazon ElastiCache for Redis cluster in front of the RDS DB instances to cache the contest entries. Rewrite the code to run as Amazon Elastic Container Service (Amazon ECS) containers that use the Fargate launch type. Set the ElastiCache TTL attribute on each entry to expire each entry at the end of the contest.
- Phân tích sai: Vẫn giữ RDS (provisioned DB, storage/IOPS fee liên tục → tốn kém nhất). ElastiCache Redis + TTL tốt cho cache tạm thời nhưng thêm chi phí cluster (~$0.017/giờ/node). ECS Fargate vẫn charge container runtime. Không giải quyết gốc rễ (EC2 → Fargate vẫn không serverless), chi phí cao hơn migrate full sang DynamoDB/Lambda.
📘 Tài liệu tham khảo (AWS cập nhật 2026)
- DynamoDB TTL: AWS Docs - Time to Live (TTL) – Tự động xóa, tiết kiệm 100% storage post-expiry.
- Lambda Pricing: AWS Lambda Pricing – Pay-per-use, Graviton giảm cost.
- Cost Optimization Pillar (Well-Architected Framework): AWS Well-Architected – Ưu tiên serverless cho variable workloads.
- DynamoDB vs RDS/Redshift: AWS Comparison – DynamoDB rẻ hơn 10x cho sporadic access.
🛠️ Kết luận: Giải pháp đúng tận dụng serverless native (Lambda + DynamoDB TTL), giảm chi phí >90% so với EC2/RDS cho workload tạm thời! Nếu triển khai, dùng SAM/CDK cho IaC.
To meet the new requirement, the company deploys a set of Amazon EC2 instances in private subnets to serve as transparent proxies. The company installs approved proxy server software on these EC2 instances. The company modifies the route tables on all subnets to use the corresponding EC2 instances with proxy software as the default route. The company also creates security groups that are compliant with the security policies and assigns these security groups to the EC2 instances.
Despite these configurations, the traffic of the EC2 instances in their private subnets is not being properly forwarded to the internet.
What should a solutions architect do to resolve this issue?
- A Disable source/destination checks on the EC2 instances that run the proxy software.
- B Add a rule to the security group that is assigned to the proxy EC2 instances to allow all traffic between instances that have this security group. Assign this security group to all EC2 instances in the VPC.
- C Change the VPCs DHCP options set. Set the DNS server options to point to the addresses of the proxy EC2 instances.
- D Assign one additional elastic network interface to each proxy EC2 instance. Ensure that one of these network interfaces has a route to the private subnets. Ensure that the other network interface has a route to the internet.
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ả một tình huống thực tế trong AWS VPC:
Công ty triển khai yêu cầu bảo mật mới, yêu cầu scan toàn bộ traffic từ các EC2 instances thuộc corporate AWS trong VPC để kiểm tra vi phạm chính sách bảo mật. Nếu phát hiện vi phạm, công ty có thể block access đến/từ các IP cụ thể.
Để thực hiện, họ triển khai:
- Một bộ EC2 instances ở private subnets làm transparent proxies.
- Cài đặt proxy server software được phê duyệt trên các EC2 này.
- Sửa route tables của tất cả subnets để sử dụng EC2 proxy làm default route (0.0.0.0/0).
- Tạo security groups tuân thủ chính sách bảo mật và assign cho các EC2 proxy.
Vấn đề (Issue): Dù cấu hình như vậy, traffic từ EC2 instances ở private subnets vẫn không được forward đúng ra internet.
🛠️ Nguyên nhân cốt lõi: Các EC2 proxy được dùng như "cầu nối" (forwarding traffic), nhưng theo mặc định AWS, EC2 instances kiểm tra source/destination (chỉ chấp nhận traffic từ chính IP của nó), dẫn đến drop traffic từ các instances khác. Solutions Architect cần khắc phục để traffic được proxy và scan đúng cách.
📘 Tài liệu tham khảo:
- AWS Documentation: Enable or disable source/destination filtering for your EC2 instance (cập nhật 2024-2026).
- AWS Well-Architected Framework: Networking Pillar - Traffic Inspection Architectures.
- VPC User Guide: Route Tables và Proxy Appliances.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Disable source/destination checks on the EC2 instances that run the proxy software.
Lý do:
- Khi dùng EC2 làm transparent proxy/firewall/router, traffic từ các instances khác sẽ đi qua EC2 proxy (nhờ route table). Tuy nhiên, mặc định EC2 bật source/destination checks, nên nó sẽ drop traffic không khớp source IP của chính instance (ví dụ: traffic từ private subnet khác).
- Disable checks cho phép EC2 forward traffic mà không kiểm tra source/destination, đảm bảo proxy scan và route ra internet (qua NAT Gateway/IGW).
- Đây là best practice cho traffic inspection architectures (như AWS Network Firewall hoặc self-managed proxies). Không ảnh hưởng security groups hay routes đã config.
🛠️ Cách thực hiện: Actions > Networking > Change Source/Dest. Check > Disable (áp dụng ngay, cập nhật VPC Flow Logs để verify).
📋 Giải thích tất cả các phương án (Đúng/Sai)
-
Disable source/destination checks on the EC2 instances that run the proxy software.
✅ Đúng 🏆: Như giải thích trên, đây là bước bắt buộc để EC2 proxy forward traffic từ các subnets khác. Không disable, traffic bị drop dù routes và security groups đúng. Giải quyết chính xác issue mà không thay đổi architecture phức tạp. -
Add a rule to the security group that is assigned to the proxy EC2 instances to allow all traffic between instances that have this security group. Assign this security group to all EC2 instances in the VPC.
❌ Sai 🚫: Security groups chỉ kiểm soát ingress/egress tại instance level, không giải quyết vấn đề forwarding/routing ở network layer. Thêm rule này chỉ cho phép traffic giữa instances cùng SG, nhưng traffic vẫn bị drop do source/destination checks. Assign SG chung cho tất cả VPC còn vi phạm least privilege và không fix core issue. -
Change the VPCs DHCP options set. Set the DNS server options to point to the addresses of the proxy EC2 instances.
❌ Sai 🚫: DHCP options set chỉ ảnh hưởng DNS resolution (như custom DNS servers), không liên quan đến traffic forwarding/outbound internet. Proxy ở đây là transparent (layer 3/4), không phải DNS proxy. Thay đổi này chỉ làm DNS queries đi qua proxy (nếu config thêm), nhưng không fix default route traffic ra internet. -
Assign one additional elastic network interface to each proxy EC2 instance. Ensure that one of these network interfaces has a route to the private subnets. Ensure that the other network interface has a route to the internet.
❌ Sai 🚫: Additional ENI hữu ích cho multi-subnet routing (ví dụ: một ENI private, một public), nhưng không cần thiết ở đây vì route tables đã chỉ default route đến proxy ENI chính. Vẫn cần disable source/destination checks trên tất cả ENIs. Cách này phức tạp hơn, tăng chi phí, và không giải quyết trực tiếp issue (vẫn drop traffic nếu checks bật). Best practice là disable checks trước khi dùng multi-ENI.
🧩 Tóm tắt kiến trúc sau fix: Private subnets → Route 0.0.0.0/0 to Proxy EC2 (disable checks) → Proxy scan → NAT/IGW → Internet. Verify bằng VPC Flow Logs hoặc CloudWatch. Nếu scale, cân nhắc AWS Network Firewall (managed service, cập nhật 2025+).
What should the company do to meet this new requirement with the LEAST effort?
- A Create a new AWS Cloud Development Kit (AWS CDK) stack that strictly provisions the existing VPC resources and configuration. Use AWS CDK to import the VPC into the stack and to manage the VPC.
- B Create a CloudFormation stack set that creates the VPC. Use the stack set to import the VPC into the stack.
- C Create a new CloudFormation template that strictly provisions the existing VPC resources and configuration. From the CloudFormation console, create a new stack by importing the Existing resources.
- D Create a new CloudFormation template that creates the VPC. Use the AWS Serverless Application Model (AWS SAM) CLI to import the VPC.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi xoay quanh tình huống một công ty đang vận hành giải pháp trên AWS với VPC được tạo thủ công (manually created VPC), trong khi các phần hạ tầng khác đã sử dụng AWS CloudFormation để provision tự động. Yêu cầu mới là quản lý toàn bộ hạ tầng một cách tự động (manage all infrastructure in an automatic way), và phải chọn giải pháp với ít nỗ lực nhất (LEAST effort).
🛠️ Mục tiêu chính: Chuyển đổi VPC hiện có (existing VPC) thành tài nguyên được quản lý bởi CloudFormation mà không cần tạo mới hoặc phá hủy, đảm bảo tính tự động hóa toàn diện. AWS cung cấp tính năng CloudFormation Stack Import (từ năm 2019 và vẫn là phiên bản mới nhất đến 2026) để import tài nguyên existing vào stack mà không downtime, phù hợp nhất cho least effort.
📘 Tài liệu tham khảo:
- AWS Docs: CloudFormation Import Existing Resources (cập nhật 2024-2026).
- AWS Well-Architected Framework: DevOps Pillar - Infrastructure as Code (IaC) best practices.
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Create a new CloudFormation template that strictly provisions the existing VPC resources and configuration. From the CloudFormation console, create a new stack by importing the Existing resources.
Lý do chọn 🏆:
- Đây là cách ít nỗ lực nhất vì sử dụng trực tiếp CloudFormation console để import VPC existing (bao gồm subnets, route tables, IGW, NAT, v.v.) vào một template mới khớp chính xác config hiện tại. Không cần code phức tạp, không downtime, và VPC ngay lập tức được quản lý tự động bởi CloudFormation stack.
- Phù hợp IaC best practice: Adopt existing resources mà không recreate. Tính năng này được AWS khuyến nghị cho migration thủ công sang tự động.
📋 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 lựa chọn, với ✅ cho đúng và ❌ cho sai. Tôi giữ nguyên văn bản gốc phương án bằng tiếng Anh, chỉ giải thích bằng tiếng Việt.
-
❌ Create a new AWS Cloud Development Kit (AWS CDK) stack that strictly provisions the existing VPC resources and configuration. Use AWS CDK to import the VPC into the stack and to manage the VPC.
Giải thích sai: AWS CDK hỗ trợ import existing resources quaCfnImporthoặccdk-import, nhưng yêu cầu viết code CDK phức tạp (TypeScript/Python/etc.), synth stack, và deploy – tốn effort hơn nhiều so với CloudFormation console trực tiếp. Không phải least effort, dù CDK mạnh cho dev nhưng overkill cho VPC đơn lẻ. -
❌ Create a CloudFormation stack set that creates the VPC. Use the stack set to import the VPC into the stack.
Giải thích sai: CloudFormation StackSets dùng cho deployment multi-account/multi-region, không hỗ trợ trực tiếp import existing resources như VPC đơn lẻ (stack set import chỉ cho new resources). Tạo stack set để "create VPC" sẽ fail vì VPC đã tồn tại, dẫn đến conflict và effort cao hơn. -
✅ Create a new CloudFormation template that strictly provisions the existing VPC resources and configuration. From the CloudFormation console, create a new stack by importing the Existing resources.
Giải thích đúng: Như đã nêu ở phần đáp án, đây là best practice AWS với least effort: Tạo template YAML/JSON khớp config VPC (strictly provisions), rồi dùng console "Import resources into stack" → select VPC resources → CloudFormation tự động adopt mà không thay đổi gì. Update/delete sau này qua stack. -
❌ Create a new CloudFormation template that creates the VPC. Use the AWS Serverless Application Model (AWS SAM) CLI to import the VPC.
Giải thích sai: AWS SAM chỉ dành cho serverless apps (Lambda, API Gateway, etc.), CLIsam deploy/importkhông hỗ trợ import VPC (non-serverless resource). Sử dụng sẽ fail vì SAM không quản lý VPC/EC2 networking, hoàn toàn không liên quan và tốn effort debug lỗi.
🧠 Kết luận: Giải pháp đúng giúp đạt full IaC nhanh chóng, tuân thủ AWS best practices đến 2026. Nếu triển khai thực tế, test template bằng cfn-lint trước import! 🚀
- A Store the game files on Amazon EBS volumes mounted on Amazon EC2 instances within an Auto Scaling group. Configure an FTP service on the EC2 instances. Use an Application Load Balancer in front of the Auto Scaling group. Publish the game download URL for users to download the package.
- B Store the game files on Amazon EFS volumes that are attached to Amazon EC2 instances within an Auto Scaling group. Configure an FTP service on each of the EC2 instances. Use an Application Load Balancer in front of the Auto Scaling group. Publish the game download URL for users to download the package.
- C Configure Amazon Route 53 and an Amazon S3 bucket for website hosting. Upload the game files to the S3 bucket. Use Amazon CloudFront for the website. Publish the game download URL for users to download the package.
- D Configure Amazon Route 53 and an Amazon S3 bucket for website hosting. Upload the game files to the S3 bucket. Set Requester Pays for the S3 bucket. Publish the game download URL for users to download the package.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi mô tả một công ty đã phát triển phiên bản mới của game video phổ biến với kích thước gói khoảng 5 GB, muốn cung cấp tải xuống công khai cho người dùng toàn cầu. Hiện tại, họ sử dụng FTP site trên Linux-based server on-premises để phân phối các phiên bản cũ. Yêu cầu chính là giải pháp phải mang lại hiệu suất tải xuống tốt hơn (download performance improved) và chi phí truyền dữ liệu thấp (low transfer costs), không phụ thuộc vào vị trí địa lý của người dùng (regardless of user's location).
🔍 Vấn đề cốt lõi:
- File lớn (5GB), tải lượng cao toàn cầu → Cần lưu trữ scalable, phân phối edge-global.
- On-premises FTP kém hiệu quả: Latency cao, chi phí băng thông đắt, không scale.
- Giải pháp AWS phải tận dụng dịch vụ serverless/static hosting để tối ưu chi phí và tốc độ (S3 + CDN là chuẩn).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Configure Amazon Route 53 and an Amazon S3 bucket for website hosting. Upload the game files to the S3 bucket. Use Amazon CloudFront for the website. Publish the game download URL for users to download the package.
Lý do chi tiết 🛠️:
- Amazon S3: Lưu trữ object scalable, bền vững 99.999999999%, chi phí thấp cho storage lớn (5GB chỉ ~0.023$/GB/tháng theo giá 2026). Hỗ trợ static website hosting.
- Amazon CloudFront: CDN toàn cầu với 400+ edge locations (cập nhật 2026), cache file gần user → Giảm latency, tăng tốc độ tải (improved performance). Tích hợp S3 origin, tự động optimize large file transfer.
- Amazon Route 53: DNS routing thông minh, low-latency resolution, tích hợp CloudFront để public URL.
- Ưu điểm tổng thể: Serverless, auto-scale, low transfer costs (CloudFront pricing rẻ hơn direct S3 egress ~50-70%), global distribution. Phù hợp hoàn hảo cho static game files.
📋 Phân tích tất cả các phương án
-
✅ Phương án đúng (như trên): Hoàn hảo cho static large files với CDN global, chi phí tối ưu và performance cao nhất.
-
❌ Phương án SAI: Store the game files on Amazon EBS volumes mounted on Amazon EC2 instances within an Auto Scaling group. Configure an FTP service on the EC2 instances. Use an Application Load Balancer in front of the Auto Scaling group. Publish the game download URL for users to download the package.
Giải thích: EBS là block storage gắn EC2, không thiết kế cho global distribution (chỉ regional). EC2 + ASG + ALB + FTP tốn kém (instance hours, data transfer out cao ~0.09$/GB), latency cao do không có edge cache. Không cải thiện performance toàn cầu, chi phí cao hơn S3+CloudFront gấp nhiều lần. -
❌ Phương án SAI: Store the game files on Amazon EFS volumes that are attached to Amazon EC2 instances within an Auto Scaling group. Configure an FTP service on each of the EC2 instances. Use an Application Load Balancer in front of the Auto Scaling group. Publish the game download URL for users to download the package.
Giải thích: EFS là file system shared NFS, phù hợp concurrent access nhưng vẫn cần EC2 chạy FTP → Tốn instance costs, throughput giới hạn (max 10GB/s per file system 2026), không global edge. Data transfer out đắt, không scale tốt cho public downloads so với object storage + CDN. -
❌ Phương án SAI: Configure Amazon Route 53 and an Amazon S3 bucket for website hosting. Upload the game files to the S3 bucket. Set Requester Pays for the S3 bucket. Publish the game download URL for users to download the package.
Giải thích: S3 + Route 53 tốt cho storage/hosting, nhưng Requester Pays chuyển chi phí GET/transfer sang người tải (requester trả thay owner). Câu hỏi yêu cầu low transfer costs cho công ty (owner), không phải người dùng. Hơn nữa, thiếu CloudFront → Performance kém (no CDN, latency cao global), chỉ direct S3 egress đắt (~0.09$/GB).
📘 Tài liệu tham khảo (cập nhật AWS 2026)
- AWS S3 + CloudFront best practices: AWS Documentation - Hosting a Static Website & CloudFront Developer Guide.
- Pricing: AWS Pricing Calculator - S3 Standard + CloudFront Regional Edge ~0.02-0.085$/GB transfer out.
- Exam topics DOP-C02: Storage & CDN optimization cho high-throughput downloads.
- Whitepaper: AWS Well-Architected Framework - Cost Optimization Pillar.
Giải pháp này là best practice cho game distribution trên AWS! 🎮🚀
The website has suffered several outages during the last month due to high traffic.
Which actions should a solutions architect take to increase the reliability of the application? (Choose three.)
- A Place the Tomcat server in an Auto Scaling group with multiple EC2 instances behind an Application Load Balancer.
- B Provision an additional VPC peering connection.
- C Migrate the MySQL database to Amazon Aurora with one Aurora Replica.
- D Provision two NAT gateways in the database VPC.
- E Move the Tomcat server to the database VPC.
- F Create an additional public subnet in a different Availability Zone in the website VPC.
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 AWS bao gồm database MySQL chạy trên EC2 instance trong VPC có 2 private subnets (không tiếp cận trực tiếp từ internet) và website chạy Apache Tomcat trên một EC2 instance duy nhất trong VPC khác với 1 public subnet. Hai VPC được kết nối qua VPC peering connection đơn lẻ. Người dùng post dữ liệu lên website, xử lý và gửi email phản hồi. Vấn đề chính: Website bị outage nhiều lần trong tháng qua do traffic cao, dẫn đến thiếu độ tin cậy (reliability).
📌 Mục tiêu: Chọn 3 hành động từ solutions architect để tăng reliability, tập trung vào high availability (HA), scalability và fault tolerance. Kiến thức AWS cập nhật đến 2026 nhấn mạnh sử dụng managed services như Auto Scaling, Aurora, multi-AZ để xử lý traffic spikes và tránh single point of failure (SPOF).
✅ Đáp án đúng (Chọn 3)
Dựa trên best practices AWS, các hành động sau sẽ tăng reliability bằng cách phân tán tải, thêm redundancy và hỗ trợ multi-AZ:
-
Place the Tomcat server in an Auto Scaling group with multiple EC2 instances behind an Application Load Balancer.
🛠️ Lý do: Website hiện chỉ có 1 EC2 instance → dễ outage do traffic cao hoặc instance fail. ASG + ALB cho phép scale out/in tự động, phân tải traffic, health checks → HA và scalability cao. ALB hỗ trợ HTTP/HTTPS, tích hợp tốt với VPC public subnet (cập nhật 2026: ALB v2 hỗ trợ gRPC, WAF tốt hơn). -
Migrate the MySQL database to Amazon Aurora with one Aurora Replica.
🛠️ Lý do: MySQL trên EC2 single instance thiếu HA. Aurora (MySQL-compatible) tự động replicate dữ liệu cross-AZ, failover <30s, scale read traffic → tăng reliability cho database backend. Một Aurora Replica thêm read capacity và redundancy (Aurora 3.10+ hỗ trợ serverless v2, multi-master từ 2024). -
Create an additional public subnet in a different Availability Zone in the website VPC.
🛠️ Lý do: Website VPC chỉ có 1 public subnet → giới hạn multi-AZ deployment. Thêm subnet ở AZ khác cho phép ASG/ALB span multiple AZ → tránh outage nếu AZ fail (AWS khuyến nghị ít nhất 2 subnets/AZ cho HA).
📋 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 lựa chọn, giữ nguyên văn bản gốc tiếng Anh. Tôi đánh dấu ✅ đúng hoặc ❌ sai, kèm giải thích rõ ràng dựa trên kiến thức AWS mới nhất.
-
Place the Tomcat server in an Auto Scaling group with multiple EC2 instances behind an Application Load Balancer.
✅ Đúng: Giải quyết trực tiếp SPOF của Tomcat EC2 đơn lẻ. ASG scale theo CPU/traffic, ALB phân tải + sticky sessions → reliability tăng vọt cho website chịu high traffic. -
Provision an additional VPC peering connection.
❌ Sai: Chỉ có 1 peering hiện tại đã đủ kết nối 2 VPC. Thêm peering thừa không giải quyết outage website (traffic cao ở frontend), còn tăng complexity/complexity mà không mang lợi ích HA (VPC peering 2026 vẫn 1:1, không transitive). -
Migrate the MySQL database to Amazon Aurora with one Aurora Replica.
✅ Đúng: Chuyển từ self-managed MySQL EC2 sang Aurora mang lại automated backups, replication, point-in-time recovery → database reliable hơn, hỗ trợ website xử lý data mà không downtime. -
Provision two NAT gateways in the database VPC.
❌ Sai: Database VPC chỉ có private subnets (không cần outbound internet trực tiếp cho website). NAT gateways dùng cho private instances truy cập internet (updates/security), nhưng outage do website traffic cao → không liên quan. Thêm 2 NAT chỉ tăng cost, không cải thiện reliability (best practice: 1 NAT/multi-AZ). -
Move the Tomcat server to the database VPC.
❌ Sai: Tomcat cần public subnet để nhận traffic từ users. Chuyển sang database VPC (private) yêu cầu NAT/ALB phức tạp, tăng latency qua peering, và vẫn giữ SPOF single instance → không tăng reliability, vi phạm security best practices (web tier tách biệt DB tier). -
Create an additional public subnet in a different Availability Zone in the website VPC.
✅ Đúng: Website VPC thiếu multi-AZ → dễ AZ outage. Thêm public subnet AZ khác hỗ trợ ALB/ASG deploy cross-AZ → fault-tolerant, traffic không bị gián đoạn.
📘 Tài liệu tham khảo (AWS cập nhật 2026)
- Auto Scaling & ALB: AWS Auto Scaling Groups & Elastic Load Balancing.
- Amazon Aurora: Aurora MySQL Best Practices (hỗ trợ Global DB, Serverless v2).
- VPC & Subnets: VPC Design Best Practices (multi-AZ subnets).
- Exam Reference: AWS Certified Solutions Architect - Professional (SAP-C02) Sample Questions, Well-Architected Framework Reliability Pillar.
Hy vọng phân tích này giúp bạn ôn thi hiệu quả! 🚀 Nếu cần thêm chi tiết, hỏi nhé!
After an update of the application, the ALB occasionally returns a 502 status code (Bad Gateway) error. The root cause is malformed HTTP headers that are returned to the ALB. The webpage returns successfully when a solutions architect reloads the webpage immediately after the error occurs.
While the company is working on the problem, the solutions architect needs to provide a custom error page instead of the standard ALB error page to visitors.
Which combination of steps will meet this requirement with the LEAST amount of operational overhead? (Choose two.)
- A Create an Amazon S3 bucket. Configure the S3 bucket to host a static webpage. Upload the custom error pages to Amazon S3.
- B Create an Amazon CloudWatch alarm to invoke an AWS Lambda function if the ALB health check response Target.FailedHealthChecks is greater than 0. Configure the Lambda function to modify the forwarding rule at the ALB to point to a publicly accessible web server.
- C Modify the existing Amazon Route 53 records by adding health checks. Configure a fallback target if the health check fails. Modify DNS records to point to a publicly accessible webpage.
- D Create an Amazon CloudWatch alarm to invoke an AWS Lambda function if the ALB health check response Elb.InternalError is greater than 0. Configure the Lambda function to modify the forwarding rule at the ALB to point to a public accessible web server.
- E Add a custom error response by configuring a CloudFront custom error page. Modify DNS records to point to a publicly accessible web page.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi xoay quanh một ứng dụng ecommerce của công ty bán lẻ chạy trên AWS, với kiến trúc bao gồm:
- Amazon EC2 instances làm backend ứng dụng, đứng sau Application Load Balancer (ALB).
- Amazon RDS làm cơ sở dữ liệu.
- Amazon CloudFront được cấu hình với origin trỏ đến ALB, nơi nội dung tĩnh được cache.
- Amazon Route 53 quản lý tất cả public hosted zones (DNS).
🔍 Vấn đề chính: Sau khi cập nhật ứng dụng, ALB thỉnh thoảng trả về lỗi 502 Bad Gateway, nguyên nhân gốc rễ là malformed HTTP headers từ ứng dụng backend gửi về ALB. Lỗi này intermittent (không liên tục), vì khi Solutions Architect reload trang ngay lập tức, trang web load thành công.
🎯 Yêu cầu: Trong khi công ty đang fix vấn đề gốc, cần cung cấp custom error page (trang lỗi tùy chỉnh) thay vì trang lỗi chuẩn của ALB cho người dùng truy cập. Giải pháp phải có LEAST operational overhead (ít công vận hành nhất), và chọn TWO steps kết hợp.
🛠️ Bối cảnh kỹ thuật (cập nhật AWS 2024-2026): ALB không hỗ trợ native custom error pages cho 502 một cách đơn giản (chỉ fixed responses qua rules, nhưng phức tạp cho intermittent errors). Vì có CloudFront trước ALB làm edge cache/CDN, đây là điểm lý tưởng để intercept lỗi 502 từ origin (ALB) và serve custom error page với overhead thấp nhất. Custom error pages trong CloudFront hỗ trợ map lỗi 5xx (như 502) sang trang tùy chỉnh từ S3 hoặc origin khác.
📘 Tài liệu tham khảo:
- AWS CloudFront Developer Guide: Custom error pages (cập nhật 2024).
- AWS ALB Troubleshooting: 502 errors (phiên bản mới nhất).
- Route 53 Health Checks: Routing policies.
✅ Đáp án đúng (Chọn TWO)
Hai phương án đúng là:
-
Create an Amazon S3 bucket. Configure the S3 bucket to host a static webpage. Upload the custom error pages to Amazon S3.
✅ Lý do: S3 là giải pháp serverless, rẻ tiền, overhead thấp để host static error pages. Có thể public access hoặc dùng với CloudFront OAC (Origin Access Control). Kết hợp với CloudFront để serve error pages nhanh chóng, không cần server riêng. -
Add a custom error response by configuring a CloudFront custom error page. Modify DNS records to point to a publicly accessible web page.
✅ Lý do: CloudFront hỗ trợ custom error responses native cho lỗi từ origin (như 502 từ ALB), map sang response code tùy chỉnh (ví dụ: 200 với custom HTML). Overhead thấp nhất vì tận dụng CloudFront sẵn có, cache global. Phần modify DNS có thể hiểu là điều chỉnh nếu cần failover, nhưng chính là config error page trong CloudFront distribution (least effort so với Lambda hay Route53 checks).
Hai phương án này kết hợp hoàn hảo: S3 host pages → CloudFront config error response trỏ đến S3 URL, intercept 502 ngay edge.
📋 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 lựa chọn một cách đầy đủ, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá ✅ (Đúng - least overhead, phù hợp yêu cầu) hoặc ❌ (Sai - overhead cao, không hiệu quả hoặc không giải quyết đúng vấn đề).
-
Create an Amazon S3 bucket. Configure the S3 bucket to host a static webpage. Upload the custom error pages to Amazon S3.
✅ Đúng. Phương án này tạo nơi host static error pages với zero server management (S3 static website hosting). Overhead thấp, scale tự động, tích hợp dễ với CloudFront (trỏ error response đến S3 endpoint). Phù hợp intermittent 502 vì không thay đổi flow chính. -
Create an Amazon CloudWatch alarm to invoke an AWS Lambda function if the ALB health check response Target.FailedHealthChecks is greater than 0. Configure the Lambda function to modify the forwarding rule at the ALB to point to a publicly accessible web server.
❌ Sai. Metric Target.FailedHealthChecks chỉ trigger khi target (EC2) unhealthy lâu dài, không phải intermittent 502 (headers malformed nhưng reload OK → targets vẫn healthy). Lambda modify ALB rules cần permissions cao (ModifyRule), rủi ro downtime toàn bộ, overhead vận hành lớn (code Lambda, IAM, testing). -
Modify the existing Amazon Route 53 records by adding health checks. Configure a fallback target if the health check fails. Modify DNS records to point to a publicly accessible webpage.
❌ Sai. Route 53 health checks + failover phù hợp DNS-level routing (TTL cao, chậm propagate ~60s+), không intercept realtime 502 từ ALB. Overhead cao: config multiple records, monitor, fallback resource riêng (không tận dụng CloudFront), không least effort cho custom page intermittent. -
Create an Amazon CloudWatch alarm to invoke an AWS Lambda function if the ALB health check response Elb.InternalError is greater than 0. Configure the Lambda function to modify the forwarding rule at the ALB to point to a public accessible web server.
❌ Sai. Metric Elb.InternalError không tồn tại chuẩn trong ALB CloudWatch (các metric đúng là HTTPCode_ELB_5XX_Count hoặc TargetResponseTime). Dù có, Lambda dynamically modify rules vẫn phức tạp, rủi ro (permission ALB API, state inconsistency), overhead cao hơn config CloudFront native.
🧠 Tóm tắt insight: Giải pháp đúng tận dụng CloudFront edge capabilities (cập nhật 2024: hỗ trợ error caching TTL linh hoạt), tránh can thiệp ALB/DNS động gây phức tạp. Least overhead = serverless + existing infra! 🚀