Skip to content

Latest commit

 

History

History
75 lines (58 loc) · 2.5 KB

README.md

File metadata and controls

75 lines (58 loc) · 2.5 KB

Welcome to the Networking Costs Calculator Project

This project is a self-hosted calculator to help you estimate AWS networking costs.

How to use

Screenshot

  • Deploy the application using the deployment script (see How to deploy). If already deployed, start the web application (npm start from the frontend directory)
  • Select the AWS Region of interest from the top right dropdown list
  • Select the services of interest and see their recurring monthly costs estimation
  • Add inputs about data transfer, and see their cost estimation

Architecture

The calculator has two main components:

  • A serverless backend part, that uses the AWS Price List Query APIs to get the updated prices for the relevant networking services. These prices are cached in a DynamoDB table.
  • A ReactJS frontend web application, that is the user interface for estimating the costs for various networking services (hosted with S3 and CloudFront).

Architecture

Pre-requisites

  • A linux-based OS (no Windows deployment script yet)
  • NodeJS (version 18 or later) and NPM. Node and NPM are really easy to install. To make sure you have them available on your machine, try running the following command.
$ npm -v && node -v
7.24.2
v18.16.1
  • The AWS CDK installed (you can install with npm install -g aws-cdk).
$ cdk --version
2.124.0 (build 4b6724c)
  • If you have never used the AWS CDK in the current account and Region, run bootstrapping with npx cdk bootstrap.
npx cdk bootstrap aws://123456789012/us-east-1
  • An AWS Account to run the backend resources, and the AWS CLI (v2) installed and configured. To make sure the AWS CLI is installed and configured on your machine, try running the following command. You should get the default user - make sure it has permissions to deploy the backend reosurces.
$ aws sts get-caller-identity
{
    "UserId": "AIDxxxxxxxxxxxxxxBSBT",
    "Account": "7xxxxxxxxxx2",
    "Arn": "arn:aws:iam::7xxxxxxxxxx2:user/xxxxxxx"
}

How to deploy

Run the deployment script from the project's root directory:

$ ./deploy.sh

How to destroy

$ cd backend
$ cdk destroy --all

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.