idempotent state transitions 444 – 445
implementing fault-tolerant web services 445 – 451
creating Imagery processes 446 – 448
looking up Imagery processes 448 – 449
setting up web server project 446
implementing fault-tolerant workers to consume SQS messages 451 – 454
handling SQS messages and processing images 453 – 454
imagery-image DynamoDB table 454
IMDS (instance metadata service) 142
anatomy of templates 122 – 126
updating infrastructure using 131 – 132
Infrastructure as Code 118 – 121
controlling virtual machines 112 – 113
creating virtual machines 113 – 116
listing virtual machines and showing details 116 – 117
terminating virtual machines 117 – 118
internet-facing load balancer 46
IOPS (Input/output operations per second) 233, 255
IoT (Internet of Things) 173, 202 – 203
allowing HTTP traffic from specific source IP addresses 155 – 156
public, allocating for virtual machines 83 – 85
Java EE applications, running in private networks 7 – 8
JIML (JSON Infrastructure Markup Language) 118 – 121
key pairs, configuring for virtual machines 64 – 65
adding tags containing owner of EC2 instances 190 – 198
authorizing Lambda functions to use other AWS services with IAM roles 196 – 197
deploying Lambda functions with SAM 197 – 198
implementing Lambda functions in Python 193 – 195
setting up Lambda functions with SAM 195 – 196
subscribing to EventBridge events 191 – 193
impacts of serverless pricing model 199 – 201
website health check example 176 – 189
accessing endpoints within VPCs 189
creating Lambda functions 177 – 181
monitoring Lambda functions with CloudWatch metrics and alarms 184 – 189
searching through Lambda function logs with CloudWatch 181 – 184
Imagery applications 459 – 461
setting up with virtual machines 394 – 399
synchronous decoupling with 393 – 399
M6g and M6gd Graviton instance types 64
MasterUserPassword attribute 268
max I/O mode performance mode 255
cache deployment options 302 – 308
creating cache clusters 298 – 302
minimal CloudFormation template 298 – 300
testing Redis cluster 300 – 302
installing sample application with CloudFormation 311 – 319
updating Redis replication 320 – 321
Redis with persistence 306 – 308
tweaking performance 321 – 323
selecting cache node type 321 – 322
selecting deployment option 322 – 323
memorydb-minimal stack 307 – 308
message queues, asynchronous decoupling with 399 – 408
architecture of URL2PNG application 401 – 402
consuming messages programmatically 404 – 407
limitations of messaging with SQS 407 – 408
producing messages programmatically 402 – 404
turning synchronous process into asynchronous one 400 – 401
MFA (Multi-Factor Authentication) 142 – 143
options to run containers on AWS 491 – 494
running without managing clusters of virtual machines 496 – 498
virtual machines vs. 490 – 491
updating Redis replication 320 – 321
monitoring databases 290 – 291
monitoring virtual machines 73 – 76
Multi-Factor Authentication (MFA) 142 – 143
MySQL databases 47 – 49, 267 – 271
exploring RDS database instances with MySQL engine 270 – 271
launching WordPress platforms 268 – 270
NACLs (network access control lists) 158
NAT gateways, accessing internet from private subnets via 167 – 171
NAT (network address translation) 8, 160
NetworkInterfaces parameter 469
network traffic control 150 – 158
from source security groups 156 – 158
from specific source IP addresses 155 – 156
allowing ICMP traffic 153 – 154
NFS (network filesystem) 50, 377
NLB (Network Load Balancer) 394
nodecc (Node Control Center for AWS) 112 – 113
creating virtual machines 113 – 116
listing virtual machines and showing details 116 – 117
terminating virtual machines 117 – 118
Node.js in Action, second edition (Young) 112, 217, 334, 403
Node.js in Motion (Evans) 112, 217, 334, 403
noeviction eviction strategy 320
NoSQL database service programming
identifying tasks by partition key and sort key 332 – 333
identifying users by partition key 330 – 331
partition key and sort key 348 – 349
eventually consistent data retrieval 345 – 346
getting items by key 337 – 338
global secondary indexes 341 – 344
querying items by key and filter 338 – 341
scanning and filtering all table data 344 – 345
SQL-like queries with PartiQL 349
to-do application example overview 328
one-time actions load pattern 473
selecting for virtual machines 60 – 62
Outputs property, AWS CloudFormat template 126
P, G, and CG instance family 63
PaaS (Platform as a Service) 4
deploying customized AMIs created by 422 – 429
Parameter properties, AWS CloudFormat template 124
PartiQL, SQL-like queries with 349
identifying users by 330 – 331
identifying tasks by 332 – 333
PCI (payment card industry) 13
PercentIOLimit metric 256, 258
performance modes, in EFS 255 – 256
Platform as a Service (PaaS) 4
POST /image/:id/upload route 446
getting items by key 337 – 338
identifying users by 330 – 331
identifying tasks by 332 – 333
querying items by key and filter 338 – 341
accessing internet from private subnets via NAT gateways 167 – 171
adding private backend subnet 163 – 166
defining public proxy subnet 160 – 163
launching virtual machines in subnets 166 – 167
processed(s3Key) sepia image 444
programmatic storage 216 – 220
installing web applications that use S3 218
reviewing code access S3 with SDK 218 – 220
listing all images in S3 buckets 219 – 220
uploading images to S3 218 – 219
Provisioned Throughput mode, in EFS 257 – 261
provisioned-throughput option 331
ProxyPublicIpAddress output 157, 171
Python, implementing Lambda functions in 193 – 195
query operation 338 – 339, 346
R6gd Graviton instance type 64
RBAC (role-based access control) 309
RDS (Relational Database Service) 20, 39, 47, 266, 389, 432
configuration access 280 – 281
backing up and restoring databases 274 – 279
copying databases to another region 278
highly available databases 283 – 285
importing data into databases 271 – 274
monitoring databases 290 – 291
starting MySQL databases 267 – 271
exploring database instances with MySQL engine 270 – 271
launching WordPress platforms 268 – 270
tweaking database performance 285 – 290
increasing database resources 286 – 287
creating read-replication databases 288 – 289
promoting read replicas to standalone databases 289 – 290
recovery point objective (RPO) 387
recovery time objective (RTO) 387
Recurring actions load pattern 473
with cluster mode disabled 304 – 305
with cluster mode enabled 305 – 306
updating replication 320 – 321
ReplicationLag metric 319 – 321
revision component of CodeDeploy 413
role-based access control (RBAC) 309
RPO (recovery point objective) 387 – 388
RTO (recovery time objective) 387 – 388
S3 (Simple Storage Service) 20
archiving objects to optimize costs 213 – 216
backing up data on S3 with AWS CLI 210 – 213
deploying for Imagery applications 457 – 458
modern architectures 498 – 504
object stores, defined 208 – 209
programmatic storage 216 – 220
installing web applications that use S3 218
reviewing code access S3 with SDK 218 – 220
protecting data from unauthorized access 224 – 225
accessing websites hosted on S3 223
creating buckets and uploading static websites 221
SaaS (Software as a Service) 3 – 4
SAM (Serverless Application Model)
deploying Lambda functions with 197 – 198
setting up Lambda functions with 195 – 196
scan operation, DynamoDB 344 – 346
creating virtual machines 113 – 116
listing virtual machines and showing details 116 – 117
terminating virtual machines 117 – 118
reviewing code access S3 with 218 – 220
listing all images in S3 buckets 219 – 220
uploading images to S3 218 – 219
Amazon Virtual Private Cloud 158 – 171
accessing internet from private subnets via NAT gateways 167 – 171
adding private backend subnet 163 – 166
defining public proxy subnet 160 – 163
launching virtual machines in subnets 166 – 167
authenticating AWS resources with roles 148 – 150
defining permissions with IAM identity policies 145 – 147
IAM service overview 143 – 144
keeping operating system up-to-date 137 – 141
network traffic control 150 – 158
allowing HTTP traffic from source security groups 156 – 158
allowing HTTP traffic from specific source IP addresses 155 – 156
allowing ICMP traffic 153 – 154
protecting data from unauthorized access 224 – 225
allowing HTTP traffic from source security groups 156 – 158
SELECT * FROM table SQL request 271
Serverless Application Model. See SAM
Serverless Architectures on AWS, second edition (Sbarski) 174, 203
service-level agreement (SLA) 389
service-level objective (SLO) 389
SES (Simple Email Service) 316
creating filesystems 246 – 248
using CloudFormation to describe filesystems 246 – 247
creating mount targets 248 – 250
mounting EFS filesystems on EC2 instances 250 – 254
sharing files between EC2 instances 254 – 255
tweaking performance 255 – 261
storage class and performance 261
Simple Email Service (SES) 316
Simple Storage Service. See S3
SLA (service-level agreement) 389
SLO (service-level objective) 389
SNI (Server Name Indication) 85
Software as a Service (SaaS) 4
identifying tasks by 332 – 333
SPOF (single point of failure) 304, 432
SQS (Simple Queue Service) 393, 399 – 408, 432 – 433, 436
architecture of URL2PNG application 401 – 402
consuming messages programmatically 404 – 407
deploying for Imagery applications 457 – 458
implementing fault-tolerant workers to consume messages 451 – 454
handling SQS messages and processing images 453 – 454
limitations of messaging with 407 – 408
producing messages programmatically 402 – 404
turning synchronous process into asynchronous one 400 – 401
SSM (Systems Manager) Patch Manager 138
accessing websites hosted on S3 223
creating buckets and uploading static websites 221
StatusCheckFailed_System metric 364
attaching to virtual machines 65
backing up data with EBS snapshots 235 – 237
creating EBS volumes and attaching to EC2 instances 230
tweaking performance 232 – 235
object stores, defined 208 – 209
archiving objects to optimize costs 213 – 216
backing up data on S3 with AWS CLI 210 – 213
programmatic storage 216 – 220
protecting data from unauthorized access 224 – 225
accessing internet from private subnets via NAT gateways 167 – 171
adding private backend subnet 163 – 166
defining public proxy subnet 160 – 163
launching virtual machines in subnets 166 – 167
synchronous decoupling 392 – 399
Systems Manager (SSM) Patch Manager 138
Systems Performance: Enterprise and the Cloud (Gregg) 320
T4g Graviton instance types 64
identifying tasks by partition key and sort key 332 – 333
identifying users by partition key 330 – 331
scanning and filtering data 344 – 345
TCO (total cost of ownership) 200
throughput modes, in EFS 257 – 261
Bursting Throughput mode 257 – 258
Provisioned Throughput mode 258 – 261
identifying tasks by partition key and sort key 332 – 333
identifying users by partition key 330 – 331
eventually consistent data retrieval 345 – 346
getting items by key 337 – 338
global secondary indexes 341 – 344
querying items by key and filter 338 – 341
scanning and filtering all table data 344 – 345
todo-task table 333, 338, 342, 349
todo-user table 330 – 333, 335, 337, 344
TransactWriteItems API method 346
URL2PNG application example, architecture of 401 – 402
url2png-HighQueueAlarm-* alarm 487
url2png-LowQueueAlarm-* alarm 487
UUID (universally unique identifier) 439
vertical scaling of databases 285, 326
adding additional network interfaces to 85 – 89
allocating public IP addresses 83 – 85
configuring key pair for login 64 – 65
defining network and firewall settings 65
installing and running software manually 72 – 73
installing sample application 315 – 317
launching EC2 instances 69 – 70
launching in subnets 166 – 167
monitoring and debugging 73 – 76
network traffic control 150 – 158
allowing HTTP traffic from source security groups 156 – 158
allowing HTTP traffic from specific source IP addresses 155 – 156
allowing ICMP traffic 153 – 154
creating virtual machines 113 – 116
listing virtual machines and showing details 116 – 117
terminating virtual machines 117 – 118
committing to usage for discount 91 – 92
spare compute capacity 92 – 97
recovering failed virtual machines to availability zones 369 – 375
selecting operating system 60 – 62
setting up load balancers with 394 – 399
creating filesystems 246 – 248
creating mount targets 248 – 250
mounting EFS filesystems on EC2 instances 250 – 254
sharing files between EC2 instances 254 – 255
tweaking performance 255 – 261
starting in another data center 80 – 83
starting with CloudFormation 121 – 132
anatomy of templates 122 – 126
updating infrastructure 131 – 132
VM (virtual machines) 3, 58, 119
volatile-random eviction strategy 320
volatile-ttl eviction strategy 320
VPC (Amazon Virtual Private Cloud) 158 – 171
accessing endpoints within VPCs 189
accessing internet from private subnets via NAT gateways 167 – 171
adding private backend subnet 163 – 166
defining public proxy subnet 160 – 163
launching virtual machines in subnets 166 – 167
network configuration 312 – 313
VpcSecurityGroupIds property 299
VPCZoneIdentifier parameter 470
WebServerSecurityGroup group 281
website health check example 176 – 189
accessing endpoints within VPCs 189
creating Lambda functions 177 – 181
monitoring Lambda functions with CloudWatch metrics and alarms 184 – 189
searching through Lambda function logs with CloudWatch 181 – 184
website-health-check Lambda function 185
creating cloud infrastructure for 39 – 44
deleting infrastructure for 53 – 54
exploring cloud infrastructure for 45 – 50
wordpress-copy-snapshot snapshot 276
wordpress-manual-snapshot snapshot 275, 278
X2gd Graviton instance type 64
Young, Alex 112, 217, 334, 403