Problem Statement
This document will walk through the steps required to deploy a highly available Node.js, Express and NoSQL database web app using AWS Elastic Beanstalk and Amazon DynamoDB.
Using Elastic Beanstalk, you can simply upload your code and Elastic Beanstalk automatically handles the deployment, from
- capacity provisioning
- load balancing
- auto scaling
- application health monitoring
- adjustable Auto Scaling settings (scales up or scales down the application depending upon the application's specific needs)
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. In the sample app, you will also use Amazon Simple Notification Service (SNS) to configure push notifications for your app.
How the web app will run on AWS
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.
Billing Estimates:
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 Simple Monthly 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.