If you're getting started with AWS and you're interested to build your web applications using AWS services in a short amount of time, then you're in the right place. AWS offers more than 300 services, and to start developing applications with AWS without the right information might be a huge burden. As for today, we'll provide you with only 5 AWS services you need to know, to develop your web application.
Without further ado, let's get started.
For any product that you're going to build, you'll need to simply and securely collect, store, and analyze data. Amazon Simple Storage Service (Amazon S3) is a cloud hosting service, part of the AWS Storage Services, that provides you a place to collect, store and analyze your data in the cloud in any amount from anywhere on the web. With AWS S3 features you'll store the data in a large amount and securely run queries on the data without implementing other platforms. Alongside the existing feature, AWS re:Invent 2020 announced that S3 delivers strong read-after-write consistency, for any request, without changes to performance or availability.
AWS S3 charges for what you actually use, no hidden fees or overage charges. This gives you as a developer space for growing your business while enjoying the cost advantages of the AWS infrastructure. You only have to provide a payment method, and by the end of the month, your payment method is automatically charged for that particular month's usage.
Follow the article here to get to know more about AWS S3 Pricing. For every service, AWS offers a free tier, and for S3 the free tier includes 5 GB of Amazon S3 storage in the S3 Standard storage class. By the end of the month, AWS calculates all the AWS Regions and automatically applies to your monthly bill; unused monthly free tier will not rollover.
Get started with AWS S3 here.
API Gateway service allows you as a developer to create, publish, maintain, and secure APIs at any scale. The API Gateway is acting as a "front door" for your applications to connect with data, and backend services. With API Gateway you can create RESTful APIs and WebSocket APIs enabling real-time two-way communication applications.
AWS offers the free tier up to one million API calls received for REST APIs, one million API calls received for HTTP APIs, and one million messages and 750k connection minutes for WebSocket APIs per month - up to one year.
For the API Gateway, AWS doesn't have a minimum fee or upfront commitments. You'll be charged only for the API calls you receive and the amount of data transferred out. There are options for data caching to be charged at an hourly rate that varies based on the cache size you select. For the WebSocket APIs, you only pay when your APIs are in use - based on the messages sent and received and connection minutes.
Get started with API Gateway here.
Lambda is part of the Compute Services of AWS. You can run code without managing servers. It offers an automatic scale from a few requests per day to thousands per second. With Lambda you can run any type of application you want to build, with zero administration; offering you the space to write your code in any of the supported programming languages.
With Lambda you can build serverless backends to handle web, mobile, and 3rd party API requests. Lambda offers the opportunity to combine it with other AWS services, as a developer you can use those services to build powerful web applications that scale up or down automatically.
Two important things on Lambda pricing, the number of requests for your functions and the duration, the time it takes for your code to execute. Each time there is a request executed in response to an event notification or an invocation, lambda charges. It calculates the duration when your code begins the execution until it's terminated, rounding up to the nearest 1ms.
The price depends on the memory allocated in the function. There is a free usage tier including 1M requests per month. Find out more about Lambda pricing here.
Get started with Lambda here.
When building your web application, the database is one of the key parts you need to research for different scenarios such as the scaling options.
AWS offers a fully managed, NoSQL database service - DynamoDB, which offers great performance and scalability. In a matter of minutes, you'll be able to set up the database and maintain it. DynamoDB stores data as JSON objects in a simple key-value pair.
It is a fast, cost-effective, flexible, scalable, and secure database service. Giving you the chance to scale up from 10 to 1000 transactions per second (tps) in a couple of seconds.
Two ways that AWS DynamoDB pricing works, there is the on-demand capacity mode where DynamoDB charges you for the data reads and writes your application performs on your tables. The On-demand is best for you when you:
AWS has a free tier for the on-demand capacity mode which includes:
The other way is pricing for provisioned capacity mode, you specify the number of reads and writes per second that you expect your application to require. There is the auto-scaling option to use automatically to adjust your table's capacity based on the specific utilization rate.
The provisioned capacity mode is best for you when you:
For the provisioned capacity mode there is a free tier as well, including:
AWS calculates the monthly usage per-region, per-payer account basis.
To get started with DynamoDB check out these awesome resources from AWS.
Get started with DynamoDB here.
Serverless Reference Architecture: Web Application here.
When you have your application ready for the users, you need to distribute your web application to the internet/users, that's where the AWS CloudFront comes in. CloudFront delivers your content, the static and dynamic web content, through a worldwide network of data centers called edge locations. Known for the high transfer speed delivery, and low latency.
With most of the AWS services, using CloudFront you don't have to pay any up-front fees, you'll pay as you go and only for what you use. Check out this page for more details.
The free tier includes 50 GB of data transfer out for 12 months free, and 2.000.000 HTTP or HTTPS requests each month for one year!
Get started with AWS CloudFront here.
CloudFront use cases.
As you're building your web application, there is a 100% chance that you'll offer distinct features to different users, but how do you first manage users' information? Well, AWS offers the Cognito service.
Cognito provides authentication, authorization, and user management for your web applications. There are two key components in Cognito, the user, and the identity pools. User pools are directories that provide sign-up and sign-in options for your application users. Identity pools enable you to grant your users access to other AWS services.
For the AWS Cognito, you'll pay for the monthly active users (MAUs) only. There is a free tier that includes a 50.000 MAUs for users who sign in directly to Cognito User Pools. Check out more info about the pricing here.
Get started with Amazon Cognito here.
Now that you have the tools you need, building your web applications with AWS is an amazing experience considering the benefits it offers for developers. And if you want to go one step further, try Webiny — Webiny is an open-source serverless application framework that brings all those tools together. Start building your serverless applications using Webiny. today 🚀
Thanks for reading! My name is Albiona and I work as a developer relations engineer at Webiny. I enjoy learning new tech and building communities around them = ) If you have questions or just want to say hi, reach out to me via Twitter.