Architecture Overview
This is an illustrative example of a general application.
Sleakops implements a well-defined infrastructure architecture designed to optimize operational excellence while ensuring a secure and scalable environment for users. The architecture consists of four accounts, each serving distinct purposes and isolated from one another.
Each account has a VPN instance generated upon the creation of the first cluster.
Security Account
- The Security Account serves as a centralized hub for managing IAM users and their access to the system. learn how to switch between accounts in AWS Console Autentication
Management Account (Management Environment)
- Contains an EKS cluster with integrated CI/CD (GitHub and HashiCorp Vault).
- Vault manages credentials for CloudWatch, enhancing monitoring capabilities.
- VPC Peering enables private connections to other accounts.
Production Account (Production Environment)
- Supports external users and requires a fully functional database (RDS Master).
- Utilizes Private DB Subnet for RDS Master, RDS Slave, and ElastiCache, each on different Availability Zones (AZs) for high availability.
- Backend Deployment with replicas distributed across different AZs.
- Frontend Deployment with LoadBalancer for even distribution of network load.
- Route53 serves as DNS and performs health checks for the application.
- AWS CloudFront serves static frontend content from an S3 bucket.
- RDS Slave acts as a replica of RDS Master for failover scenarios, maximizing uptime.
Development Account (dev, qa, and staging Environments)
- Contains three environments: dev, qa, and staging.
- Replicas of the prod environment for code writing, testing, and pre-releases.
- Ensures isolated testing to prevent issues for external users.
- Similar architecture to prod but without RDS Slave for reduced high availability requirements.
Sleakops' architecture provides users with a powerful, scalable, and secure environment for deploying and managing applications. The clear separation of accounts and environments allows for efficient development, testing, and production workflows with maximum control over resources.