| Service Name | Instance Type / Configuration | Monthly Cost (USD) |
|---|---|---|
| Amazon EC2 | t3a.xlarge (2 instances) | 109.35 |
| Amazon EC2 | t2.nano (1 instance) | 2.12 |
| Amazon RDS for PostgreSQL | db.m5.large (2 nodes) | 565.46 |
| Amazon Redshift | ra3.large (2 nodes) | 792.78 |
| Amazon ElastiCache (Redis) | cache.t3.micro (2 nodes) | 24.82 |
| Amazon VPC | (1 NAT Gateway) | 33.08 |
| Elastic Load Balancing (ALB) | (1 Application Load Balancer) | 22.27 |
| Total Monthly Cost | **1,549.88 |
├── .github/
│ └── workflows/
│ ├── ci.yaml # Continuous Integration (CI) checks
│ ├── cd.yaml # Continuous Deployment of infrastructure
│ └── cd_dag.yaml # Continuous Deployment (CD) for Airflow DAGs
│
├── bootstrap_scripts/ # Helper shell scripts for local install and startup
│
├── orchestration/| Folder/File | Primary Function | Engineering Rationale |
|---|---|---|
| bootstrap_scripts/ | Automated Airflow Host Setup | Automation: Custom bash scripts are executed by the EC2 User Data. They automatically install Docker/Compose, configure Airflow environment variables, and launch the containerized HA cluster on boot — ensuring the system is self-healing and |
| Workflow File | Purpose | Key Actions and Expertise Demonstrated |
|---|---|---|
| cd.yaml / ci.yaml | Continuous Integration (CI) | Gatekeeping and Quality Control: Runs terraform validate, executes terraform plan (for peer review), performs Python unit tests (tests/), and runs linti |
| Component | Service Used | Resilience and Control Rationale |
|---|---|---|
| Orchestration Compute | Multiple Airflow EC2 Instances | Control. I deployed 2+ EC2 instances across different Availability Zones (AZs) running Airflow components (Scheduler, Workers) via Docker Compose. This ensures I maintain full control over the runtime environment and necessary libraries. |
| Metadata Database | Amazon RDS (Po |