DEV Community

Nick Thompson
Nick Thompson

Posted on

Build your next Web App using AWS Free Tier services without breaking the bank

When embarking on a new web project, hobby site or your next business startup, cost considerations often steer decisions about hosting options. Traditional hosting solutions, while straightforward, often come with fixed costs and maintenance responsibilities that can burden individuals and small teams. Enter AWS Free Tier serverless services, a cost-effective, scalable, and maintenance-free alternative that offers a wealth of features with little to no costs for many workloads.

In this article, we’ll explore how AWS Free Tier serverless services stand out and how they can become a powerful and potentially free hosting platform for developers, startups, and businesses.

Overview of the Application

We'll architect a simple task web application that allows users to create, update, and delete tasks as well as adding authentication. The architecture will include a serverless backend, a static frontend, and a database for persistent storage. This setup is perfect for demonstrating the power of AWS’s free tier services and the benefits of a serverless first approach for your applications. Using the AWS Free Tier, this setup can likely run for free or at an extremely low cost while handling significant traffic.

Image description

Optional Services
Every good website needs a domain, while usually an inexpensive cost ($10 a year) this is an optional service. If you already have a domain or you want to purchase one Amazon Route53 offers cost effective DNS and Domain management solutions.

Frontend: Amazon S3 and CloudFront

  • S3 (Simple Storage Service): Store and host static assets like HTML, CSS, and JavaScript. S3 is also perfect for Single Page Applications (SPA) using React or Vue.
  • CloudFront: Distribute the content globally with low latency.

Free Tier Limits

  • S3 5GB of standard storage and 20,000 GET requests and 2000 PUT requests per month.
  • CloudFront 1TB of data transfer and 10 million HTTP/HTTPS requests per month.

The static files of your application can be uploaded to an S3 bucket, which serves as the origin for CloudFront. CloudFront will handle global content delivery, ensuring fast load times across regions and aids in DDoS and Denial of Wallet protection.

We can secure access to your application using an Origin Access Identity which only allows CloudFront access to your S3 bucket and stops direct access to the AWS resource named bucket.

Backend: AWS Lambda and API Gateway

  • AWS Lambda: A serverless compute service that runs your code in response to events.
  • API Gateway: Acts as a RESTful API interface for invoking Lambda functions.

Free Tier Limits

  • Lambda 1 million requests and 400,000 GB-seconds of compute time per month.
  • API Gateway 1 million API calls per month.

We'll use Lambda functions to implement the business logic for CRUD operations on tasks. API Gateway will expose endpoints via CloudFront for the frontend to interact with these functions.

Database: Amazon DynamoDB

  • DynamoDB: A fully managed NoSQL database ideal for handling task data.

Free Tier Limits

  • 25GB of storage.
  • 25 Write Capacity Units and 25 Read Capacity Units known as WCU's and RCU's respectively. Enough capacity for around 200M requests per month.

DynamoDB can store most data types which make it perfect for datasets that include ID's, title, description or status.

Authentication: Amazon Cognito

  • Cognito: Simplifies user authentication and management.

Free Tier Limits:

  • 10,000 monthly active users
  • 10GB of cloud sync storage
  • 1M sync operations per month

Cognito will provide user registration and login functionality, ensuring secure access to the web app. You can opt in for additional security such as MFA, Email verification and required user fields.

What Makes AWS Free Tier Services Stand Out?

The AWS Free Tier allows users to test and experiment with services for free up to specified limits. Among these, serverless options like AWS Lambda, Amazon API Gateway, AWS DynamoDB, and Amazon S3 provide a robust toolkit for hosting web applications, APIs, and static websites.

Here’s why they’re worth exploring:

  1. Pay-As-You-Go Flexibility: Unlike traditional hosting, AWS serverless services only charge for actual usage. The Free Tier adds another layer of affordability, often covering the needs of smaller projects entirely.

  2. Zero Maintenance Overhead: Serverless services abstract away server management tasks like provisioning, scaling, and patching. Developers can focus entirely on building features rather than infrastructure management.

  3. Automatic Scalability: Serverless platforms scale automatically based on demand, ensuring reliable performance without overpaying for unused capacity.

As serverless services scale to zero, they incur no costs when users are not using your application or you have long periods of downtime during development.

Comparing AWS Free Tier with Traditional Hosting

Feature Traditional Hosting AWS Serverless (Free Tier)
Cost Fixed monthly fee Pay-as-you-go, often free within limits
Scalability Limited or requires manual setup Automatic, on-demand scaling
Maintenance Requires manual updates Fully managed by AWS
Flexibility Limited to pre-configured plans High flexibility with more than 100 services in the free tier
Performance Dependent on allocated hardware Scales to meet demand

While traditional hosting might seem like a simple and cheap choice for websites, AWS serverless services excel in scenarios requiring dynamic scaling, low latency, and integrated workflows. While also being the perfect choice for small PoC or hobby projects.

Potential Limitations

  • Usage Limits: It’s crucial to know and monitor usage to avoid exceeding free tier limits and incurring unwanted charges.
  • 12 months free: Not all AWS free tier services are always free, some are only free for 12 months, however the services used in this article are charged at very low usage costs meaning it's still a cost effective option after the 12 month period.

Getting Started

To get started with AWS Free Tier Services visit the AWS Free Tier page and create an account.

Documentation

Amazon Route53
Amazon CloudFront
Amazon S3
Amazon Cognito
Amazon API Gateway
AWS Lambda
Amazon DynamoDB

Conclusion

Building a web application using AWS free tier services is not only feasible but also an excellent way to learn about cloud-native development. By leveraging services like S3, Lambda, DynamoDB, and Cognito, you can create a robust, scalable application at no cost for most typical workloads. Whether you’re a budding developer or a seasoned professional, AWS’s free tier offers the tools you need to bring your ideas to life.

Top comments (0)