Skip to content

Commit 7a4a66e

Browse files
committed
docs(infra): keep per-stack readmes provider-only
cross-cloud comparison lives in apps/infra/README.md; each stack's architecture table now lists only its own services.
1 parent e5d7cc1 commit 7a4a66e

3 files changed

Lines changed: 49 additions & 49 deletions

File tree

apps/infra/aws/README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
# AWS Infrastructure
22

3-
Terraform configuration for deploying the fullstack-starter stack to AWS. This is the AWS counterpart of the GCP configuration in [`../gcp/`](../gcp/) (ported from [first-fluke/agogeo](https://github.com/first-fluke/agogeo)).
3+
Terraform configuration for deploying the fullstack-starter stack to AWS (ported from [first-fluke/agogeo](https://github.com/first-fluke/agogeo)). See [`../README.md`](../README.md) for the cross-cloud stack comparison.
44

55
## Architecture
66

7-
| Component | AWS Service | GCP Equivalent (`../gcp/`) |
8-
|-----------|-------------|----------------------------|
9-
| API / Web / Worker | ECS Fargate | Cloud Run |
10-
| Container registry | ECR | Artifact Registry |
11-
| Load balancing | ALB (host/path routing) | Global LB + Cloud Run |
12-
| Database | Aurora PostgreSQL 16 | Cloud SQL |
13-
| Cache | ElastiCache Redis 7 | Memorystore |
14-
| Queues | SQS (default / high-priority / low-priority + DLQ) | Cloud Tasks |
15-
| Events | SNS tasks topic → SQS fan-out | Pub/Sub |
16-
| Scheduled jobs | EventBridge Scheduler → SNS (`schedules` var) | Cloud Scheduler → Pub/Sub |
17-
| Uploads storage | S3 | GCS |
18-
| Static assets / CDN | S3 + CloudFront (OAC) | GCS + Cloud CDN |
19-
| WAF | WAFv2 on ALB (rate limit + managed rules) | Cloud Armor |
20-
| Email | SES (optional, `ses_domain`) ||
21-
| CI/CD auth | GitHub Actions OIDC role | Workload Identity Federation |
22-
| Monitoring | CloudWatch dashboard + alarms + SNS ||
7+
| Component | AWS Service |
8+
|-----------|-------------|
9+
| API / Web / Worker | ECS Fargate |
10+
| Container registry | ECR |
11+
| Load balancing | ALB (host/path routing) |
12+
| Database | Aurora PostgreSQL 16 |
13+
| Cache | ElastiCache Redis 7 |
14+
| Queues | SQS (default / high-priority / low-priority + DLQ) |
15+
| Events | SNS tasks topic → SQS fan-out |
16+
| Scheduled jobs | EventBridge Scheduler → SNS (`schedules` var) |
17+
| Uploads storage | S3 |
18+
| Static assets / CDN | S3 + CloudFront (OAC) |
19+
| WAF | WAFv2 on ALB (rate limit + managed rules) |
20+
| Email | SES (optional, `ses_domain`) |
21+
| CI/CD auth | GitHub Actions OIDC role |
22+
| Monitoring | CloudWatch dashboard + alarms + SNS |
2323

2424
## Prerequisites
2525

apps/infra/az/README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
# Azure Infrastructure
22

3-
Terraform configuration for deploying the fullstack-starter stack to Azure. This is the Azure counterpart of the GCP configuration in [`../gcp/`](../gcp/) and the AWS configuration in [`../aws/`](../aws/).
3+
Terraform configuration for deploying the fullstack-starter stack to Azure. See [`../README.md`](../README.md) for the cross-cloud stack comparison.
44

55
## Architecture
66

7-
| Component | Azure Service | GCP Equivalent (`../gcp/`) | AWS Equivalent (`../aws/`) |
8-
|-----------|---------------|----------------------------|----------------------------|
9-
| API / Web / Worker | Container Apps (one environment, three apps) | Cloud Run | ECS Fargate |
10-
| Container registry | Azure Container Registry (shared, api/web/worker repos) | Artifact Registry | ECR |
11-
| Ingress / routing | Container Apps built-in ingress (api:8000, web:3000 external; worker internal) | Global LB + Cloud Run | ALB |
12-
| Database | PostgreSQL Flexible Server 16 (private, delegated subnet + private DNS) | Cloud SQL | Aurora PostgreSQL 16 |
13-
| Cache | Azure Cache for Redis (TLS only) | Memorystore | ElastiCache Redis 7 |
14-
| Queues + events | Service Bus topic `tasks` + priority-filtered subscriptions (built-in DLQ) | Cloud Tasks + Pub/Sub | SNS tasks topic → SQS fan-out |
15-
| Scheduled jobs | Container Apps Jobs cron (`schedules` var) | Cloud Scheduler → Pub/Sub | EventBridge Scheduler → SNS |
16-
| Uploads storage | Storage account `uploads` container | GCS | S3 |
17-
| Static assets / CDN | `static` container + Front Door Standard | GCS + Cloud CDN | S3 + CloudFront (OAC) |
18-
| WAF | Front Door WAF policy (rate-limit custom rule) | Cloud Armor | WAFv2 on ALB |
19-
| CI/CD auth | Entra ID app + federated credential (GitHub OIDC) | Workload Identity Federation | GitHub Actions OIDC role |
20-
| Monitoring | Log Analytics + action group + metric alerts || CloudWatch dashboard + alarms |
7+
| Component | Azure Service |
8+
|-----------|---------------|
9+
| API / Web / Worker | Container Apps (one environment, three apps) |
10+
| Container registry | Azure Container Registry (shared, api/web/worker repos) |
11+
| Ingress / routing | Container Apps built-in ingress (api:8000, web:3000 external; worker internal) |
12+
| Database | PostgreSQL Flexible Server 16 (private, delegated subnet + private DNS) |
13+
| Cache | Azure Cache for Redis (TLS only) |
14+
| Queues + events | Service Bus topic `tasks` + priority-filtered subscriptions (built-in DLQ) |
15+
| Scheduled jobs | Container Apps Jobs cron (`schedules` var) |
16+
| Uploads storage | Storage account `uploads` container |
17+
| Static assets / CDN | `static` container + Front Door Standard |
18+
| WAF | Front Door WAF policy (rate-limit custom rule) |
19+
| CI/CD auth | Entra ID app + federated credential (GitHub OIDC) |
20+
| Monitoring | Log Analytics + action group + metric alerts |
2121

2222
## Prerequisites
2323

apps/infra/oci/README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
# OCI Infrastructure
22

3-
Terraform configuration for deploying the fullstack-starter stack to Oracle Cloud Infrastructure. This is the OCI counterpart of the GCP configuration in [`../gcp/`](../gcp/), the AWS configuration in [`../aws/`](../aws/), and the Azure configuration in [`../az/`](../az/).
3+
Terraform configuration for deploying the fullstack-starter stack to Oracle Cloud Infrastructure. See [`../README.md`](../README.md) for the cross-cloud stack comparison.
44

55
## Architecture
66

7-
| Component | OCI Service | GCP (`../gcp/`) | AWS (`../aws/`) | Azure (`../az/`) |
8-
|-----------|-------------|-----------------|-----------------|------------------|
9-
| Isolation boundary | Child compartment under `parent_compartment_ocid` | Project | Account + tags | Resource group |
10-
| API / Web / Worker | Container Instances (fixed counts, no autoscaling) | Cloud Run | ECS Fargate | Container Apps |
11-
| Container registry | OCIR (`oci_artifacts_container_repository`) | Artifact Registry | ECR | ACR |
12-
| Load balancing | Flexible LB + routing policies (host/path) | Global LB + Cloud Run | ALB | Container Apps ingress |
13-
| Database | OCI Database with PostgreSQL 16 | Cloud SQL | Aurora PostgreSQL 16 | PostgreSQL Flexible Server |
14-
| Cache | OCI Cache (Redis 7, TLS-only) | Memorystore | ElastiCache Redis 7 | Azure Cache for Redis |
15-
| Queues | OCI Queue ×3 (built-in DLQ, delivery count 5) | Cloud Tasks | SQS + DLQ | Service Bus subscriptions |
16-
| Scheduled jobs | — (documented gap, `schedules` is a no-op) | Cloud Scheduler → Pub/Sub | EventBridge Scheduler → SNS | Container Apps Jobs cron |
17-
| Uploads storage | Object Storage `uploads` bucket | GCS | S3 | Storage container |
18-
| Static assets / CDN | Object Storage `static` bucket (no first-party CDN) | GCS + Cloud CDN | S3 + CloudFront | Front Door |
19-
| WAF | WAF policy on LB (rate limit ~1000 req/min/IP) | Cloud Armor | WAFv2 on ALB | Front Door WAF |
20-
| CI/CD auth | Identity propagation trust (GitHub OIDC → UPST) | Workload Identity Federation | GitHub OIDC role | Entra ID federated credential |
21-
| Runtime auth | Dynamic group + resource principal | Service accounts | ECS task role | Managed identity |
22-
| Monitoring | ONS topic + Monitoring alarms (LB 5xx, PG CPU) || CloudWatch + SNS | Monitor + action group |
7+
| Component | OCI Service |
8+
|-----------|-------------|
9+
| Isolation boundary | Child compartment under `parent_compartment_ocid` |
10+
| API / Web / Worker | Container Instances (fixed counts, no autoscaling) |
11+
| Container registry | OCIR (`oci_artifacts_container_repository`) |
12+
| Load balancing | Flexible LB + routing policies (host/path) |
13+
| Database | OCI Database with PostgreSQL 16 |
14+
| Cache | OCI Cache (Redis 7, TLS-only) |
15+
| Queues | OCI Queue ×3 (built-in DLQ, delivery count 5) |
16+
| Scheduled jobs | — (documented gap, `schedules` is a no-op) |
17+
| Uploads storage | Object Storage `uploads` bucket |
18+
| Static assets / CDN | Object Storage `static` bucket (no first-party CDN) |
19+
| WAF | WAF policy on LB (rate limit ~1000 req/min/IP) |
20+
| CI/CD auth | Identity propagation trust (GitHub OIDC → UPST) |
21+
| Runtime auth | Dynamic group + resource principal |
22+
| Monitoring | ONS topic + Monitoring alarms (LB 5xx, PG CPU) |
2323

2424
## Prerequisites
2525

0 commit comments

Comments
 (0)