In this project, you will learn how to deploy a high-availability Node.js web app using AWS Elastic Beanstalk and Amazon DynamoDB. The sample app you will deploy uses Node.js, Express, and a NoSQL database. Using Elastic Beanstalk, you can simply upload your code and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring. Elastic Beanstalk automatically scales your application up and down based on your application's specific need using easily adjustable Auto Scaling settings. Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a fully managed cloud database and supports both document and key-value store models. If you use the sample app, you will also use Amazon Simple Notification Service (SNS) to configure push notifications for your app.
What you'll accomplish:
Launch a Node.js web application environment using AWS Elastic Beanstalk and Amazon DynamoDB. Elastic Beanstalk provisions and manages the underlying infrastructure (e.g., Amazon EC2 instances) and stack components (e.g., OS, web server, language/framework) for you. DynamoDB provides the NoSQL database.
Deploy your web application using AWS Elastic Beanstalk. You’ll upload your code to Elastic Beanstalk, which handles all deployment details for you.
Receive email notifications with Amazon Simple Notification Service (SNS). If you use the sample app, you will receive notifications from SNS each time someone writes a record to your DynamoDB table.
What you'll need before starting:
An AWS Account: You will need an AWS account to begin provisioning resources to host your website. Sign up for AWS.
IT Experience: A basic understanding of web technologies and Node.js is recommended, but not required, to complete this project.
AWS Experience: No prior experience with AWS is required to complete this project.
Code (Optional): If you have code for your application, you can deploy it using this guide. You can also use the sample app code provided in this project.
Cost to complete project: The estimated cost to complete this project is $0.04. This cost assumes that you are within the AWS Free Tier limits, you follow the recommended configurations, and that you terminate all resources within 1 hour of completing the project. Your use case may require different configurations that can impact your bill. Use the Pricing Calculator to estimate costs tailored for your needs
Monthly billing estimate: The total cost of launching and running a Node.js web application will vary depending on your usage and configuration settings. Using the default configuration recommended in this guide, it will typically cost around $28/month within the AWS Free Tier. To see a breakdown of the services used and their associated costs, see Services Used and Costs.
Learn more about AWS Elastic Beanstalk, an easy-to-use service for deploying and scaling web applications and services developed with Java, NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
Find and launch pre-configured images running a Node.js stack on the AWS Marketplace.
Accelerate your Node.js application with Lightsail. It provides everything you need to jumpstart your application on AWS—compute, storage, and networking—for a low, predictable price.
Need more resources to get started with AWS? Visit the Getting Started Resource Center to learn more.