Loading...

1. Overview
  • High Level Architecture Below...
  • AWS EC2 instance: Hosts the application.
  • Docker: Runs the website as a containerized service.
  • Nginx/Apache: Acts as the web server and reverse proxy.
  • MySql Database: Runs on a separate container on same instance.
  • Redis Cache : Runs on a separate container on same instance.
  • Elastic Load Balancer (optional): For future scalability.
  • Amazon S3 : For static daily feed storage.
  • 2. Architecture Diagram
    MukiZone
    3. Components
    a. AWS EC2 Instance
    1. Launch a t3.medium or larger EC2 instance depending on the application's workload.
    2. Use Amazon Linux 2 or Ubuntu as the operating system.
    b. Docker Setup
    1. Install Docker on the EC2 instance.
    2. Use Docker Compose to define and manage multi-container applications.
    continued
    c. Containers - 1.Web Server (Nginx/Apache)
    1. Acts as a reverse proxy, forwarding HTTP/HTTPS requests to the application server.
    2. Can also handle static file serving if needed.
    c. Containers - 2.UI Logic
    1. Use a programming language/framework like Next.js.
    2. Alternatively, use Node.js, Django, Flask, etc.
    3. The application code and dependencies are packaged into a Docker image.
    c. Containers - 3.Application Server
    1. Use a programming language/framework like SprintBoot.
    2. Alternatively, use Node.js, Tomcat, Weblogic etc.
    3. The application code and dependencies are packaged into a Docker image.
    c. Containers - 4.Database
    1. Run a database like MySQL or PostgreSQL in a separate Docker container.
    2. Alternatively, use Amazon RDS for a managed database solution.
    c. Containers - 5.Cache
    1. Run a cache like Redis in a separate Docker container.
    2. Alternatively, use Amazon Elastic for a managed caching solution.