Introduction |
|
xxvi | |
Chapter 1 Understanding the Foundations of AWS |
|
3 | (26) |
|
Essential Characteristics of AWS Cloud Computing |
|
|
4 | (4) |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
8 | (7) |
|
Infrastructure as a Service (IaaS) |
|
|
10 | (2) |
|
Platform as a Service (PaaS) |
|
|
12 | (3) |
|
Operational Benefits of AWS |
|
|
15 | (2) |
|
Cloud Provider Limitations |
|
|
17 | (1) |
|
|
18 | (4) |
|
|
19 | (1) |
|
Application Security at AWS |
|
|
19 | (1) |
|
Playing in the AWS Sandbox |
|
|
20 | (1) |
|
Determining What Problem Needs to Be Solved |
|
|
21 | (1) |
|
|
22 | (2) |
|
Applications That Can Be Moved to AWS and Hosted on an EC2 Instance with No Changes |
|
|
23 | (1) |
|
Applications with Many Local Dependencies That Cause Problems When Being Moved to the Cloud |
|
|
23 | (1) |
|
Replacing an Existing Application with a SaaS Application Hosted by a Public Cloud Provider |
|
|
24 | (1) |
|
Applications That Should Remain on Premises and Eventually Be Deprecated |
|
|
24 | (1) |
|
The AWS Well-Architected Framework |
|
|
24 | (3) |
|
The Well-Architected Tool |
|
|
26 | (1) |
|
|
27 | (2) |
Chapter 2 Designing Multi-Tier Architecture Solutions |
|
29 | (56) |
|
"Do I Know This Already?" Quiz |
|
|
30 | (3) |
|
|
33 | (1) |
|
Availability and Reliability |
|
|
33 | (3) |
|
Availability in the Cloud |
|
|
34 | (1) |
|
|
35 | (1) |
|
AWS Regions and Availability Zones |
|
|
36 | (7) |
|
|
39 | (1) |
|
Availability Zone Distribution |
|
|
40 | (2) |
|
Multiple Availability Zones |
|
|
42 | (1) |
|
|
43 | (13) |
|
|
44 | (1) |
|
Understanding Compliance Rules at AWS |
|
|
45 | (3) |
|
The Shared Responsibility Model |
|
|
48 | (1) |
|
|
48 | (2) |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
53 | (1) |
|
Services Offered in Each AWS Region |
|
|
54 | (1) |
|
|
55 | (1) |
|
Multi-Tier Architecture Solutions |
|
|
56 | (7) |
|
Resilient VPC Architecture |
|
|
56 | (2) |
|
Design Problems to Overcome |
|
|
58 | (3) |
|
Multi-Tier Data Redundancy |
|
|
61 | (1) |
|
Protecting Against Application Failure |
|
|
62 | (1) |
|
AWS Global Services: Edge Locations |
|
|
63 | (17) |
|
Services Located at the Edge |
|
|
64 | (1) |
|
|
64 | (7) |
|
AWS Shield (Standard and Advanced) |
|
|
71 | (1) |
|
Web Application Firewall (WAF) |
|
|
72 | (1) |
|
|
73 | (5) |
|
|
78 | (2) |
|
|
80 | (1) |
|
|
81 | (1) |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
82 | (3) |
Chapter 3 Highly Available and Fault-Tolerant Architectures |
|
85 | (50) |
|
"Do I Know This Already?" Quiz |
|
|
85 | (3) |
|
|
88 | (1) |
|
Comparing Architecture Designs |
|
|
88 | (6) |
|
Designing for High Availability |
|
|
88 | (2) |
|
|
90 | (1) |
|
Removing Single Points of Failure |
|
|
91 | (3) |
|
Disaster Recovery and Business Continuity |
|
|
94 | (9) |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
96 | (3) |
|
|
99 | (1) |
|
Multi-Region Active-Active Application Deployment |
|
|
100 | (2) |
|
The AWS Service-Level Agreement (SLA) |
|
|
102 | (1) |
|
Automating AWS Architecture |
|
|
103 | (14) |
|
Automating Infrastructure with CloudFormation |
|
|
105 | (2) |
|
CloudFormation Components |
|
|
107 | (1) |
|
|
107 | (2) |
|
|
109 | (4) |
|
CloudFormation Stack Sets |
|
|
113 | (1) |
|
|
114 | (1) |
|
|
115 | (2) |
|
|
117 | (4) |
|
Updating Elastic Beanstalk Applications |
|
|
119 | (2) |
|
|
121 | (10) |
|
Rule 1: Use One Codebase That Is Tracked with Version Control to Allow Many Deployments |
|
|
123 | (1) |
|
|
124 | (1) |
|
Rule 2: Explicitly Declare and Isolate Dependencies |
|
|
125 | (1) |
|
Rule 3: Store Configuration in the Environment |
|
|
126 | (1) |
|
Rule 4: Treat Backing Services as Attached Resources |
|
|
126 | (1) |
|
Rule 5: Separate the Build and Run Stages |
|
|
127 | (1) |
|
Rule 6: Execute an App as One or More Stateless Processes |
|
|
128 | (1) |
|
Rule 7: Export Services via Port Binding |
|
|
129 | (1) |
|
Rule 8: Scale Out via the Process Model |
|
|
129 | (1) |
|
Rule 9: Maximize Robustness with Fast Startup and Graceful Shutdown |
|
|
130 | (1) |
|
Rule 10: Keep Development, Staging, and Production as Similar as Possible |
|
|
130 | (1) |
|
Rule 11: Treat Logs as Event Streams |
|
|
131 | (1) |
|
Rule 12: Run Admin/Management Tasks as One-Off Processes |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
132 | (1) |
|
|
132 | (3) |
Chapter 4 Decoupling Mechanisms Using AWS Services |
|
135 | (34) |
|
"Do I Know This Already?" Quiz |
|
|
135 | (3) |
|
|
138 | (1) |
|
|
138 | (6) |
|
Changing User State Locations |
|
|
140 | (2) |
|
|
142 | (2) |
|
Application Integration Services |
|
|
144 | (8) |
|
|
144 | (3) |
|
|
147 | (1) |
|
|
147 | (2) |
|
|
149 | (1) |
|
|
149 | (3) |
|
|
152 | (4) |
|
|
156 | (1) |
|
|
156 | (4) |
|
|
160 | (1) |
|
Building a Serverless Web App |
|
|
160 | (5) |
|
Step 1: Create a Static Website |
|
|
161 | (1) |
|
Step 2: Handle User Authentication |
|
|
162 | (1) |
|
Step 3: Create the Serverless Backend Components |
|
|
162 | (1) |
|
Step 4: Set Up the API Gateway |
|
|
163 | (1) |
|
Step 5: Register for Conference |
|
|
164 | (1) |
|
|
165 | (1) |
|
|
165 | (1) |
|
|
166 | (1) |
|
|
166 | (3) |
Chapter 5 Choosing Resilient Storage |
|
169 | (44) |
|
|
170 | (4) |
|
|
174 | (1) |
|
|
174 | (3) |
|
Workload Storage Requirements |
|
|
176 | (1) |
|
Elastic Block Storage (EBS) |
|
|
177 | (10) |
|
|
178 | (2) |
|
General-Purpose SSD (gp2/gp3) |
|
|
180 | (2) |
|
|
182 | (1) |
|
|
182 | (1) |
|
|
183 | (1) |
|
|
184 | (1) |
|
Taking a Snapshot from a Linux Instance |
|
|
184 | (1) |
|
Taking a Snapshot from a Windows Instance |
|
|
185 | (1) |
|
|
185 | (1) |
|
|
186 | (1) |
|
|
186 | (1) |
|
Elastic File System (EFS) |
|
|
187 | (4) |
|
|
188 | (1) |
|
|
188 | (1) |
|
|
189 | (1) |
|
|
190 | (1) |
|
|
191 | (1) |
|
|
191 | (1) |
|
FSx for Windows File Server |
|
|
191 | (3) |
|
Simple Storage Service (S3) |
|
|
194 | (13) |
|
Buckets, Objects, and Keys |
|
|
196 | (2) |
|
|
198 | (1) |
|
|
198 | (2) |
|
|
200 | (4) |
|
|
204 | (1) |
|
|
205 | (1) |
|
|
206 | (1) |
|
S3 Glacier Storage Options |
|
|
207 | (1) |
|
|
207 | (2) |
|
|
208 | (1) |
|
|
208 | (1) |
|
|
209 | (1) |
|
|
209 | (1) |
|
|
210 | (1) |
|
|
211 | (1) |
|
|
211 | (2) |
Chapter 6 Designing High-Performing Compute Architecture |
|
213 | (88) |
|
|
213 | (4) |
|
|
217 | (1) |
|
|
217 | (16) |
|
|
218 | (1) |
|
|
219 | (1) |
|
|
220 | (1) |
|
|
221 | (1) |
|
General-Purpose Instances |
|
|
221 | (1) |
|
Instances Designed to Burst |
|
|
221 | (2) |
|
Compute-Optimized Instances |
|
|
223 | (1) |
|
Memory-Optimized Instances |
|
|
223 | (1) |
|
|
223 | (1) |
|
|
223 | (1) |
|
|
224 | (1) |
|
Accelerated Computing Instances |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
224 | (1) |
|
Storage-Optimized Instances |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
225 | (1) |
|
Dedicated Hosts Cheat Sheet |
|
|
226 | (1) |
|
|
226 | (1) |
|
|
226 | (2) |
|
|
228 | (1) |
|
Changing the Current Instance Type |
|
|
229 | (3) |
|
|
232 | (1) |
|
Amazon Machine Images (AMIs) |
|
|
233 | (9) |
|
|
235 | (1) |
|
|
235 | (1) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
237 | (1) |
|
Instance Store-Backed Windows or Linux AMIs |
|
|
238 | (1) |
|
Custom Instance Store AMIs |
|
|
239 | (1) |
|
|
240 | (2) |
|
Elastic Container Service (ECS) |
|
|
242 | (5) |
|
Amazon Elastic Container Service (ECS) |
|
|
244 | (1) |
|
|
245 | (1) |
|
AWS ECS for Kubernetes (EKS) |
|
|
246 | (1) |
|
Monitoring with CloudWatch |
|
|
247 | (17) |
|
CloudWatch Basic Monitoring |
|
|
249 | (1) |
|
|
250 | (3) |
|
Collecting Data with the CloudWatch Agent |
|
|
253 | (1) |
|
|
253 | (2) |
|
|
255 | (2) |
|
|
257 | (5) |
|
Creating a CloudWatch Alarm |
|
|
262 | (1) |
|
Additional Alarm and Action Settings |
|
|
263 | (1) |
|
|
264 | (1) |
|
Elastic Load Balancing (ELB) Services |
|
|
264 | (21) |
|
|
267 | (1) |
|
|
268 | (1) |
|
|
269 | (1) |
|
Classic Load Balancer (CLB) |
|
|
269 | (1) |
|
Application Load Balancer (ALB) |
|
|
270 | (1) |
|
|
271 | (1) |
|
|
271 | (1) |
|
Big-Picture Steps: ALB Creation |
|
|
272 | (2) |
|
|
274 | (2) |
|
HTTPS Listener Security Settings |
|
|
276 | (1) |
|
|
277 | (1) |
|
|
277 | (1) |
|
Maintaining User Sessions |
|
|
278 | (1) |
|
|
278 | (1) |
|
Configuring Health Checks |
|
|
279 | (1) |
|
|
280 | (3) |
|
Monitoring Load Balancer Operation |
|
|
283 | (1) |
|
|
283 | (1) |
|
|
284 | (1) |
|
|
284 | (1) |
|
|
285 | (1) |
|
|
285 | (13) |
|
EC2 Auto Scaling Cheat Sheet |
|
|
289 | (1) |
|
EC2 Auto Scaling Operation |
|
|
289 | (1) |
|
|
290 | (1) |
|
|
290 | (1) |
|
Auto Scaling Groups (ASGs) |
|
|
291 | (1) |
|
Scaling Options for Auto Scaling Groups |
|
|
292 | (4) |
|
|
296 | (1) |
|
|
296 | (1) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
298 | (1) |
|
|
299 | (1) |
|
|
299 | (2) |
Chapter 7 Choosing High-Performing and Scalable Storage Solutions |
|
301 | (28) |
|
|
301 | (3) |
|
|
304 | (1) |
|
Elastic Block Storage (Provisioned IOPS) |
|
|
304 | (2) |
|
|
304 | (1) |
|
Storage-Optimized EC2 Instances |
|
|
305 | (1) |
|
Shared File Storage at AWS |
|
|
306 | (13) |
|
Elastic File System (EFS) |
|
|
307 | (2) |
|
|
309 | (1) |
|
|
310 | (1) |
|
|
311 | (1) |
|
|
312 | (1) |
|
|
312 | (1) |
|
|
313 | (2) |
|
Amazon FSx for Windows File Server |
|
|
315 | (1) |
|
FSx File System Performance |
|
|
316 | (1) |
|
|
317 | (1) |
|
|
317 | (1) |
|
FSx for Lustre Cheat Sheet |
|
|
318 | (1) |
|
AWS Data Transfer Options |
|
|
319 | (3) |
|
AWS Storage Gateway Family |
|
|
322 | (2) |
|
AWS Storage Gateway Cheat Sheet |
|
|
324 | (1) |
|
|
324 | (1) |
|
|
324 | (1) |
|
|
325 | (1) |
|
|
325 | (4) |
Chapter 8 Selecting Networking Solutions for Workloads |
|
329 | (84) |
|
|
329 | (5) |
|
|
334 | (1) |
|
|
334 | (20) |
|
|
335 | (2) |
|
|
337 | (1) |
|
|
338 | (1) |
|
What's Behind the Networking Curtain? |
|
|
339 | (2) |
|
It's All About Packet Flow |
|
|
341 | (2) |
|
|
343 | (1) |
|
|
344 | (1) |
|
Using the Create VPC Wizard |
|
|
344 | (1) |
|
Using the Launch VPC Wizard |
|
|
345 | (2) |
|
Using the AWS CLI to Create a VPC |
|
|
347 | (1) |
|
How Many VPCs Do You Need? |
|
|
347 | (2) |
|
Creating the VPC CIDR Block |
|
|
349 | (1) |
|
Planning Your Primary VPC CIDR Block |
|
|
349 | (2) |
|
Adding a Secondary CIDR Block |
|
|
351 | (1) |
|
|
352 | (1) |
|
Revisiting Availability Zones |
|
|
353 | (1) |
|
|
354 | (2) |
|
|
355 | (1) |
|
|
356 | (5) |
|
|
357 | (1) |
|
|
357 | (3) |
|
|
360 | (1) |
|
|
360 | (1) |
|
|
361 | (10) |
|
|
361 | (1) |
|
Private IP Address Summary |
|
|
362 | (1) |
|
|
362 | (2) |
|
|
364 | (2) |
|
Public IPv4 Address Cheat Sheet |
|
|
366 | (1) |
|
Inbound and Outbound Traffic Charges |
|
|
367 | (1) |
|
Bring-Your-Own IP (BYOIP) |
|
|
368 | (1) |
|
|
369 | (1) |
|
|
370 | (1) |
|
|
371 | (8) |
|
Security Group Cheat Sheet |
|
|
374 | (1) |
|
|
374 | (1) |
|
Application Server Inbound Ports |
|
|
375 | (1) |
|
Database Server Inbound Ports |
|
|
376 | (1) |
|
|
376 | (1) |
|
|
377 | (1) |
|
Elastic Load Balancing (ELB) |
|
|
377 | (1) |
|
|
378 | (1) |
|
|
379 | (8) |
|
Network ACL Implementation Details |
|
|
380 | (1) |
|
|
380 | (1) |
|
Network ACL Rule Processing |
|
|
381 | (2) |
|
Understanding Ephemeral Ports |
|
|
383 | (2) |
|
|
385 | (1) |
|
|
385 | (2) |
|
|
387 | (8) |
|
|
387 | (1) |
|
Establishing a Peering Connection |
|
|
388 | (2) |
|
|
390 | (1) |
|
|
391 | (1) |
|
|
392 | (1) |
|
Endpoint Services with PrivateLink |
|
|
393 | (2) |
|
|
395 | (14) |
|
Internet Gateway: The Public Door |
|
|
396 | (1) |
|
Internet Gateway Cheat Sheet |
|
|
397 | (1) |
|
Egress-Only Internet Gateway |
|
|
398 | (1) |
|
|
399 | (1) |
|
|
399 | (1) |
|
|
400 | (1) |
|
|
401 | (1) |
|
|
401 | (3) |
|
|
404 | (1) |
|
|
404 | (2) |
|
|
406 | (1) |
|
Understanding Route Propagation |
|
|
406 | (1) |
|
|
407 | (1) |
|
Direct Connect Cheat Sheet |
|
|
408 | (1) |
|
|
409 | (1) |
|
|
410 | (1) |
|
|
411 | (1) |
|
|
411 | (2) |
Chapter 9 Designing High-Performing Database Solutions |
|
413 | (40) |
|
|
413 | (4) |
|
|
417 | (1) |
|
Relational Database Service (RDS) |
|
|
417 | (10) |
|
|
418 | (2) |
|
Database Instance Class Types |
|
|
420 | (1) |
|
High-Availability Design for RDS |
|
|
420 | (3) |
|
|
423 | (1) |
|
Big-Picture RDS Installation Steps |
|
|
423 | (2) |
|
Monitoring Database Performance |
|
|
425 | (1) |
|
|
425 | (1) |
|
|
426 | (1) |
|
|
427 | (6) |
|
|
429 | (3) |
|
Communicating with Aurora |
|
|
432 | (1) |
|
|
433 | (1) |
|
|
433 | (12) |
|
|
435 | (2) |
|
|
437 | (1) |
|
Provisioning Table Capacity |
|
|
438 | (1) |
|
|
439 | (2) |
|
|
441 | (1) |
|
|
442 | (1) |
|
|
443 | (1) |
|
DynamoDB Accelerator (DAX) |
|
|
444 | (1) |
|
|
445 | (1) |
|
|
445 | (2) |
|
|
447 | (1) |
|
|
447 | (1) |
|
|
447 | (2) |
|
|
449 | (1) |
|
|
449 | (1) |
|
|
450 | (1) |
|
|
450 | (3) |
Chapter 10 Securing AWS Resources |
|
453 | (64) |
|
|
454 | (3) |
|
|
457 | (1) |
|
Identity and Access Management (IANI) |
|
|
457 | (10) |
|
|
460 | (1) |
|
|
461 | (3) |
|
Requesting Access to AWS Resources |
|
|
464 | (1) |
|
The Authorization Process |
|
|
465 | (1) |
|
|
466 | (1) |
|
|
467 | (12) |
|
|
468 | (2) |
|
|
470 | (1) |
|
|
471 | (1) |
|
|
472 | (2) |
|
|
474 | (1) |
|
Signing In as an IAM User |
|
|
474 | (1) |
|
|
475 | (1) |
|
Creating a Password Policy |
|
|
476 | (1) |
|
|
477 | (2) |
|
Using Multifactor Authentication (MFA) |
|
|
479 | (1) |
|
|
479 | (17) |
|
|
479 | (1) |
|
|
480 | (2) |
|
|
482 | (1) |
|
|
483 | (1) |
|
|
484 | (1) |
|
|
484 | (2) |
|
Reading a Simple JSON Policy |
|
|
486 | (2) |
|
|
488 | (1) |
|
Additional Policy Control Options |
|
|
489 | (3) |
|
Reviewing Policy Permissions |
|
|
492 | (1) |
|
|
493 | (1) |
|
Using Conditional Elements |
|
|
494 | (1) |
|
Using Tags with IAM Identities |
|
|
495 | (1) |
|
|
496 | (13) |
|
|
497 | (1) |
|
Using Roles When AWS Services Perform Actions on Your Behalf |
|
|
497 | (1) |
|
Using Roles for EC2 Instances Hosting Applications That Need Access to AWS Resources |
|
|
497 | (2) |
|
Using Roles with Mobile Applications |
|
|
499 | (1) |
|
Cross-Account Access to AWS Resources |
|
|
499 | (2) |
|
AWS Security Token Service (STS) |
|
|
501 | (2) |
|
|
503 | (1) |
|
|
503 | (3) |
|
|
506 | (1) |
|
|
507 | (2) |
|
|
509 | (2) |
|
AWS Organizations Cheat Sheet |
|
|
510 | (1) |
|
AWS Resource Access Manager (RAM) |
|
|
511 | (2) |
|
|
513 | (1) |
|
|
513 | (1) |
|
|
514 | (1) |
|
|
514 | (3) |
Chapter 11 Securing Application Tiers |
|
517 | (14) |
|
|
518 | (2) |
|
|
520 | (1) |
|
|
520 | (3) |
|
Creating a CloudWatch Trail |
|
|
521 | (1) |
|
|
522 | (1) |
|
Essential AWS Management Tools |
|
|
523 | (5) |
|
|
523 | (1) |
|
|
524 | (1) |
|
|
525 | (1) |
|
|
526 | (2) |
|
|
528 | (1) |
|
|
528 | (1) |
|
|
529 | (1) |
|
|
529 | (2) |
Chapter 12 Selecting Appropriate Data Security Options |
|
531 | (20) |
|
|
532 | (3) |
|
|
535 | (1) |
|
|
535 | (3) |
|
|
538 | (5) |
|
|
540 | (2) |
|
|
542 | (1) |
|
|
542 | (1) |
|
S3 Glacier Storage at Rest |
|
|
543 | (1) |
|
Key Management Service (KMS) |
|
|
543 | (3) |
|
|
544 | (1) |
|
|
545 | (1) |
|
|
545 | (1) |
|
Amazon Certificate Manager (ACM) |
|
|
546 | (1) |
|
|
547 | (1) |
|
|
547 | (1) |
|
|
547 | (1) |
|
|
548 | (3) |
Chapter 13 Designing Cost-Effective Solutions |
|
551 | (52) |
|
|
551 | (4) |
|
|
555 | (1) |
|
|
555 | (3) |
|
|
556 | (1) |
|
Understanding Tiered Pricing at AWS |
|
|
557 | (1) |
|
|
558 | (17) |
|
|
559 | (1) |
|
On-Demand Instance Limits |
|
|
560 | (2) |
|
|
562 | (1) |
|
|
563 | (1) |
|
|
564 | (1) |
|
EC2 Reserved Instance Types |
|
|
564 | (1) |
|
Scheduled Reserved EC2 Instances |
|
|
565 | (1) |
|
Regional and Zonal Reserved Instances |
|
|
565 | (2) |
|
|
567 | (1) |
|
|
568 | (3) |
|
Spot Fleet Optimization Strategies |
|
|
571 | (1) |
|
|
572 | (1) |
|
|
573 | (2) |
|
|
575 | (1) |
|
|
575 | (6) |
|
Tagging EBS Volumes and Snapshots |
|
|
578 | (1) |
|
|
579 | (1) |
|
Storage Performance Comparison |
|
|
579 | (2) |
|
|
581 | (3) |
|
Database Design Solutions |
|
|
582 | (2) |
|
|
584 | (8) |
|
|
587 | (1) |
|
Public Versus Private Traffic Charges |
|
|
588 | (2) |
|
Data Transfer Costs Cheat Sheet |
|
|
590 | (1) |
|
Management Tool Pricing Example: AWS Config |
|
|
590 | (1) |
|
|
591 | (1) |
|
|
592 | (8) |
|
|
593 | (2) |
|
|
595 | (2) |
|
|
597 | (2) |
|
|
599 | (1) |
|
Managing Costs Cheat Sheet |
|
|
599 | (1) |
|
|
600 | (1) |
|
|
600 | (1) |
|
|
601 | (1) |
|
|
601 | (2) |
Chapter 14 Final Preparation |
|
603 | (12) |
|
|
603 | (3) |
|
Tips for Getting Ready for the Exam |
|
|
606 | (2) |
|
|
608 | (1) |
|
Tools for Final Preparation |
|
|
609 | (4) |
|
Pearson Test Prep Practice Test Software and Questions on the Website |
|
|
609 | (1) |
|
Accessing the Pearson Test Prep Software Online |
|
|
609 | (1) |
|
Accessing the Pearson Test Prep Software Offline |
|
|
610 | (1) |
|
|
611 | (1) |
|
|
612 | (1) |
|
|
612 | (1) |
|
Chapter-Ending Review Tools |
|
|
613 | (1) |
|
Suggested Plan for Final Review/Study |
|
|
613 | (1) |
|
|
613 | (2) |
Glossary of Key Terms |
|
615 | (8) |
Appendix A Answers to the "Do I Know This Already?" Quizzes and Q&A Sections |
|
623 | (16) |
Appendix B AWS Certified Solutions Architect - Associate (SAA-CO2) Cert Guide Exam Updates |
|
639 | (2) |
Index |
|
641 | |