Skip to content

💚 peavote: Create and vote on polls. Deployed on AWS Elastic Beanstalk, with AWS RDS and AWS S3.

Notifications You must be signed in to change notification settings

itsdharmxd/peavote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

peavote

Easy-to-use polls website.

Preview after being deployed to AWS Elastic Beanstalk:

Preview

Elastic Beanstalk Dashboard after deployment:

Preview

Run locally:

Use Docker-Compose for running a local instance:

docker-compose -f docker-compose.dev.yml up -d --build

What's being used:

  • Frontend
  • Backend
    • Express
    • Sequelize
    • Helmet
  • Deployment
    • Docker
    • Docker Compose
    • Nginx
    • Travis CI
    • Docker Hub
    • AWS
      • AWS Elastic Beanstalk
      • AWS RDS (PostgreSQL)
      • AWS S3

Development Architecture:

Architecture Diagram

Deployment Architecture:

Architecture Diagram

Brief summary:

  • Deployed on AWS Elastic Beanstalk with AWS S3 Buckets for storing Travis CI builds.
  • Beanstalk is configured with a AWS RDS PostgreSQL instance running in Free Tier (db.t2.micro instance).

FAQ:

  • Why not a Kubernetes deployment?
    • I actually wanted to deploy it through GCP using Kubernetes (GKE), however, my local Kubernetes environment had lots of issues (failed pod deployments, etc.) as I was using Kompose for converting my Docker-Compose deployment to a Kubernetes-based deployment. I eventually found out that AWS has Elastic Beanstalk, which is a much better solution for Docker-Compose based deployments, and hence, I deployed my application on Elastic Beanstalk.
  • Why didn't you use PostgreSQL as a Docker image in your Elastic Beanstalk deployment?
    • I opted for AWS RDS as it easily manages backups, failovers and replications. It is also a bad practice for using Docker for storing persistent data.
  • Is Kubernetes really required?
    • My answer would be no. Kubernetes is good, and I definitely would love to deploy my apps using it if I were to start from scratch, but honestly, AWS scales really well, so I'm not yet fully convinced for shifting to Kubernetes.

About

💚 peavote: Create and vote on polls. Deployed on AWS Elastic Beanstalk, with AWS RDS and AWS S3.

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published