2. Create the diagram to represent the architecture of your design - nutthaphon/aws_iaas GitHub Wiki

image

  • Pilot launch, start up ELK in minimum both nodes and pods. Setting current maximum in this config to lower for control budget cost.
  • Public launch, when the system utilization is grow up from massive request. The system can scale up each node by adding more pods to support incoming request automatically. An also scale out the EKS cluster by adding more nodes when need.
  • For QA testing period. Tester also use this system for testing application in minimum spec like Pilot phase. However they must test application from source code in QA branch for securing a master branch.

image

100 K concurrent users are requesting to the system at AWS ALB. Then ALB distribute the request to api service that in an available pods with Round Robin basis. API service in application have a 10K queue for each to support that request. All request send to global queue in AWS SQS and then SQS send messaging to data processing queue. Finally a data processing will process and data manipulate on AWS RDS and also buffer data in AWS Elasticache.

As a result

  1. No lost customer transaction because they in a queue. They are waiting to processing next.
  2. No Data Store bottle-neck because data processing queue. They limit connection to RDS.