Ngân hàng đề — AWS Certified Database Specialty
Tìm thấy 358 câu.
Which backup methodology should the database specialist use to MINIMIZE management overhead?
- A Install the AWS CLI on an Amazon EC2 instance. Write a CLI command that creates a backup of the DynamoDB table. Create a scheduled job or task that runs the command on a nightly basis.
- B Create an AWS Lambda function that creates a backup of the DynamoDB table. Create an Amazon CloudWatch Events rule that runs the Lambda function on a nightly basis.
- C Create a backup plan using AWS Backup, specify a backup frequency of every 24 hours, and give the plan a nightly backup window.
- D Configure DynamoDB backup and restore for an on-demand backup frequency of every 24 hours.
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 tạo bản sao lưu hàng đêm (nightly backups) cho một bảng Amazon DynamoDB trong môi trường mission-critical workload (công việc quan trọng cao), nhằm phục vụ chiến lược khôi phục thảm họa (disaster recovery). Yêu cầu chính là chọn phương pháp sao lưu (backup methodology) giúp MINIMIZE management overhead – tức là giảm thiểu tối đa công sức quản lý, vận hành và bảo trì thủ công.
📘 Bối cảnh AWS cập nhật đến 2026: DynamoDB hỗ trợ nhiều loại sao lưu như On-Demand Backup (thủ công), Point-in-Time Recovery (PITR – khôi phục điểm thời gian), và đặc biệt là AWS Backup (dịch vụ sao lưu quản lý đầy đủ) từ năm 2020, được nâng cấp liên tục để hỗ trợ lịch trình tự động, vault riêng biệt, retention policy, và tích hợp cross-region cho DR. Phương pháp lý tưởng phải fully managed, không cần code/script, và tự động hóa hoàn toàn để phù hợp DevOps best practices.
✅ Đáp án đúng: Create a backup plan using AWS Backup, specify a backup frequency of every 24 hours, and give the plan a nightly backup window.
Lý do lựa chọn 🛠️:
- AWS Backup là dịch vụ fully managed của AWS, cho phép tạo backup plan với lịch trình tự động (lifecycle rules, frequency 24 giờ), chỉ định backup window ban đêm, và quản lý retention/vault/copy cross-account/region một cách tập trung.
- Nó minimize management overhead hoàn hảo vì: Không cần viết code, không deploy instance/Lambda, tự động scale, monitor qua CloudWatch, và tích hợp IAM roles sẵn. Phù hợp mission-critical DR nhờ continuous backup và audit trail.
- Theo AWS Well-Architected Framework (Operations Pillar), đây là cách serverless & automated nhất cho DynamoDB backups từ phiên bản 2024-2026.
📋 Giải thích tất cả các phương án (đúng/sai)
-
❌ [SAI] Install the AWS CLI on an Amazon EC2 instance. Write a CLI command that creates a backup of the DynamoDB table. Create a scheduled job or task that runs the command on a nightly basis.
Phân tích sai: Phương pháp này yêu cầu tự quản lý EC2 instance (patch OS, scale, monitor, chi phí chạy liên tục), viết script CLI (aws dynamodb create-backup), và scheduler (Cron/EC2 Scheduled Tasks). Overhead cao do phải handle failure, logging, IAM, và không fully managed – trái với yêu cầu minimize management. -
❌ [SAI] Create an AWS Lambda function that creates a backup of the DynamoDB table. Create an Amazon CloudWatch Events rule that runs the Lambda function on a nightly basis.
Phân tích sai: Dù serverless hơn option A, vẫn cần code Lambda (sử dụng Boto3 SDK gọicreate_backup), manage EventBridge rule, permissions, error handling, và cold starts. Overhead vẫn tồn tại ở dev/test/deploy code, monitoring invocations, và không có built-in retention/vault như AWS Backup – không phải lựa chọn tối ưu cho minimize effort. -
✅ [ĐÚNG] Create a backup plan using AWS Backup, specify a backup frequency of every 24 hours, and give the plan a nightly backup window.
Phân tích đúng: Như đã giải thích ở trên, đây là managed service với console/API một cú click: Chọn DynamoDB resource, set plan (lifecycle: 24h frequency, window đêm), assign role. Overhead gần như zero, hỗ trợ audit/compliance, và tối ưu chi phí/DR. Hoàn hảo cho DevOps Professional. -
❌ [SAI] Configure DynamoDB backup and restore for an on-demand backup frequency of every 24 hours.
Phân tích sai: On-Demand Backup của DynamoDB chỉ là thủ công (manual trigger qua console/CLI/API), không hỗ trợ tự động frequency/schedule. Không thể set "every 24 hours" – phải kết hợp script bên ngoài (tăng overhead). PITR là continuous nhưng không phải "nightly backup" discrete. Không đáp ứng automated nightly mà không quản lý thêm.
📘 Tài liệu tham khảo (AWS docs cập nhật 2026)
- AWS Backup for DynamoDB – Hướng dẫn tạo backup plans với frequency/windows.
- DynamoDB Backup & Restore – So sánh On-Demand vs AWS Backup.
- AWS Well-Architected: Backup Strategies – Nhấn mạnh AWS Backup cho low-overhead DR.
- DOP-C02 Exam Guide (2024+): Topic "DynamoDB high availability & DR" ưu tiên AWS Backup.
Hy vọng phân tích này giúp bạn ôn thi AWS DevOps Engineer Professional hiệu quả! 🚀 Nếu cần thêm case study, hỏi nhé!
Amazon CloudWatch metrics indicate that the instance requires more I/O capacity.
Which actions can a database specialist perform to resolve this issue? (Choose two.)
- A Restart the application tool used to run queries.
- B Change to a database instance class with higher throughput.
- C Convert from Single-AZ to Multi-AZ.
- D Increase the I/O parameter in Amazon RDS Enhanced Monitoring.
- E Convert from General Purpose to Provisioned IOPS (PIOPS).
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 môi trường AWS: Một công ty đang sử dụng Amazon RDS for MySQL ở chế độ Single-AZ (chỉ một Availability Zone) cho mục đích phát triển (development). DB instance gặp vấn đề hiệu suất chậm khi chạy các truy vấn (queries).
📊 Dữ liệu từ Amazon CloudWatch metrics chỉ ra rằng instance cần thêm dung lượng I/O (I/O capacity cao hơn).
🎯 Yêu cầu: Chọn hai hành động (Choose two) mà database specialist có thể thực hiện để giải quyết vấn đề này.
🛠️ Chủ đề chính: Tối ưu hóa hiệu suất lưu trữ I/O cho RDS MySQL, tập trung vào việc tăng throughput và IOPS mà không thay đổi kiến trúc HA (High Availability).
📘 Kiến thức cập nhật (2026): Theo tài liệu AWS RDS mới nhất, RDS hỗ trợ các loại storage như General Purpose SSD (gp3) với baseline performance linh hoạt, và Provisioned IOPS SSD (io2/io2 Block Express) cho workload I/O-intensive, với throughput lên đến 256,000 IOPS và 4,000 MiB/s (tăng từ io1).
✅ Đáp án đúng (Chọn TWO)
Hai lựa chọn đúng là:
- Change to a database instance class with higher throughput.
- Convert from General Purpose to Provisioned IOPS (PIOPS).
Lý do lựa chọn:
🧠 Vấn đề cốt lõi là I/O throughput thấp (CloudWatch metrics xác nhận), nên cần tăng capacity trực tiếp tại instance và storage.
- Instance class cao hơn: Cung cấp CPU/RAM/network tốt hơn, hỗ trợ I/O cao hơn (ví dụ: từ db.t3.medium lên db.m6i.4xlarge).
- Chuyển sang PIOPS: Tăng IOPS provisioned từ gp2/gp3 (baseline thấp) lên io1/io2 (tùy chỉnh cao), giải quyết bottleneck I/O ngay lập tức.
🔗 Nguồn: AWS RDS Instance Classes và RDS Storage Types.
📋 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, giữ nguyên văn bản gốc bằng tiếng Anh:
-
❌ Restart the application tool used to run queries.
Sai vì: Việc khởi động lại công cụ ứng dụng chỉ reset trạng thái tạm thời (như connection pool), không giải quyết bottleneck I/O ở mức DB instance. CloudWatch metrics chỉ rõ vấn đề ở I/O capacity, không phải ứng dụng. Hành động này chỉ là workaround ngắn hạn, không tăng throughput thực tế.
📘 Nguồn: RDS Performance Best Practices. -
✅ Change to a database instance class with higher throughput.
Đúng vì: RDS instance class lớn hơn (ví dụ: db.r6g series với Graviton3) cung cấp throughput I/O cao hơn nhờ network bandwidth và EBS optimized tốt hơn. Điều này trực tiếp tăng I/O capacity mà CloudWatch yêu cầu, phù hợp cho workload query chậm. Có thể thực hiện qua Modify DB Instance mà không downtime (Multi-AZ standby).
🛠️ Lợi ích: Tăng vCPU/RAM → xử lý concurrent queries tốt hơn.
🔗 Nguồn: Choosing Instance Classes. -
❌ Convert from Single-AZ to Multi-AZ.
Sai vì: Multi-AZ chỉ tăng high availability (failover tự động với standby replica), không tăng I/O capacity trên primary instance. Standby chỉ sync async, không chia sẻ load I/O. Vấn đề là performance Single-AZ hiện tại, không phải HA.
📊 Xác nhận: CloudWatch IOPS metrics chỉ đo primary DB.
🔗 Nguồn: Multi-AZ Deployments. -
❌ Increase the I/O parameter in Amazon RDS Enhanced Monitoring.
Sai vì: Enhanced Monitoring chỉ cung cấp metrics chi tiết về OS-level (CPU, memory, I/O threads via CloudWatch Agent), không có parameter "I/O" để tăng capacity. Bạn chỉ enable nó để monitor sâu hơn, không modify storage throughput. Để tăng I/O, phải dùng storage type hoặc instance class.
🧩 Lưu ý: Không tồn tại tính năng này trong RDS (2026).
🔗 Nguồn: Enhanced Monitoring. -
✅ Convert from General Purpose to Provisioned IOPS (PIOPS).
Đúng vì: Chuyển từ General Purpose SSD (gp2/gp3) sang PIOPS (io1/io2) cho phép provision IOPS tùy chỉnh cao (lên 256,000 IOPS), trực tiếp giải quyết "requires more I/O capacity". gp3 chỉ baseline 3,000 IOPS, trong khi io2 hỗ trợ throughput cao cho MySQL queries I/O-intensive. Thực hiện qua Modify DB Instance, online cho MySQL.
🚀 Cập nhật 2026: io2 Block Express tăng durability 99.999%.
🔗 Nguồn: Provisioned IOPS Storage.
🏆 Tóm tắt khuyến nghị
🔥 Ưu tiên: Thực hiện PIOPS trước vì trực tiếp target I/O, sau đó scale instance class nếu cần CPU/RAM. Monitor qua CloudWatch sau thay đổi để verify.
📈 Best Practice: Sử dụng RDS Performance Insights để drill-down query chậm.
✅ Kết thúc: Hai đáp án đúng giúp resolve hoàn toàn mà không over-engineer!
What is the MOST operationally efficient solution to meet these requirements?
- A Save the password in an Amazon S3 object. Encrypt the S3 object with an AWS KMS key. Set the KMS key to be rotated every 30 days by setting the EnableKeyRotation property to true. Use a CloudFormation custom resource to read the S3 object to extract the password.
- B Create an AWS Lambda function to rotate the secret. Modify the CloudFormation template to add an AWS::SecretsManager::RotationSchedule resource. Configure the RotationLambdaARN value and, for the RotationRules property, set the AutomaticallyAfterDays parameter to 30.
- C Modify the CloudFormation template to use the AWS KMS key as the database password. Configure an Amazon EventBridge rule to invoke the KMS API to rotate the key every 30 days by setting the ScheduleExpression parameter to ***/30***.
- D Integrate the Amazon RDS for MySQL DB instances with AWS IAM and centrally manage the master database user password.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm AWS
📖 Nội dung câu hỏi được giải thích rõ ràng:
Câu hỏi xoay quanh một công ty sử dụng AWS CloudFormation template (JSON) để triển khai các Amazon RDS for MySQL DB instances mới. Đội ngũ bảo mật yêu cầu chuyên viên cơ sở dữ liệu phải đảm bảo master password (mật khẩu chính của DB) được tự động xoay vòng (rotate) mỗi 30 ngày cho tất cả các DB instances mới được khởi tạo từ template này.
Yêu cầu nhấn mạnh vào giải pháp hiệu quả vận hành nhất (MOST operationally efficient), nghĩa là phải tích hợp mượt mà vào CloudFormation, tự động hóa cao, không thủ công, và tuân thủ best practices bảo mật AWS (như sử dụng dịch vụ managed để rotate secret).
🛠️ Bối cảnh kỹ thuật: RDS MySQL hỗ trợ rotation password qua AWS Secrets Manager, kết hợp với Lambda để thực thi logic rotate, và CloudFormation có resource chuyên dụng để schedule rotation. Điều này đảm bảo tính nhất quán cho mọi stack mới.
✅ Đáp án đúng và lý do lựa chọn:
Đáp án đúng là: Create an AWS Lambda function to rotate the secret. Modify the CloudFormation template to add an AWS::SecretsManager::RotationSchedule resource. Configure the RotationLambdaARN value and, for the RotationRules property, set the AutomaticallyAfterDays parameter to 30.
Lý do chọn (bằng tiếng Việt):
🟢 Giải pháp này hiệu quả vận hành nhất vì:
- Tích hợp trực tiếp vào CloudFormation template qua resource AWS::SecretsManager::RotationSchedule (resource managed mới nhất từ AWS, cập nhật đến 2026).
- Sử dụng Lambda function làm rotator (ARN chỉ định vào RotationLambdaARN), kết hợp RotationRules với AutomaticallyAfterDays: 30 để tự động rotate mỗi 30 ngày.
- RDS MySQL hỗ trợ native integration với Secrets Manager cho master password rotation (không cần custom code phức tạp).
- Đảm bảo tự động hóa toàn diện cho mọi DB instance mới từ template, scalable, và tuân thủ zero-trust security. Không cần can thiệp thủ công, chi phí thấp (pay-per-use).
📘 Tài liệu tham khảo:
- AWS Secrets Manager Rotation (cập nhật 2024-2026).
- CloudFormation AWS::SecretsManager::RotationSchedule.
- RDS Password Rotation with Secrets Manager.
🔍 Giải thích chi tiết tất cả các phương án (đúng/sai)
-
❌ Phương án SAI: Save the password in an Amazon S3 object. Encrypt the S3 object with an AWS KMS key. Set the KMS key to be rotated every 30 days by setting the EnableKeyRotation property to true. Use a CloudFormation custom resource to read the S3 object to extract the password.
Phân tích sai (tiếng Việt): Phương án này không hiệu quả vì S3 không phải dịch vụ chuyên rotate secret như password. Rotate KMS key (EnableKeyRotation: true) chỉ thay đổi key material, không tự động cập nhật password trong RDS hoặc S3 object. Custom resource trong CloudFormation phức tạp, dễ lỗi, không tự động sync với RDS (phải manual update DB password). Không scalable cho nhiều DB instances, vi phạm best practices (S3 kém an toàn hơn Secrets Manager cho secrets). -
✅ Phương án ĐÚNG: Create an AWS Lambda function to rotate the secret. Modify the CloudFormation template to add an AWS::SecretsManager::RotationSchedule resource. Configure the RotationLambdaARN value and, for the RotationRules property, set the AutomaticallyAfterDays parameter to 30.
Phân tích đúng (tiếng Việt): Như đã giải thích ở trên. Đây là native AWS solution (cập nhật 2026), tự động hóa 100% trong CloudFormation stack, hỗ trợ RDS MySQL rotation mà không downtime, audit trail đầy đủ qua Secrets Manager. -
❌ Phương án SAI: Modify the CloudFormation template to use the AWS KMS key as the database password. Configure an Amazon EventBridge rule to invoke the KMS API to rotate the key every 30 days by setting the ScheduleExpression parameter to /30.
Phân tích sai (tiếng Việt): Hoàn toàn không khả thi vì RDS không chấp nhận KMS key ARN làm master password (password phải là string plaintext hoặc từ Secrets Manager). Rotate KMS key qua EventBridge + KMS API chỉ ảnh hưởng key material, không update password trong RDS. ScheduleExpression "/30"* sai syntax (EventBridge dùng cron như "0 0 */30 * ? *"), và không giải quyết rotate secret thực sự. Giải pháp lộn xộn, không operationally efficient. -
❌ Phương án SAI: Integrate the Amazon RDS for MySQL DB instances with AWS IAM and centrally manage the master database user password.
Phân tích sai (tiếng Việt): RDS IAM integration chỉ cho database users (không phải master user). Master password phải set lúc tạo DB và không hỗ trợ IAM authentication (IAM DB auth dành cho app users với IAM roles). Không có cơ chế "centrally manage master password" qua IAM, và không rotate tự động mỗi 30 ngày. Vi phạm yêu cầu template-based deployment.
🎯 Kết luận: Giải pháp đúng tận dụng Secrets Manager + CloudFormation là best practice AWS hiện đại (2026), đảm bảo bảo mật cao, tự động hóa DevOps pipeline. Nếu triển khai thực tế, test rotation trong dev env trước! 🚀
✑ The networks and routes affected if a particular component fails.
✑ The networks that have redundant routes between them.
✑ The networks that do not have redundant routes between them.
✑ The fastest path between two networks.
Which database engine meets these requirements?
- A Amazon Aurora MySQL
- B Amazon Neptune
- C Amazon ElastiCache for Redis
- D Amazon DynamoDB
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 startup đang xây dựng ứng dụng để visualize các thành phần mạng on-premises và cloud (như routers, switches, networks). Ứng dụng phải xử lý hàng tỷ (billions) components, yêu cầu thời gian phản hồi chỉ trong milliseconds (high performance, low latency). Các chức năng chính cần hỗ trợ:
- Xác định networks và routes bị ảnh hưởng nếu một component cụ thể thất bại (phân tích tác động lan tỏa qua relationships).
- Tìm networks có redundant routes giữa chúng (có nhiều đường đi dự phòng).
- Tìm networks không có redundant routes (không có đường đi dự phòng).
- Tìm fastest path giữa hai networks (đường đi ngắn nhất).
🛠️ Yêu cầu cốt lõi: Đây là bài toán graph database (cơ sở dữ liệu đồ thị), vì networking topology là mạng lưới nodes (components) và edges (routes/connections). Cần query phức tạp như traversal, shortest path, redundancy check trên quy mô lớn. Database phải scale horizontally, hỗ trợ graph algorithms native.
✅ Đáp án đúng: Amazon Neptune
Lý do chọn: Amazon Neptune là graph database chuyên dụng của AWS, được thiết kế tối ưu cho các workload graph lớn (hàng tỷ nodes/edges), với latency milliseconds nhờ in-memory processing và indexing. Neptune hỗ trợ:
- Property Graph (Gremlin) và RDF (SPARQL) cho queries như:
- Traversal để tìm affected networks (BFS/DFS từ node thất bại).
- Multiple paths để detect redundant routes (query kiểm tra >1 path giữa 2 nodes).
- Shortest path algorithms (built-in trong Gremlin) cho fastest path.
- Scale đến petabyte, multi-AZ, serverless option (Neptune Serverless ra mắt 2023-2024, cập nhật 2025-2026 hỗ trợ billions entities).
- Hoàn hảo cho network visualization (ví dụ: AWS Network Manager, topology analysis).
📘 Tài liệu tham khảo:
- AWS Neptune Documentation: Graph databases on AWS (cập nhật 2025: hỗ trợ Neptune Analytics cho fast ML on graphs).
- AWS Well-Architected Framework: Networking pillar, đề cập Neptune cho topology queries.
- DOP-C02 Exam Guide (2024-2026): Graph DB cho complex relationships.
📋 Giải thích tất cả các phương án (đúng/sai)
-
❌ Amazon Aurora MySQL
Sai vì: Aurora MySQL là relational database (RDBMS), lưu dữ liệu dạng bảng với rows/columns, không native hỗ trợ graph traversal hoặc shortest path queries. Với billions components, queries phức tạp (JOINs nhiều bảng) sẽ chậm (giây thay vì ms), không scale tốt cho graph workloads. Phải tự implement graph logic bằng SQL, kém hiệu quả và tốn kém. -
✅ Amazon Neptune
Đúng vì: Như đã giải thích ở trên. Neptune là lựa chọn duy nhất native graph DB, tối ưu cho tất cả requirements: failure impact (traversal), redundancy (path existence checks), fastest path (algorithms như Dijkstra/BFS). Hỗ trợ scale billions nodes với read replicas, low latency, tích hợp IAM/VPC. -
❌ Amazon ElastiCache for Redis
Sai vì: ElastiCache Redis là in-memory key-value store (có module RedisGraph/RedisJSON), hỗ trợ graph queries cơ bản nhưng không chuyên sâu cho large-scale graphs (billions nodes). Không có native shortest path/redundancy algorithms mạnh mẽ như Neptune, dễ OOM (out-of-memory) với data lớn, và không persistent tốt cho analytical queries. Phù hợp cache hơn là primary graph store. -
❌ Amazon DynamoDB
Sai vì: DynamoDB là NoSQL key-value/document DB, mạnh single-item lookups và simple queries (GSI/LSI), nhưng không hỗ trợ graph relationships native. Phải model graph bằng adjacency lists (tốn storage/query complexity), traversal chậm với billions items (cần recursive queries qua Lambda, latency cao >ms). Không phù hợp cho path-finding/redundancy analysis.
🧠 Kết luận: Neptune là giải pháp best-fit theo AWS best practices cho graph-heavy apps như network topology (ví dụ: real-world case studies trên AWS blogs 2024-2026). Nếu implement sai DB, app sẽ fail về performance/scalability! 🚀
Which solution meets these requirements?
- A Amazon DynamoDB with on-demand capacity mode
- B Amazon Aurora with one writer node and an Aurora Replica with the parallel query feature enabled
- C Amazon DynamoDB with provisioned capacity mode with 5,000 write capacity units (WCUs) and 10,000 read capacity units (RCUs)
- D Amazon Aurora with one writer node and two cross-Region Aurora Replicas
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 bán lẻ trực tuyến đang chuẩn bị cho flash sale đa ngày với yêu cầu xử lý lên đến 5.000 đơn hàng/giây (orders per second), nhưng số lượng đơn hàng và lịch trình thay đổi hàng ngày. Trong thời gian sale, có khoảng 10.000 người dùng đồng thời (concurrent users) xem các ưu đãi trước khi mua hàng. Ngoài thời gian sale, lưu lượng truy cập rất thấp. Yêu cầu hiệu suất: thời gian đọc/ghi dưới 25 ms (latency <25ms). Mỗi order item khoảng 2 KB, có unique identifier. Giải pháp cần tiết kiệm chi phí nhất (cost-effective), tự động scale (auto-scale), và có tính sẵn sàng cao (highly available).
🛠️ Yêu cầu chính cần giải quyết:
- Workload biến động mạnh: Peak cao (5k writes/sec + reads cao), baseline thấp → cần auto-scaling linh hoạt, tránh overprovision.
- NoSQL-friendly: Order items có unique ID → phù hợp key-value store.
- Hiệu suất cao: Latency thấp, throughput lớn.
- HA & Cost: Multi-AZ, pay-per-use.
✅ Đáp án đúng và lý do chọn
Đáp án đúng: Amazon DynamoDB with on-demand capacity mode
Lý do chọn 🏆:
DynamoDB On-Demand là chế độ tự động scale hoàn toàn, không cần provision capacity trước. Nó xử lý burst traffic lên đến hàng trăm nghìn requests/sec/table một cách mượt mà, phù hợp với flash sale biến động (5k writes/sec
10k WCUs cần thiết, vì 1KB write=1 WCU, 2KB2 WCUs/order). Latency đơn vị mili giây (thường <10ms), vượt yêu cầu <25ms. Highly available mặc định (multi-AZ, 99.99% SLA). Cost-effective nhất vì pay-per-request, chỉ trả tiền khi có traffic cao, tránh lãng phí ngoài sale (không như provisioned mode). Dữ liệu 2KB với unique ID lý tưởng cho DynamoDB (NoSQL key-value). Theo AWS 2026, On-Demand hỗ trợ adaptive capacity nâng cao và DynamoDB Global Tables cho HA toàn cầu nếu cần.
📋 Giải thích tất cả các phương án
-
✅ Amazon DynamoDB with on-demand capacity mode
Đúng vì: Như phân tích trên, tự động scale theo nhu cầu thực tế (throttling tự điều chỉnh, burst lên 40k reads/sec ban đầu rồi scale), latency thấp, HA built-in, chi phí thấp cho traffic spiky. Hoàn hảo cho workload này mà không cần DevOps can thiệp. -
❌ Amazon Aurora with one writer node and an Aurora Replica with the parallel query feature enabled
Sai vì: Aurora là RDBMS, writer node đơn lẻ dễ bottleneck với 5k writes/sec (Aurora MySQL/Postgres giới hạn ~65k IOPS/writer, nhưng real-world throughput thấp hơn cho writes cao). Parallel query chỉ tối ưu reads (scan queries), không giúp writes. Latency có thể vượt 25ms dưới peak. Không auto-scale writes tự động như DynamoDB, và kém cost-effective cho NoSQL workload (overkill relational features). Ngoài ra, chỉ 1 replica → HA hạn chế. -
❌ Amazon DynamoDB with provisioned capacity mode with 5,000 write capacity units (WCUs) and 10,000 read capacity units (RCUs)
Sai vì: Provisioned mode cố định capacity, phải set trước 5k WCUs (đủ peak writes) và 10k RCUs (cho reads), nhưng không auto-scale cho biến động (nếu vượt → throttling). Với traffic thấp ngoài sale, overprovision lãng phí chi phí lớn (phải trả full capacity unused). Không "cost-effective nhất" so với On-Demand. Dù latency thấp và HA tốt, nhưng vi phạm yêu cầu auto-scale linh hoạt. -
❌ Amazon Aurora with one writer node and two cross-Region Aurora Replicas
Sai vì: Cross-Region replicas gây latency cao (RTO/RPO tốt cho DR, nhưng read/write cross-region >25ms dễ dàng do network). Writer node đơn → writes bottleneck như trên. Chi phí cực cao (cross-region replication đắt đỏ, data transfer fees). Không auto-scale writes, kém hiệu quả cho spiky NoSQL workload. HA tốt cho disaster recovery nhưng overkill và không meet latency/performance.
📘 Tài liệu tham khảo (AWS cập nhật 2026)
- DynamoDB Capacity Modes: AWS DynamoDB Developer Guide - On-Demand → Xác nhận auto-scaling, pay-per-request, burst handling.
- DynamoDB Limits: Service Quotas → >100k writes/sec possible với scaling.
- Aurora Limits: Aurora Capacity → Writer bottlenecks ~3-5k TPS thực tế.
- Best Practices Flash Sales: AWS Well-Architected - Operational Excellence → Recommend DynamoDB On-Demand cho variable traffic.
- SLA: DynamoDB 99.99%, Aurora 99.99% (per AZ).
🛠️ Khuyến nghị triển khai: Kết hợp DynamoDB với Auto Scaling (DynamoDB Streams + Lambda cho order processing), DAX cho reads sub-ms nếu cần, và CloudWatch alarms theo dõi. Hoàn toàn phù hợp DevOps Professional! 🚀
This application has two parts:
✑ An in-house booking component that accepts online bookings that directly correspond to simultaneous requests from users.
✑ A third-party customer relationship management (CRM) component used by customer care representatives. The CRM uses queries to access booking data.
A database specialist needs to design a cost-effective database solution to handle this workload.
Which solution meets these requirements?
- A Use Amazon ElastiCache for Redis to accept the bookings. Associate an AWS Lambda function to capture changes and push the booking data to the RDS for MySQL DB instance used by the CRM.
- B Use Amazon DynamoDB to accept the bookings. Enable DynamoDB Streams and associate an AWS Lambda function to capture changes and push the booking data to an Amazon SQS queue. This triggers another Lambda function that pulls data from Amazon SQS and writes it to the RDS for MySQL DB instance used by the CRM.
- C Use Amazon ElastiCache for Redis to accept the bookings. Associate an AWS Lambda function to capture changes and push the booking data to an Amazon Redshift database used by the CRM.
- D Use Amazon DynamoDB to accept the bookings. Enable DynamoDB Streams and associate an AWS Lambda function to capture changes and push the booking data to Amazon Athena, which is used by the CRM.
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 ứng dụng ride-hailing (gọi xe) đang sử dụng Amazon RDS for MySQL làm lưu trữ chính cho dữ liệu bookings (đặt xe). Ứng dụng rất phổ biến và dự kiến tăng gấp 10 lần số lượng người dùng trong vài tháng tới, với lưu lượng truy cập cao hơn vào buổi sáng và tối (peak hours).
Ứng dụng có hai thành phần chính:
- In-house booking component: Xử lý các booking trực tuyến từ người dùng, với yêu cầu đồng thời cao (high concurrent writes), cần tốc độ ghi nhanh và khả năng scale.
- Third-party CRM component: Được sử dụng bởi nhân viên chăm sóc khách hàng (customer care), thực hiện các truy vấn đọc dữ liệu booking (read-heavy queries).
Nhiệm vụ của database specialist là thiết kế giải pháp cost-effective (tiết kiệm chi phí) để xử lý workload này, đảm bảo:
- Xử lý writes cao từ bookings mà không overload RDS.
- Đồng bộ dữ liệu sang RDS MySQL để CRM truy vấn.
- Scale tự động cho peak traffic, tối ưu chi phí (pay-per-use).
🛠️ Yêu cầu chính: Giải pháp phải tách biệt writes (high throughput) khỏi reads (CRM queries), sử dụng serverless để scale, và giữ RDS cho CRM persistent.
📘 Tài liệu tham khảo:
- AWS Well-Architected Framework - Reliability Pillar (2024 update).
- DynamoDB Streams documentation (AWS re:Invent 2025 updates on Streams capacity).
- RDS for MySQL scaling best practices (AWS docs 2026).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng:
Use Amazon DynamoDB to accept the bookings. Enable DynamoDB Streams and associate an AWS Lambda function to capture changes and push the booking data to an Amazon SQS queue. This triggers another Lambda function that pulls data from Amazon SQS and writes it to the RDS for MySQL DB instance used by the CRM.
Lý do chọn đáp án này 🏆:
- DynamoDB lý tưởng cho high-concurrency writes từ bookings (hàng triệu requests/giây, auto-scale), cost-effective với on-demand capacity (pay-per-request, cập nhật 2025).
- DynamoDB Streams capture changes real-time, kích hoạt Lambda để push sang SQS (decouple producer-consumer, tránh overload RDS).
- SQS + Lambda thứ hai batch writes vào RDS MySQL, đảm bảo CRM truy vấn dữ liệu persistent mà không ảnh hưởng writes chính.
- Cost-effective: DynamoDB rẻ cho writes bursty (peak sáng/tối), SQS/Lambda serverless (zero idle cost).
- Phù hợp multi-region scale nếu cần (DynamoDB Global Tables 2026).
🧩 Giải thích tất cả các phương án (đúng và sai)
-
❌ Phương án SAI:
Use Amazon ElastiCache for Redis to accept the bookings. Associate an AWS Lambda function to capture changes and push the booking data to the RDS for MySQL DB instance used by the CRM.
Giải thích: ElastiCache Redis là in-memory cache, không persistent (dữ liệu mất khi node fail), không phù hợp làm primary storage cho bookings quan trọng. Không scale writes tốt bằng DynamoDB cho 10x traffic. Streams/Lambda push sang RDS có thể gây data loss nếu Redis evict keys. -
✅ Phương án ĐÚNG (như trên):
Use Amazon DynamoDB to accept the bookings. Enable DynamoDB Streams and associate an AWS Lambda function to capture changes and push the booking data to an Amazon SQS queue. This triggers another Lambda function that pulls data from Amazon SQS and writes it to the RDS for MySQL DB instance used by the CRM.
Giải thích: Hoàn hảo cho workload: DynamoDB xử lý writes peak, Streams + SQS/Lambda replicate async sang RDS mà không block. Cost thấp, durable (99.999999999% DynamoDB durability 2026). -
❌ Phương án SAI:
Use Amazon ElastiCache for Redis to accept the bookings. Associate an AWS Lambda function to capture changes and push the booking data to an Amazon Redshift database used by the CRM.
Giải thích: Redis vẫn không persistent cho bookings chính. Redshift là data warehouse cho analytics (batch ETL, chậm query real-time), không phù hợp CRM queries tức thì. Chi phí cao (provisioned clusters), không cost-effective cho operational reads. -
❌ Phương án SAI:
Use Amazon DynamoDB to accept the bookings. Enable DynamoDB Streams and associate an AWS Lambda function to capture changes and push the booking data to Amazon Athena, which is used by the CRM.
Giải thích: DynamoDB tốt cho writes, nhưng Athena query serverless trên S3 (file-based, không real-time updates), không persistent như RDS. CRM cần queries nhanh trên relational data (joins, transactions), Athena chậm cho interactive queries và không hỗ trợ writes trực tiếp.
🛠️ Kết luận: Giải pháp đúng tận dụng event-driven architecture (Streams + Lambda + SQS) để scale writes/reads riêng biệt, tối ưu cho peak traffic 10x! 🚀
(DAX) cluster in the same VPC as its web application server. The application needs to perform infrequent writes and many strongly consistent reads from the data store by querying the DAX cluster.
During a performance audit, a systems administrator notices that the application can look up items by using the DAX cluster. However, the QueryCacheHits metric for the DAX cluster consistently shows 0 while the QueryCacheMisses metric continuously keeps growing in Amazon CloudWatch.
What is the MOST likely reason for this occurrence?
- A A VPC endpoint was not added to access DynamoDB.
- B Strongly consistent reads are always passed through DAX to DynamoDB.
- C DynamoDB is scaling due to a burst in traffic, resulting in degraded performance.
- D A VPC endpoint was not added to access CloudWatch.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi mô tả một website quảng cáo trực tuyến sử dụng Amazon DynamoDB ở chế độ on-demand capacity làm kho dữ liệu chính, kết hợp với DynamoDB Accelerator (DAX) cluster nằm trong cùng VPC với máy chủ ứng dụng web. Ứng dụng thực hiện viết dữ liệu không thường xuyên (infrequent writes) và nhiều đọc mạnh mẽ nhất quán (strongly consistent reads) bằng cách query qua DAX cluster.
Trong quá trình kiểm toán hiệu suất, quản trị viên hệ thống phát hiện ứng dụng có thể tra cứu items qua DAX, nhưng metric QueryCacheHits của DAX luôn là 0, trong khi QueryCacheMisses liên tục tăng trong Amazon CloudWatch.
📌 Vấn đề cốt lõi: Tại sao DAX không cache được các query (hits=0, misses tăng)? Điều này liên quan đến cách DAX xử lý các loại read khác nhau từ DynamoDB, đặc biệt là strongly consistent reads. (Kiến thức AWS cập nhật đến 2026: DAX vẫn giữ nguyên hành vi pass-through cho strongly consistent reads theo tài liệu chính thức).
✅ Đáp án đúng: B
Strongly consistent reads are always passed through DAX to DynamoDB.
🛠️ Lý do chọn đáp án này:
DAX là cache in-memory cho DynamoDB, tối ưu cho eventually consistent reads (cache hits cao). Tuy nhiên, với strongly consistent reads (đọc đảm bảo dữ liệu mới nhất), DAX không cache mà luôn pass-through trực tiếp đến DynamoDB để đảm bảo tính nhất quán mạnh mẽ. Kết quả: Mọi query strongly consistent đều gây cache miss (QueryCacheMisses tăng), và không có hit nào (QueryCacheHits=0). Đây là hành vi thiết kế chuẩn của DAX, phù hợp với mô tả "many strongly consistent reads".
📘 Tài liệu tham khảo:
- AWS DAX Developer Guide: DAX Caching Behavior (xác nhận strongly consistent reads bypass cache).
- CloudWatch Metrics for DAX: DAX Metrics (QueryCacheHits/Misses chỉ đếm eventually consistent queries).
📋 Giải thích tất cả các phương án
-
A VPC endpoint was not added to access DynamoDB.
❌ Sai: VPC endpoint (Interface Endpoint) cho DynamoDB chỉ cần thiết nếu truy cập từ VPC mà không qua public internet (để private connectivity). Ở đây, DAX đã trong cùng VPC và ứng dụng có thể lookup items qua DAX (chứng tỏ kết nối DynamoDB qua DAX hoạt động bình thường). Vấn đề không phải kết nối mà là caching behavior. VPC endpoint không ảnh hưởng đến metrics cache hits/misses. -
Strongly consistent reads are always passed through DAX to DynamoDB.
✅ Đúng: Như giải thích ở trên. Đây là lý do chính xác nhất, vì DAX thiết kế để bypass cache cho strongly consistent reads nhằm đảm bảo dữ liệu tươi mới từ DynamoDB, dẫn đến misses tăng và hits=0. Phù hợp hoàn hảo với workload "many strongly consistent reads". -
DynamoDB is scaling due to a burst in traffic, resulting in degraded performance.
❌ Sai: DynamoDB on-demand capacity tự động scale theo traffic mà không degraded (throttling chỉ xảy nếu giới hạn tài khoản). Hơn nữa, vấn đề là cache metrics của DAX (không phải DynamoDB performance), và ứng dụng vẫn lookup được items (không có dấu hiệu degraded). Burst traffic không giải thích hits=0. -
A VPC endpoint was not added to access CloudWatch.
❌ Sai: CloudWatch metrics được thu thập tự động qua agent/internal channels, không yêu cầu VPC endpoint để xem metrics (chỉ cần IAM permissions). Vấn đề là giá trị metrics (hits=0, misses tăng), không phải việc truy cập CloudWatch. Kết nối DAX-DynamoDB đã OK vì lookup thành công.
🧩 Kết luận: Hiểu rõ sự khác biệt giữa strongly consistent (pass-through) và eventually consistent reads (cached) trong DAX là chìa khóa cho câu hỏi DevOps Professional level! Nếu chuyển sang eventually consistent reads, cache hits sẽ tăng đáng kể.
The company requires an RTO of 5 minutes and an RPO of 5 minutes. A database specialist must configure an efficient disaster recovery solution with minimal replication lag.
Which approach should the database specialist take to meet these requirements?
- A Configure AWS Database Migration Service (AWS DMS) and create a replica in a different AWS Region.
- B Configure an Amazon Aurora global database and add a different AWS Region.
- C Configure a binlog and create a replica in a different AWS Region.
- D Configure a cross-Region read replica.
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ế giải pháp khôi phục thảm họa (Disaster Recovery - DR) cho cơ sở dữ liệu Amazon Aurora tương thích với MySQL, được sử dụng làm backend cho ứng dụng quản lý danh mục đầu tư (portfolio management) của một công ty tài chính.
Các yêu cầu chính:
- RTO (Recovery Time Objective) ≤ 5 phút: Thời gian khôi phục hệ thống sau sự cố phải dưới 5 phút (tức là ứng dụng phải hoạt động trở lại nhanh chóng).
- RPO (Recovery Point Objective) ≤ 5 phút: Lượng dữ liệu có thể mất tối đa là 5 phút (tức là replication phải gần như real-time để tránh mất dữ liệu lớn).
- Minimal replication lag: Độ trễ sao chép dữ liệu phải thấp nhất có thể.
- Hiệu quả và tối ưu: Giải pháp phải được cấu hình bởi Database Specialist, tận dụng tính năng native của AWS để đảm bảo cross-Region (giữa các vùng AWS khác nhau) với chi phí và độ phức tạp thấp.
Mục tiêu: Chọn cách cấu hình Aurora để đạt DR cross-Region tốt nhất, vì Aurora MySQL-compatible hỗ trợ các tính năng replication tiên tiến. 🛠️
✅ Đáp án đúng: Configure an Amazon Aurora global database and add a different AWS Region.
Lý do lựa chọn:
- Amazon Aurora Global Database là giải pháp native và tối ưu nhất của AWS cho DR cross-Region trên Aurora (từ năm 2018 và cập nhật liên tục đến 2026).
- Replication lag: Thấp nhất (thường sub-second ~ dưới 1 giây), đảm bảo RPO < 5 phút (thực tế gần 0 nếu không có sự cố mạng).
- RTO: Hỗ trợ managed failover tự động hoặc thủ công chỉ trong <1 phút (dùng
promotehoặc managed planned failover), dễ dàng đạt <5 phút. - Cách hoạt động: Primary cluster ở Region chính, thêm secondary cluster ở Region khác (tối đa 5 secondary). Dữ liệu được replicate storage-level qua AWS backbone network, không dùng binlog truyền thống.
- Ưu điểm: Read/write scaling, minimal lag, tích hợp monitoring qua CloudWatch, và hỗ trợ MySQL/PostgreSQL compatibility. Phù hợp hoàn hảo cho ứng dụng tài chính cần high availability.
- Không cần cấu hình thủ công phức tạp, AWS quản lý toàn bộ. ✅
📋 Giải thích tất cả các phương án (đúng/sai)
-
Configure AWS Database Migration Service (AWS DMS) and create a replica in a different AWS Region.
❌ Sai: AWS DMS dùng cho migration/ongoing replication giữa các DB engine khác nhau, không phải DR real-time. Lag cao (phút đến giờ tùy workload), không hỗ trợ failover tự động nhanh (RTO >5 phút), và overhead cao (cần EC2 endpoints). Không hiệu quả cho Aurora native, vi phạm "minimal replication lag". DMS phù hợp migration ban đầu hơn DR. -
Configure an Amazon Aurora global database and add a different AWS Region.
✅ Đúng: Như giải thích trên. Giải pháp tốt nhất cho RTO/RPO yêu cầu, với lag thấp nhất và failover managed. Đáp ứng đầy đủ yêu cầu DR cross-Region cho Aurora MySQL. -
Configure a binlog and create a replica in a different AWS Region.
❌ Sai: Aurora MySQL dùng binlog cho read replicas intra-Region, nhưng không hỗ trợ cross-Region binlog replicas native (phải dùng công cụ bên thứ 3 như MySQL binlog replication thủ công). Lag cao hơn (giây đến phút), failover thủ công và lâu (RTO >5 phút), không minimal lag. Không phải best practice cho DR Aurora. -
Configure a cross-Region read replica.
❌ Sai: Aurora hỗ trợ cross-Region read replicas (tạo từ primary), nhưng chỉ read-only, lag cao hơn Global Database (1-5 phút tùy mạng), và failover thủ công (snapshot + promote, RTO thường >5 phút). Không đạt RPO/RTO chặt chẽ, thiếu managed failover. Global Database là phiên bản nâng cao hơn.
📘 Tài liệu tham khảo (cập nhật AWS 2026)
- AWS Documentation: Amazon Aurora Global Database – Chi tiết RTO/RPO, replication lag <1s, failover <1 phút.
- AWS Best Practices: Disaster Recovery for Amazon Aurora – Khuyến nghị Global Database cho RPO/RTO thấp.
- Exam Guide DOP-C02 (2024+): Chủ đề Aurora DR trong "Database Services".
- CloudWatch Metrics:
AuroraGlobalDBReplicationLagđể monitor lag.
Giải pháp này đảm bảo tuân thủ AWS Well-Architected Framework (Reliability Pillar). Nếu cần lab thực hành, dùng AWS Console hoặc CDK/Terraform! 🚀
What should a database specialist do to resolve this issue?
- A Create a second security group on the EC2 instances. Add an outbound rule to allow traffic from the ElastiCache cluster security group.
- B Delete the ElastiCache security group. Add an interface VPC endpoint to enable the EC2 instances to connect to the ElastiCache cluster.
- C Modify the ElastiCache security group by adding outbound rules that allow traffic to VPC_B's CIDR blocks from the ElastiCache cluster.
- D Modify the ElastiCache security group by adding an inbound rule that allows traffic from the EC2 instances' security group to the ElastiCache cluster.
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi mô tả một tình huống thực tế trong AWS:
Một công ty chạy ứng dụng chia sẻ file nội bộ trên các instance Amazon EC2 nằm trong VPC_A. Ứng dụng này sử dụng Amazon ElastiCache (cluster cache như Redis hoặc Memcached) làm backend, và ElastiCache nằm trong VPC_B. Hai VPC này đã được peered (kết nối VPC Peering) để cho phép giao tiếp.
Sau khi di chuyển các instance EC2 từ VPC_A sang VPC_B (bây giờ EC2 và ElastiCache cùng nằm trong VPC_B), logs cho thấy ứng dụng không còn kết nối được đến ElastiCache.
📌 Vấn đề cốt lõi: Trước khi di chuyển, kết nối hoạt động nhờ VPC Peering và các Security Group (SG) rules phù hợp (có lẽ SG của ElastiCache cho phép inbound từ SG của EC2 ở VPC_A qua peering). Sau di chuyển:
- EC2 và ElastiCache cùng VPC_B, không còn phụ thuộc peering.
- Nhưng SG inbound của ElastiCache chưa được cập nhật để chấp nhận traffic từ SG mới của EC2 (cùng VPC). AWS ElastiCache yêu cầu kiểm soát truy cập qua SG inbound (không dùng NACL hoặc public access).
🛠️ Mục tiêu: Database specialist cần khắc phục để EC2 kết nối lại ElastiCache một cách an toàn, hiệu quả nhất, tuân thủ nguyên tắc least privilege (chỉ mở port cần thiết như 6379 cho Redis).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Modify the ElastiCache security group by adding an inbound rule that allows traffic from the EC2 instances' security group to the ElastiCache cluster.
Lý do:
- Khi EC2 di chuyển sang VPC_B, chúng cùng subnet/VPC với ElastiCache, traffic nội bộ VPC (intra-VPC) được xử lý qua Security Group inbound của ElastiCache.
- Cần thêm inbound rule vào SG của ElastiCache, reference trực tiếp SG của EC2 instances làm source (ví dụ: source = sg-xxx của EC2, port 6379/TCP). Điều này an toàn hơn dùng CIDR vì chỉ cho phép từ group cụ thể, không mở rộng.
- Không ảnh hưởng peering cũ, và đây là best practice cho ElastiCache trong cùng VPC (tính đến phiên bản AWS 2026, ElastiCache vẫn ưu tiên SG reference cho intra-VPC access).
✅ Kết quả: Kết nối khôi phục ngay lập tức mà không cần thay đổi lớn.
📋 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, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên kiến thức AWS mới nhất (ElastiCache VPC support, Security Groups - cập nhật 2026).
-
❌ [SAI] Create a second security group on the EC2 instances. Add an outbound rule to allow traffic from the ElastiCache cluster security group.
Lý do sai: Vấn đề không nằm ở outbound từ EC2 (EC2 thường cho phép outbound all traffic mặc định). ElastiCache cần inbound permission từ phía server. Tạo SG thứ hai thừa thãi và không giải quyết gốc rễ (SG inbound của ElastiCache chưa allow EC2 SG). -
❌ [SAI] Delete the ElastiCache security group. Add an interface VPC endpoint to enable the EC2 instances to connect to the ElastiCache cluster.
Lý do sai: Delete SG sẽ làm ElastiCache mất bảo mật hoàn toàn (không khuyến khích, AWS yêu cầu ít nhất 1 SG). Interface VPC Endpoint dùng cho dịch vụ AWS private như S3/DynamoDB, không áp dụng cho ElastiCache (ElastiCache là managed service trong VPC, không hỗ trợ endpoint kiểu này đến 2026). -
❌ [SAI] Modify the ElastiCache security group by adding outbound rules that allow traffic to VPC_B's CIDR blocks from the ElastiCache cluster.
Lý do sai: ElastiCache là server nhận kết nối (listener), không cần outbound từ ElastiCache đến EC2. Client (EC2) initiate connection → cần inbound vào ElastiCache. Dùng CIDR VPC_B kém an toàn (mở rộng cho tất cả resources trong VPC), vi phạm least privilege. -
✅ [ĐÚNG] Modify the ElastiCache security group by adding an inbound rule that allows traffic from the EC2 instances' security group to the ElastiCache cluster.
Lý do đúng: Như giải thích ở trên, đây là cách chuẩn xác cho intra-VPC access. SG reference cho phép dynamic (nếu EC2 thay SG, rule vẫn valid). Hỗ trợ peering cũ nếu cần, và scale tốt.
📘 Tài liệu tham khảo (AWS mới nhất 2026)
- ElastiCache Security Groups: https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/VPC-security-groups.html (Giải thích inbound rules và SG referencing intra-VPC/peering).
- VPC Peering & Migration: https://docs.aws.amazon.com/vpc/latest/peering/peering-scenarios.html (Intra-VPC ưu tiên sau peering).
- Best Practices: AWS Well-Architected Framework - Reliability Pillar: Security Groups cho managed services như ElastiCache.
🛡️ Lưu ý: Luôn test bằng VPC Flow Logs để verify traffic sau thay đổi!
Which approach to load the data is FASTEST?
- A Upload the data to Amazon S3 and use the Loader command to load the data from Amazon S3 into the Neptune database.
- B Write a utility to read the data from the on-premises storage and run INSERT statements in a loop to load the data into the Neptune database.
- C Use the AWS CLI to load the data directly from the on-premises storage into the Neptune database.
- D Use AWS DataSync to load the data directly from the on-premises storage into the Neptune database.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi
Câu hỏi gốc:
A database specialist must load 25 GB of data files from a company's on-premises storage to an Amazon Neptune database. Which approach to load the data is FASTEST?
Giải thích nội dung câu hỏi:
🛠️ Câu hỏi tập trung vào việc tải dữ liệu lớn (25 GB) từ lưu trữ on-premises (hệ thống nội bộ công ty) vào Amazon Neptune – một dịch vụ cơ sở dữ liệu đồ thị (graph database) của AWS. Mục tiêu là tìm phương pháp nhanh nhất (FASTEST) để thực hiện bulk loading (tải hàng loạt). Với khối lượng dữ liệu lớn như vậy, các phương pháp chậm như INSERT từng dòng sẽ không hiệu quả. Neptune hỗ trợ các công cụ tối ưu hóa tải dữ liệu lớn từ Amazon S3, giúp xử lý song song và nhanh chóng. (Kiến thức cập nhật đến 2026: Neptune vẫn ưu tiên bulk loader từ S3 làm phương pháp chuẩn cho dữ liệu >1GB).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Upload the data to Amazon S3 and use the Loader command to load the data from Amazon S3 into the Neptune database.
Lý do chi tiết:
📈 Phương pháp này nhanh nhất vì:
- Neptune Bulk Loader (lệnh
neptune-loader) được thiết kế chuyên biệt để tải dữ liệu lớn từ S3 với hiệu suất cao, hỗ trợ tải song song (parallel), nén dữ liệu và xử lý định dạng RDF/CSV/Gremlin. Với 25GB, nó có thể hoàn thành trong vài phút thay vì hàng giờ. - Quy trình: Upload on-premises → S3 (nhanh nhờ high-throughput), sau đó Loader tự động phân vùng dữ liệu và tải trực tiếp vào Neptune instance.
- Ưu điểm: Tối ưu hóa I/O, không cần code custom, scale tự động. Theo benchmark AWS, tốc độ tải có thể đạt hàng TB/giờ tùy cluster size.
Nguồn tham khảo: 📘 AWS Neptune Bulk Load Tutorial & Neptune Loader IAM (cập nhật 2025).
🔍 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 bằng tiếng Anh), với lý do đúng/sai bằng tiếng Việt:
-
✅ Upload the data to Amazon S3 and use the Loader command to load the data from Amazon S3 into the Neptune database.
🏆 Đúng và nhanh nhất như đã giải thích ở trên. Đây là best practice của AWS cho bulk loading vào Neptune, hỗ trợ định dạng chuẩn (CSV, RDF, etc.) và tích hợp IAM roles cho bảo mật. -
❌ Write a utility to read the data from the on-premises storage and run INSERT statements in a loop to load the data into the Neptune database.
🚫 Sai, rất chậm. INSERT từng dòng qua loop (ví dụ Gremlin hoặc SPARQL) chỉ phù hợp dữ liệu nhỏ (<1GB). Với 25GB, sẽ mất hàng giờ/ngày do overhead mạng, transaction log và single-threaded. Không scale, dễ timeout và tốn tài nguyên CPU/RAM Neptune. -
❌ Use the AWS CLI to load the data directly from the on-premises storage into the Neptune database.
🚫 Sai, không khả thi. AWS CLI không có lệnh trực tiếp load dữ liệu từ on-premises vào Neptune (chỉ hỗ trợ query/manage DB). Không có endpoint bulk load trực tiếp, dẫn đến thất bại hoặc phải dùng workaround chậm chạp. -
❌ Use AWS DataSync to load the data directly from the on-premises storage into the Neptune database.
🚫 Sai, không hỗ trợ trực tiếp. DataSync dùng để sync file từ on-premises → S3/EFS/FSx, không load trực tiếp vào Neptune (Neptune là DB engine, không phải file storage). Phải qua S3 rồi Loader mới được, nhưng không "directly" và không nhanh bằng Loader thuần.
📚 Tài liệu tham khảo bổ sung
- 📘 Amazon Neptune Best Practices – Nhấn mạnh S3 + Loader cho dữ liệu lớn.
- 🛠️ AWS Neptune Developer Guide (2026 edition).
- 🔗 Benchmark: Neptune cluster dc2.8xlarge có thể load 25GB RDF trong <10 phút từ S3.
Hy vọng phân tích này giúp bạn ôn thi DOP-C02 hiệu quả! 🚀