AWS
Amazon's cloud platform, offering a large range of services for computing, storage, databases and more.
Amazon Web Services is a cloud computing platform. It provides services covering computing, storage, databases, networking, analytics and many other areas, charged according to use. Resources are created through an interface, a command line tool or configuration files, and are available in data centres across many regions.
What renting infrastructure changes
Before cloud platforms, capacity was a purchase. Servers were specified, ordered, delivered, installed and configured, on a timescale of weeks or months.
The consequence was that capacity had to be predicted in advance, and predictions were made generously because running out was worse than over provisioning. Organisations owned hardware sized for a peak that arrived rarely.
Cloud platforms change this to a request. Capacity is created when needed and released when not.
That is the fundamental shift, and everything else about these platforms follows from it.
Breadth, and what it means
AWS offers a very large number of services, covering computing, storage, databases, networking, analytics, machine learning and much more.
The breadth is genuinely useful. Most requirements have a service, so infrastructure that would have to be built and operated is instead consumed.
It is also the platform's most confusing characteristic. Several services frequently address overlapping needs, differing in ways that matter for particular cases and are not obvious from the names.
The practical approach is to start from the requirement rather than the catalogue. Deciding what the application actually needs, then finding which service fits, works better than surveying what is available.
Regions and zones
Services run in regions, geographic locations around the world.
Each region contains multiple availability zones, which are separate locations with independent power and networking, close enough for fast connections between them.
The distinction matters for two reasons.
Resilience. An architecture spanning zones survives the loss of one. This is the standard arrangement for anything that must stay available, and it is a design decision rather than something provided automatically.
Location requirements. Where data may be held is a constraint for many organisations, and choosing a region is how it is satisfied.
Access control
Policies govern what each identity may do, attached to users, roles and resources.
This is one of the more intricate parts of the platform and one of the most consequential.
Policies that are too restrictive break applications in ways that are confusing to diagnose. Policies that are too permissive create exposure, and the exposure is invisible until something goes wrong.
The principle worth applying is granting what is actually needed rather than what is convenient. Broad permissions granted to get something working, and never narrowed afterwards, are a recurring pattern that deserves resisting.
AWS publishes guidance on this, and it is worth reading properly rather than learning by trial.
Cost
Charging follows use, and each service has its own model covering compute time, storage, requests and data transfer.
Two things surprise people consistently.
Costs accumulate from many small sources. No single item is large, and the total is larger than expected because there are many items.
Data transfer is frequently underestimated. Moving data between regions, or out of the platform, is charged, and architectures that move a great deal of data can find this a significant proportion of the bill.
Cost management deserves setting up deliberately: tagging resources so spending can be attributed, alerts on unexpected increases, and periodic review of what is running. Doing this early is far easier than reducing spend afterwards.
The commitment question
How committed an organisation becomes depends on what it uses.
Virtual machines running standard software are relatively portable. The same software runs elsewhere.
Services specific to the platform provide more capability and less portability. Building on them means moving would be substantial work.
Neither position is wrong. Using managed services rather than building equivalents is frequently the right decision, and it should be made knowingly rather than discovered later.
Who uses it
AWS is used by platform engineers, infrastructure teams, developers and data teams. It is used by organisations of every size, from those running a single application to those operating their entire estate on it.
Points to consider
AWS is a commercial platform and the official documentation is the reference for services, pricing and limits, all of which change frequently.
Access control deserves proper study. It is where the most consequential mistakes are made.
Cost requires active management rather than periodic surprise. Controls and visibility should be in place before usage grows.
Service breadth means choosing well matters. Understanding the differences between similar services prevents building on one that does not quite fit.
Getting started
The official documentation covers every service along with guidance on architecture and security. Starting from a specific requirement, identifying the service that meets it, and reading that service's documentation properly is more effective than attempting to survey the platform.
Key features of AWS
Capabilities described in the official documentation.
A very wide range of services
Computing, storage, databases, networking and many specialised services are available.
Regions and availability zones
Services run in regions worldwide, each containing separate zones for resilience.
Access control through policies
What each identity may do is governed by policies attached to users, roles and resources.
Programmatic resource management
Resources are created and managed through interfaces, so infrastructure can be defined in code.
Advantages of AWS
Factual advantages that follow from the features above.
Capacity requires no procurement
Resources are created when needed rather than being purchased and installed in advance.
Failures can be planned for
Separate availability zones allow architectures that survive the loss of one location.
Most requirements have a service
The breadth of the platform means common needs are met without building infrastructure.
Infrastructure can be defined as code
Programmatic management means environments are described in files rather than configured by hand.
Common use cases for AWS
Situations the official documentation describes this tool as being used for.
Hosting applications and services
Applications run on cloud computing services rather than on hardware an organisation owns.
Storing data at scale
Object storage holds large volumes of data for applications and analytics.
Running managed databases
Databases are operated by the provider rather than installed and maintained by a team.
Building analytics platforms
Storage, processing and warehouse services are combined into a data platform.
Official website
Everything on this page is based on the official documentation for AWS. You can read the source here.
AWS official documentation