Getting started with AWS and adding your credit card to your own account feels scary, but there are ways to get free credits so you can sleep better in the beginning. In this article, we'll cover some tricks and tips to get started and keep using AWS for free.
Stepping into some new terrain is hard. This is already true if it's only about learning something new. But getting into cloud-native development to become an architect or DevOps engineer, you're requiring a lot of hands-on to practice your skills.
For the cloud, this can feel scary. The hardware is not anymore the "hard to change" part because you can spin up anything within seconds. That's also why there are no real spending limits. It's all up to you. That's why creating your AWS account and adding your credit card most likely doesn't impose great feelings.
But there's are a lot of ways you can earn free credits to play around for free and not worry too much in the beginning about causing costs that you have to carry on your own.
Let's have a look at which options there are out there for aspiring engineers that are about to start their cloud journey on AWS.
AWS offers a lot of generous free options by default.
- free trials --- for certain services, beginning at activation
- 12 months free --- e.g. running an EC2 micro instance for 750 hours, which is basically the whole month. So you can run a t2 or t3 micro instance for a complete year without causing any costs on your own.
- always free --- e.g. 1 million Lambda invocations per month. That's also a lot to work with.
Pro tip: you can also monitor and debug those free 1M Lambda executions for free with Dashbird.
The free tier offerings are really great and will also help you a lot if you're focusing on serverless architectures which are often on the pay-as-you-go pricing model. Resources that are not used, like Lambda functions or DynamoDB tables which are provisioned with on-demand capacity, won't cause any costs.
💡 Free Tier Alerts --- if you're reaching a free tier limit soon, which will then be billed, AWS will always send you an email so you're aware.
AWS is on its way to educate hundreds of thousands of students around the world. Besides giving out free learning material, there are also free AWS credits to be received.
If you're targeting a serious project, like a SaaS product, AWS likely supports you with at least $1350 in credits and if not self-funded up to $100k! Apply with your business idea & what you've already built.
💡 Unexpected Additions --- I've also applied for AWS Activate successfully and received another $4000 in credits out of nowhere after working intensively with EC2.
Building an Alexa Skill is a great way to start your AWS cloud journey and you'll also be able to apply for one-time & recurring monthly credits.
AWS regularly grants you free credits for attending conferences, events, or webinars. Make sure to check out AWS' events page regularly.
Besides the named ones above, there are more free credits to earn for very specific cases, e.g. for
- Nonprofits & NGOs
- education technology startups
If you're out there for some good cause, you'll likely be supported.
Free tier and free credits to your account are nice, but sadly there's no way to add a spending limit. If you're over-provisioning with for example very expensive EC2 instances, you'll definitely have to pay for them while they are not stopped or terminated. Besides really taking care of what you're doing you can take some additional measures.
What I'm always recommending in the first place is to set up a budget alert in AWS. You can choose any limit you want and you'll be notified if your expected costs will exceed your threshold.
💡 It's not a real-time alert --- AWS will check for your alerts just on a daily basis, so skyrocketing costs due to recursive Lambda functions or very expensive EC2 instances will probably be noted just after they already impacted your bill, so you still have to be careful.
Generally, you should not work with your root credentials, but with a dedicated IAM user that you create in the beginning. You can choose which permissions will be attached to that user.
If you're not working with EC2 instances, you can skip assigning
ec2:StartInstances to your user, as you won't need it. Yes, it's unlikely to do such a mistake, but if your IAM user's credentials are compromised, it's not even possible to start an instance by the attacker itself, which will add another layer of protection for your wallet (at least).
For seriously working with the cloud, you'll sooner or later start with tools like Terraform, CloudFormation, or Serverless Framework which allow you to define your infrastructure via code.
As all of your infrastructures will be tracked via your code, you can easily create and destroy everything and you'll not run into risks of having abandoned resources you're not even aware of anymore.
AWS' Cost Explorer & its cost forecast gives you a good outline of what is your spending and how it will continue in the future based on current usage patterns.
But besides that, it's hard to keep track of everything you've provisioned, even if you're using Infrastructure as Code. Third-party tools like Dashbird.io are great for extending your observability. In Dashbird's case, it's well-aligned for building serverless applications with Lambda, DynamoDB, and other well-known managed services on AWS.
Besides tracking your resources, you'll also see well-architectured hints and a lot of metrics around AWS' serverless services.
The best thing for starters: you can try out Dashbird for free for 1m Lambda invocations per month.
Besides taking care, AWS offers you a lot of ways to earn free credits and protect your own wallet in the beginning, to start exploring the services or building something serious.