Prices
Estimated monthly on-demand costs for this workload architecture.
Workload Costs Comparison
Prices by provider and services that enable users to run this workload. Shape the architecture based on cloud best practices using the four Architecture Priorities below — Capacity, Performance, Reliability, and Security. Components and prices recompute as you adjust each priority (e.g. higher Security adds a WAF, KMS, and threat monitoring), and you can switch region or billing period to compare like-for-like.
Architecture Priorities
Select level (High / Medium / Low) to adjust requirementsInfrastructure Architecture Blueprint
Copy or download (export) Terraform and OpenTofu architecture blueprints to deploy this workload in a cloud provider of your choice. Add parameters, credentials, or steps for CLI and DevOps CI/CD pipelines.
| 1 | # ============================================================================== |
| 2 | # ARCHITECTURE BLUEPRINT (TERRAFORM / OPENTOFU) |
| 3 | # Copyright (c) 2026 Cosell Plus, LLC. All Rights Reserved. |
| 4 | # |
| 5 | # DISCLAIMER & TERMS OF USE: |
| 6 | # This IaC blueprint is generated by CompareCloudCosts (CCC) for educational, |
| 7 | # planning, and directional architectural purposes. Provided "AS IS" without |
| 8 | # warranty of any kind, express or implied. Cosell Plus, LLC assumes no |
| 9 | # liability for operational costs, misconfigurations, or service interruptions. |
| 10 | # Always review and validate security, IAM, and compliance parameters before |
| 11 | # deploying to production environment. |
| 12 | # ============================================================================== |
| 13 | # |
| 14 | # ------------------------------------------------------------------------------ |
| 15 | # IDENTITY & CREDENTIAL PLACEHOLDERS (CLI & DEVOPS CI/CD PIPELINE) |
| 16 | # ------------------------------------------------------------------------------ |
| 17 | # Steps to execute this blueprint using Terraform: |
| 18 | # 1. Save this file as main.tf |
| 19 | # 2. Set provider authentication credentials: |
| 20 | # |
| 21 | # For AWS Local CLI Execution: |
| 22 | # export AWS_ACCESS_KEY_ID="<YOUR_AWS_ACCESS_KEY_ID>" |
| 23 | # export AWS_SECRET_ACCESS_KEY="<YOUR_AWS_SECRET_ACCESS_KEY>" |
| 24 | # export AWS_REGION="<REGION>" |
| 25 | # |
| 26 | # For AWS DevOps CI/CD Pipeline (GitHub Actions / GitLab CI / Azure DevOps): |
| 27 | # Recommended: Use AWS OpenID Connect (OIDC) Role Assumption: |
| 28 | # - role-to-assume: "arn:aws:iam::123456789012:role/GitHubActionsDeployerRole" |
| 29 | # - aws-region: "<REGION>" |
| 30 | # |
| 31 | # 3. Initialize and apply: |
| 32 | # $ terraform init |
| 33 | # $ terraform plan |
| 34 | # $ terraform apply |
| 35 | # ------------------------------------------------------------------------------ |
| 36 | |
| 37 | # ------------------------------------------------------------------------------ |
| 38 | # PROVIDER CONFIGURATION (TERRAFORM) |
| 39 | # ------------------------------------------------------------------------------ |
| 40 | 🔑 terraform { |
| 41 | required_version = ">= 1.5.0" |
| 42 | required_providers { |
| 43 | aws = { |
| 44 | source = "hashicorp/aws" |
| 45 | version = "~> 5.0" |
| 46 | } |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | 🔑 provider "aws" { |
| 51 | region = var.aws_region |
| 52 | |
| 53 | default_tags { |
| 54 | tags = { |
| 55 | ManagedBy = "Terraform" |
| 56 | Environment = var.environment |
| 57 | Workload = var.workload_id |
| 58 | Vendor = "Cosell Plus LLC Blueprint" |
| 59 | } |
| 60 | } |
| 61 | } |
| 62 | |
| 63 | 🔑 variable "aws_region" { |
| 64 | type = string |
| 65 | default = "us-east-1" |
| 66 | description = "Target AWS Deployment Region" |
| 67 | } |
| 68 | |
| 69 | 🔑 variable "environment" { |
| 70 | type = string |
| 71 | default = "production" |
| 72 | description = "Deployment environment (e.g. dev, staging, production)" |
| 73 | } |
| 74 | |
| 75 | 🔑 variable "workload_id" { |
| 76 | type = string |
| 77 | default = "workload-blueprint" |
| 78 | description = "Identifier tag for the workload" |
| 79 | } |
| 80 | |
| 81 | # ------------------------------------------------------------------------------ |
| 82 | # WORKLOAD COMPONENT RESOURCES (COMPLIANCE-READY WEB APPLICATION) |
| 83 | # ------------------------------------------------------------------------------ |
| 84 | # Component: Load Balancer (Distributes incoming traffic (Reliability ≥ medium)) |
| 85 | 🔑 resource "aws_custom_🔑 resource" "load_balancer" { |
| 86 | # Add required parameters for Load Balancer |
| 87 | } |
| 88 | |
| 89 | # Component: Web / App Tier |
| 90 | 🔑 resource "aws_launch_template" "web_tier_lt" { |
| 91 | name_prefix = "web_tier-lt-" |
| 92 | image_id = "ami-0c55b159cbfafe1f0" # Amazon Linux 2023 AMI |
| 93 | instance_type = "t4g.medium" |
| 94 | |
| 95 | tag_specifications { |
| 96 | resource_type = "instance" |
| 97 | tags = { |
| 98 | Name = "Web / App Tier" |
| 99 | } |
| 100 | } |
| 101 | } |
| 102 | |
| 103 | 🔑 resource "aws_autoscaling_group" "web_tier_asg" { |
| 104 | name_prefix = "web_tier-asg-" |
| 105 | min_size = 1 |
| 106 | max_size = 4 |
| 107 | desired_capacity = 1 |
| 108 | vpc_zone_identifier = ["subnet-placeholder-1", "subnet-placeholder-2"] |
| 109 | |
| 110 | launch_template { |
| 111 | id = aws_launch_template.web_tier_lt.id |
| 112 | version = "$Latest" |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | # Component: Relational Database (Primary transactional datastore) |
| 117 | 🔑 resource "aws_custom_🔑 resource" "database" { |
| 118 | # Add required parameters for Relational Database |
| 119 | } |
| 120 | |
| 121 | # Component: Web Application Firewall |
| 122 | 🔑 resource "aws_wafv2_web_acl" "waf" { |
| 123 | name = "waf-waf-acl" |
| 124 | description = "Filters malicious traffic at the edge (Security ≥ medium)" |
| 125 | scope = "REGIONAL" |
| 126 | |
| 127 | default_action { |
| 128 | allow {} |
| 129 | } |
| 130 | |
| 131 | visibility_config { |
| 132 | cloudwatch_metrics_enabled = true |
| 133 | metric_name = "wafWafMetric" |
| 134 | sampled_requests_enabled = true |
| 135 | } |
| 136 | |
| 137 | rule { |
| 138 | name = "AWSManagedRulesCommonRuleSet" |
| 139 | priority = 1 |
| 140 | |
| 141 | override_action { |
| 142 | none {} |
| 143 | } |
| 144 | |
| 145 | statement { |
| 146 | managed_rule_group_statement { |
| 147 | name = "AWSManagedRulesCommonRuleSet" |
| 148 | vendor_name = "AWS" |
| 149 | } |
| 150 | } |
| 151 | |
| 152 | visibility_config { |
| 153 | cloudwatch_metrics_enabled = true |
| 154 | metric_name = "CommonRuleSetMetric" |
| 155 | sampled_requests_enabled = true |
| 156 | } |
| 157 | } |
| 158 | } |
| 159 | |
| 160 | # Component: Key Management & Encryption (Manages encryption keys for data at rest (Security ≥ medium)) |
| 161 | 🔑 resource "aws_custom_🔑 resource" "kms" { |
| 162 | # Add required parameters for Key Management & Encryption |
| 163 | } |
| 164 | |
| 165 | # Component: Secrets Management (Stores and rotates database credentials, API keys, and certificates (Security ≥ medium)) |
| 166 | 🔑 resource "aws_custom_🔑 resource" "secrets_management" { |
| 167 | # Add required parameters for Secrets Management |
| 168 | } |
| 169 | |
| 170 | # Component: Audit Log Archive (Immutable (WORM) object storage for retained audit logs) |
| 171 | 🔑 resource "aws_custom_🔑 resource" "audit_archive" { |
| 172 | # Add required parameters for Audit Log Archive |
| 173 | } |
| 174 | |
| 175 | # Component: Backup Storage |
| 176 | 🔑 resource "aws_s3_bucket" "backup_storage" { |
| 177 | bucket_prefix = "ccc-backup_storage-" |
| 178 | force_destroy = false |
| 179 | } |
| 180 | |
| 181 | 🔑 resource "aws_s3_bucket_server_side_encryption_configuration" "backup_storage_enc" { |
| 182 | bucket = aws_s3_bucket.backup_storage.id |
| 183 | rule { |
| 184 | apply_server_side_encryption_by_default { |
| 185 | sse_algorithm = "AES256" |
| 186 | } |
| 187 | } |
| 188 | } |
| 189 | |
| 190 | |
| 191 | |
| 192 | |
| 193 | # ------------------------------------------------------------------------------ |
| 194 | # OUTPUTS |
| 195 | # ------------------------------------------------------------------------------ |
| 196 | 🔑 output "blueprint_summary" { |
| 197 | value = { |
| 198 | workload_id = "compliance-ready-web-app" |
| 199 | 🔑 provider = "aws" |
| 200 | region = "us-east-1" |
| 201 | components = 8 |
| 202 | priorities = { |
| 203 | capacity = "medium" |
| 204 | performance = "medium" |
| 205 | reliability = "medium" |
| 206 | security = "medium" |
| 207 | } |
| 208 | } |
| 209 | } |
| 210 |