/mira

AWS infrastructure visualizer

Primary LanguageJavaScript

MiraCloud is a desktop app that offers an AWS user a chance to visualize all of their services in a specific region or in all of them at once. The user-friendly interface allows the user to launch, delete, run and stop an instance of services like EC2, RDS and S3 buckets. It also creates and deletes connections between security groups of those instances.

Getting Started

  • Clone the repo. git clone *github url or use SSH
  • Go to directory and run npm install to install all the dependencies
  • Run npm run build to bundle your Electron application
  • Run npm start to start MiraCloud

Login

The login interface securely handles the user's IAM keys by saving into a hidden folder and deleting it upon logout.

  1. Set up a new IAM user on your AWS console: Make sure you keep your aws_access_key_id and aws_secret_access_key by downloading the .csv file.

  2. Give permissions to AWS IAM User. For read, write, and delete, you can give permission by:

     AmazonEC2FullAccess
     AmazonRDSFullAccess
     AmazonS3FullAccess
     AWSLambdaFullAccess
    

    For viewing only, you can give permissions by:

     AmazonEC2ReadOnlyAccess
     AmazonRDSReadOnlyAccess
     AmazonS3ReadOnlyAccess
     AWSLambdaReadOnlyAccess
    

    The user will use their public and secret key generated by creating a new IAM user on their AWS account. Once signed in, if the keys are real, the user will choose whether they want to see their instances in one or in all regions.

Choosing a region

The user will be able to see all instances of EC2, RDS, S3 and lambda functions they might have. You can either create or delete instances in all or specific region by using the buttons located in the right side-panel.

Node Details

Once a node is clicked, the user can see the data on the instance selected.

Configure security groups

Editing security groups through AWS is unclear for many users that do not regularly use the AWS dashboard. With the navigatable UI provided by MiraCloud, the user can click on a particular instance to get all data associated with it. In addition to viewing this data, inbound and outbound rules for security groups can be effortlessly changed and these changes will be seen by the user.

Launch and delete instances

By clicking on the launch button, a modal will prompt the user to choose which type of instance they want to create. If in the all-regions display, the app will show the list of default images available for the free tier by region. If the user is looking into a specific region, the modal also displays the free-tier image name, but will allow the user to change and input an image of their own. The user can also add a key-pair to their instance if they wish to set an SSH key to access the instance. The pem file with the key will be saved to their download folder.

The delete button requires the user to click on the instance they wish to delete. This will prompt a modal with the id of the instance. If the instance's security group has any inbound/outbound rules other than the default ones, the delete won't be succesful and the app will request the user to clear the connections before deleting the instance.

Contributors

Rachel Kim | Victoria Adnet | Tarlan Gardashov | Gilbert Ramirez