Amazon Web Services (AWS) is a platform of network-accessible services for computing, storage, and networking. It offers different levels of control: you can install software on a virtual machine or use a managed service through an API. Resources are available on demand, and charges generally depend on use. section 1.1 section 1.0
Choose services according to the job they need to do:
- Run custom applications on Amazon EC2 virtual machines; store and retrieve files with Amazon S3. section 1.1
- Use managed services for common needs such as databases, load balancing, queuing, and email rather than operating every component yourself. section 1.3.2 section 1.2.1
- Place resources in a suitable AWS data center location to serve customers or connect an application to an existing corporate network. section 1.1 section 1.2.2
Move a web shop beyond a single server
A web shop can run its application on several smaller virtual machines behind a load balancer. A content delivery network serves static content, while a managed database stores application data. If one web server fails, the load balancer can direct requests to the others. This improves reliability and performance, but adds services whose usage must be monitored. section 1.2.1 section 1.4.2
Figure 1.3 Running a web shop on AWS with CDN for better performance, a load balancer for high availability, and a managed database to decrease maintenance costs
Compare the roles of the content delivery network, load balancer, web servers, and managed database in the web shop. section 1.2.1
AWS services are accessed through APIs. To configure them, use the Management Console, a command-line interface, an SDK, or infrastructure blueprints. A virtual machine also permits administrator access for installing software; a managed database instead exposes its functions while hiding much of its underlying operation. section 1.7 section 1.6
Connect an enterprise application
An enterprise application can run on virtual machines in an AWS virtual network connected to a corporate network by VPN. Separate application servers and the SQL database into subnets, then control traffic with access-control lists and firewall rules. This retains a private-network arrangement while making infrastructure available on demand. section 1.2.2
Pay-per-use is not a fixed monthly price. Charges can depend on running time, traffic, requests, or storage; a busier web shop may cost more. Estimate a design with the AWS Pricing Calculator, and check Free Tier limits before experimenting: exceeding them can incur charges. section 1.4 section 1.4.1
Set a cost warning before leaving resources running:
- Enable Free Tier usage alerts in billing preferences and provide an email address. section 1.9
- In Management Console Budgets, create a monthly cost budget and add email thresholds for actual and forecasted spending. section 1.9

