July 18, 2026 : 8 min read
Architecture Stack: Landing Zones
Understanding AWS Landing Zones: a prescriptive multi-account architecture that provides security, compliance, and operational excellence at enterprise scale.
- Architecture
- Cloud
- Governance
This is a conversation between Alex (Engineering Manager) and Jordan (Senior Architect) exploring AWS Landing Zones.
Part 1: The Multi-Account Problem
Alex: Jordan, we have Terraform managing AWS. But it's all in one account. Isn't that risky?
Jordan: Very risky. Single account is a single blast radius. One mistake and everything is affected. One compromised credential and all of AWS is exposed.
Alex: So separate accounts?
Jordan: Exactly. But how? How many? How are they organized? How do they communicate? That's what Landing Zones answer.
Alex: What's a Landing Zone?
Jordan: A prescriptive multi-account AWS architecture. AWS provides a reference architecture (best practices for account structure, networking, security, compliance). We implement it with Terraform.
Alex: Why 'landing zone'?
Jordan: Metaphor: when an airplane lands, it needs a runway, taxiway, gates, security. Landing Zone is the equivalent for cloud projects. When a new team starts using AWS, they 'land' in a pre-built, compliant structure.
Part 2: The Multi-Account Architecture
Alex: How many accounts do you need?
Jordan: At minimum: 3 accounts for a small company. More for larger companies.
Security Account: Logging, monitoring, security tools. Central security team manages.
Shared Services Account: Common services (DNS, email, monitoring infrastructure). Shared across all projects.
Production Account: Where production workloads run.
Staging Account: Pre-production environment.
Development Account: Development workloads.
Management Account: Billing, organization management.
Alex: That's a lot of accounts.
Jordan: Yes. But each has a purpose and isolation. If production is compromised, development is unaffected.
Part 3: Why Multiple Accounts?
Alex: What's the benefit?
Jordan: Several:
Isolation: Blast radius limited to one account. A mistake in dev doesn't affect prod.
Cost Allocation: Each account has its own billing. Easy to see which team/project costs what.
Access Control: IAM policies at account level. Dev team can't access prod account.
Compliance: Production meets strict compliance. Development is looser. Both coexist without conflict.
Scaling: AWS has account-level limits (VPCs per account, security groups per VPC, etc.). Multiple accounts bypass these.
Blast Radius Reduction: Compromise of dev credentials doesn't expose prod secrets.
Operational Simplicity: Separate teams manage separate accounts. No stepping on toes.
Alex: This is architecture for safety?
Jordan: Completely. Landing Zones are about safety at scale.
Part 4: Account Structure
Alex: Walk me through the account structure.
Jordan: Standard AWS Landing Zones structure:
Organization (AWS Organizations service)
├── Management Account (billing, organization management)
│ └── AWS Organizations
│ └── Consolidated Billing
├── Security Account (centralized security, logging, monitoring)
│ └── GuardDuty (threat detection)
│ └── CloudTrail (audit logs)
│ └── SecurityHub (security findings)
├── Shared Services Account (common infrastructure)
│ └── VPC with NAT Gateway
│ └── Route 53 (DNS)
│ └── SSM Parameter Store
├── Production Account (prod workloads)
│ └── EKS Cluster
│ └── RDS Database
│ └── Application Services
├── Staging Account (pre-prod testing)
│ └── EKS Cluster (staging)
│ └── RDS Database (staging replica)
└── Development Account (dev workloads)
└── Developer testing
└── Loose security (for speed)
Each account is independent but connected through networking.
Alex: How do they communicate?
Jordan: Several options:
- VPC Peering: Direct network connection between VPCs
- Transit Gateway: Central hub connecting all VPCs
- PrivateLink: Private endpoint connections
- VPN: Over internet (slower)
Most Landing Zones use Transit Gateway for hub-and-spoke model. All accounts connect to central Transit Gateway.
Part 5: Networking in Landing Zones
Alex: How does traffic flow?
Jordan: Hub-and-spoke with Transit Gateway:
Dev Account VPC ──┐
│
Staging VPC ──────┼──── Transit Gateway ──── Shared Services VPC
│ (NAT, DNS, etc)
Prod VPC ─────────┘
Dev needs to reach Staging or Prod? Traffic goes through Transit Gateway. Shared Services need to reach Prod? Same path. Central point for monitoring and security.
Alex: Does everything route through Shared Services?
Jordan: No. You configure routing rules. Dev to Staging is direct (via Transit Gateway). Both reach Shared Services for DNS. But Dev doesn't route through Prod.
Alex: Flexibility?
Jordan: Yes. You define the network topology. Transit Gateway makes it scalable.
Part 6: Security & Compliance Controls
Alex: How do you enforce security?
Jordan: Multiple layers:
IAM Policies: Who can do what. Prod team can't modify dev resources.
Service Control Policies (SCPs): Organization-level restrictions. Can't create unencrypted S3 buckets, can't disable CloudTrail.
VPC Flow Logs: Record all network traffic. Audit for compliance.
CloudTrail: Record all API calls. Who changed what when.
Config Rules: Continuous compliance checking. S3 bucket isn't encrypted? Alert.
GuardDuty: Threat detection. Unusual network traffic? Alert.
Network ACLs & Security Groups: Firewall rules at account/subnet level.
Alex: Security is built in?
Jordan: Not optional. Landing Zones enforce security and compliance from day one.
Part 7: Centralized Logging
Alex: Where do logs go?
Jordan: Central Security Account. All accounts send logs there:
CloudTrail: API call logs from all accounts VPC Flow Logs: Network traffic from all accounts Application Logs: S3 bucket in Security Account GuardDuty Findings: Security alerts
Central location for audit, compliance, and investigation.
Alex: Who has access?
Jordan: Security team only. Application teams can't access other teams' logs. Auditors can read (via special roles). Protects privacy while enabling compliance.
Part 8: Terraform Implementation
Alex: How do you implement Landing Zones with Terraform?
Jordan: AWS provides Control Tower (clickops solution) or you build manually with Terraform.
Terraform approach:
- AWS Organizations module: Set up organization structure.
- Account module: Create Security, Shared Services, Prod, Dev accounts.
- Networking module: Create VPCs, Transit Gateway, subnets.
- Security module: Enable CloudTrail, GuardDuty, Config Rules.
- IAM module: Define cross-account roles, policies.
- Monitoring module: CloudWatch dashboards, alerting.
All defined in Terraform. Version controlled. Reproducible.
Alex: Who maintains this?
Jordan: Platform team. They define the Landing Zone blueprint. Application teams use it.
Part 9: Application Team Onboarding
Alex: New team joins. What do they do?
Jordan: They don't create accounts or infrastructure. They use Landing Zone:
- Request resources: 'I need prod and dev environments'
- Platform team provisions: Terraform creates accounts, VPCs, databases.
- Team gets credentials: Access to their dev account (full), prod account (limited).
- Pre-built compliance: Everything is already encrypted, logged, monitored.
- Deploy applications: Use Kubernetes (already set up in EKS), deploy via ArgoCD.
No infrastructure work. They focus on applications.
Alex: That's self-service?
Jordan: Sort of. Platform team still provisions (via Terraform automation). But process is streamlined. Not manual.
Part 10: Cost Allocation & Chargeback
Alex: Multiple accounts means multiple bills?
Jordan: Yes. Consolidated Billing aggregates into one invoice. But you can see costs per account.
Cost allocation:
- Dev team's account: $2,000/month
- Staging: $4,000/month
- Prod: $15,000/month
Each team knows their costs. Can optimize. Finance can chargeback to teams. Accountability.
Alex: Prevents cost waste?
Jordan: Massively. When people see their costs, they optimize. Old dev resources running? They shut it down.
Part 11: Scaling Beyond Initial Accounts
Alex: Start with 6 accounts. Eventually you need more?
Jordan: Yes. Additional project accounts, data accounts, etc. Landing Zone is flexible.
Evolving structure:
├── Management
├── Security
├── Shared Services
├── Prod (main)
├── Staging (main)
├── Dev (main)
├── Data Account (new)
├── Project X Prod (new)
├── Project X Staging (new)
└── Project X Dev (new)
All connect via Transit Gateway. Same security model. Just more accounts.
Alex: Terraform scales with this?
Jordan: Yes. Terraform modules generate accounts programmatically. Add new project account by updating a variable. Done.
Part 12: Account Closure & Cleanup
Alex: What if you want to shut down an old project?
Jordan: Terraform destroy the account. Removes all resources, closes the account. Clean.
Alex: What about backups?
Jordan: Before destroying, export data. Or keep backups in long-term storage account. Terraform can handle this (export databases, archive S3 buckets).
Alex: Safety?
Jordan: Terraform requires confirmation before destructive operations. And you review in Git before applying.
Part 13: Common Landing Zone Patterns
Alex: Are there standard patterns?
Jordan: Yes. AWS publishes reference architecture. Also third-party tools:
AWS Control Tower: Fully managed Landing Zone. Clickops + automation. Good for small to medium.
Terraform Modules: Community modules (terraform-aws-modules). Can build custom Landing Zone.
Terraform Cloud Blueprints: Pre-built Terraform configurations.
Third-party (Gruntwork, Cloudposse): Commercial Terraform modules with support.**
Alex: We use custom Terraform?
Jordan: We have a mix. AWS modules for VPC and basic setup. Custom modules for our specific patterns.
Part 14: Challenges & Best Practices
Alex: What goes wrong?
Jordan: Several pitfalls:
Over-Compartmentalization: Too many accounts makes management harder. Balance is key.
Cross-Account Complexity: Debugging issues across accounts is hard. Solution: good monitoring and logging.
Credential Rotation: More accounts means more credentials to manage. Solution: use IAM roles, automatic credential rotation.
Account Limits: AWS has limits per account (VPCs, NAT Gateways, etc.). Design for these limits.
Cost Visibility: Billing across accounts can be confusing. Solution: good tagging and cost allocation.
Onboarding Complexity: New teams confused by account structure. Solution: good documentation and automation.
Alex: Mostly operational challenges?
Jordan: Yes. Landing Zones are architecturally clean. Operationally complex.
Part 15: Landing Zones & Terraform Workspaces
Alex: How do workspaces fit?
Jordan: Terraform workspaces are a feature (separate state per workspace). Landing Zones might use workspaces for different accounts.
Example:
terraform workspace prod (apply to prod account)
terraform workspace staging (apply to staging)
But for true account separation, using separate Terraform backends (one per account) is cleaner. Avoids accidental cross-account operations.
Part 16: Bridging to Modules
Alex: We've covered individual accounts and structure. What's the pattern for reusability?
Jordan: Modules. How do you package Landing Zone components so they're reusable across companies? That's what's next.
Alex: So Landing Zones are the organizational pattern. Modules are the reusable building blocks?
Jordan: Exactly. Landing Zones define the overall structure. Modules define the components.
Part 17: The Bottom Line
Alex: If I pitch this?
Jordan: Landing Zones are a prescriptive multi-account AWS architecture. Instead of one account (risky), you have separate accounts for dev, staging, production, security, shared services. Each is isolated but connected. Security and compliance are built-in. Costs are tracked per account. New teams onboard quickly with pre-built infrastructure. Everything is managed by Terraform. Scaling is handled automatically.
Alex: And the commitment?
Jordan: We're saying: multi-account is non-negotiable. Safety through isolation. We own the architecture (via Terraform) and scale it as we grow.
Key Takeaways
| Aspect | Details |
|---|---|
| Core Concept | Multi-account AWS structure with separation of concerns and security |
| Primary Benefit | Isolation, compliance, cost tracking, security enforcement |
| Account Types | Management, Security, Shared Services, Production, Staging, Development |
| Networking | Transit Gateway hub-and-spoke for inter-account communication |
| Security | SCPs, IAM policies, VPC Flow Logs, CloudTrail, GuardDuty, Config Rules |
| Cost Tracking | Per-account billing for chargeback and optimization |
| Scaling | Terraform generates additional accounts programmatically |
| Best Practices | Centralized logging, least-privilege access, automated compliance, good tagging |
Related articles
August 8, 2026 : 8 min read
Architecture Stack: Cloud Center of Excellence
August 29, 2026 : 11 min read
Architecture Stack: Risk Controls
August 23, 2026 : 9 min read
Architecture Stack: Policy as Code
July 11, 2026 : 11 min read
Architecture Stack: DevSecOps & Security Automation