The first step on your AWS journey is to establish an AWS account, which is a foundational building block of AWS that defines a security and administrative context for managing your AWS services and resources that you consume. To encourage adoption of AWS and ensure that first time users have an opportunity to try out AWS for free, AWS offers a free tier that grants you free access to some AWS services (with some limitations around usage). You can find out more about the free tier and what services are offered at https://aws.amazon.com/free/. Make sure you have a good understanding of what you can and can't use for free to avoid an unnecessary bill shock.
In this book, we will make use of a number of free tier services with the following monthly usage limits:
Service | Limit |
EC2 | 750 hours of Linux t2.micro (Single vCPU, 1 GB Memory) instance |
Elastic Block Storage | 30 GB block-level storage (SSD or traditional spinning disk) |
RDS | 750 hours of db.t2.micro (Single vCPU, 1 GB Memory) MySQL instance |
Elastic Container Registry | 500 MB of storage |
Elastic Load Balancing | 750 hours of classic or application load balancers |
S3 | 5 GB of S3 storage |
Lambda | 1,000,000 requests |
CloudWatch | 10 custom metrics |
SNS | 1,000,000 publications |
CodeBuild | 100 build minutes |
CodePipeline | 1 active pipeline |
X-Ray | 100,000 traces |
Key Management Service | 20,000 requests |
Secrets Manager | 30-day free trial period, then $0.40 per secret/month |
As you can see, we will be covering a number of AWS services in this book and almost all of them are free, assuming you honor the usage limits described in the preceding table. In fact, the only service that we will use in this book that is not free is the AWS Fargate service, so bear this in mind when you read through the Fargate chapter and try to minimize your usage if you are worried about the cost of this.
To sign up for free tier access, click on the Create a Free Account button at https://aws.amazon.com/free/:
You will be prompted to enter an email address, password, and AWS account name. It's important to understand that the email address and password you enter here is referred to as the root account for your AWS account, which has the highest level of access to your account. For the AWS account name, you can enter any name you like, however it must be unique across all of the other AWS accounts, so at the very least you won't be able to use the account name I chose, which is docker-in-aws. This account name is used when you sign in and is much easier to remember than your AWS account number, which is a 12-digit number.
The rest of the sign-up process is self-explanatory, so I won't bore you with the details here, but understand that you will be required to provide credit card details and will be responsible for any charges over and above the free tier usage limits. You will also be required to verify the phone number you specify during signup, which involves an automated phone call to your number, so ensure you enter a valid phone number during registration.