Context: why AWS architecture decisions feel different in India + GCC
The standard AWS reference architecture in the public documentation is written from a US-East perspective. Region selection is treated as a routing detail, KMS key policies are described in generic IAM language, and the cost discussion typically assumes a US enterprise spend profile. Indian and GCC enterprise teams hit a different reality.
The DPDP Act in India and the corresponding PDPL regimes in the UAE, Saudi Arabia, and Bahrain make region selection a board-level concern, not a routing detail. Indian customer data lives in ap-south-1 (Mumbai) or ap-south-2 (Hyderabad). the question is no longer "should we be in India" but "should we be in one Indian region or two." Multi-region failover for an Indian enterprise has a different shape than the US East-West sense, because the latency between Mumbai and Hyderabad is meaningfully lower than US East-West, and the regulatory boundary at the international border is meaningfully harder.
This piece is the reference architecture Dcrayons deploys for enterprise AWS customers in India and the GCC. It covers four areas the public documentation under-foregrounds: region pairing for failover within the regulatory boundary, KMS customer-managed-key governance with HSM-backed root keys, IAM identity boundaries for multi-account architectures, and the FinOps baseline that prevents the month-3 cost-shock conversation.
Architecture: region pairing inside the regulatory boundary
The Dcrayons enterprise pattern for Indian customer data:
Primary region: ap-south-1 (Mumbai). The mature region with full service coverage. Compute (EC2, ECS, Fargate, Lambda), data (RDS, Aurora, DynamoDB, S3), networking (VPC, ALB, CloudFront), and security (KMS, Secrets Manager, GuardDuty) are all available.
Failover region: ap-south-2 (Hyderabad). Newer region with the workhorse services available; some niche services are not yet in ap-south-2 and either require staying in ap-south-1 or accepting a degraded fallback during a failover scenario. The dependency matrix needs to be checked per workload.
Cross-region replication patterns: - S3: cross-region replication (CRR) configured with customer-managed KMS keys in each region, lag typically 15 minutes for warm-replica use - Aurora: global database with ap-south-1 primary + ap-south-2 secondary, target RPO under 1 second, target RTO under 1 minute for promotion - DynamoDB: global tables with both regions as replicas, last-writer-wins conflict resolution - Secrets Manager: secrets replicated across regions, each region's secret encrypted with its own region-local KMS key
For GCC customers, the equivalent pair is me-central-1 (UAE) primary + me-south-1 (Bahrain) secondary, with the same service-availability check + cross-region replication discipline.
The architectural decision that comes up in every enterprise engagement: should we deploy to BOTH regions active-active, or active-passive with failover only? The honest answer is workload-dependent. Active-active doubles infrastructure cost; active-passive trades cost for a defined RTO. For most Indian enterprise workloads we recommend active-passive with quarterly failover drills, because the operational complexity of active-active rarely justifies the marginal availability gain. Customers with regulatory requirements for zero RPO + sub-30-second RTO get active-active; everyone else gets the cheaper pattern with explicit RTO targets.
KMS governance: customer-managed keys, HSM-backed root, key rotation
Encryption-at-rest is table stakes. Enterprise governance is about WHO controls the encryption keys.
AWS-managed keys (default) are encrypted with keys AWS owns and rotates. Acceptable for low-sensitivity workloads but not for anything that hits a DPDP, SOC 2, or ISO 27001 audit. because the customer cannot demonstrate sole control of the encryption boundary.
Customer-managed keys (CMKs) are KMS keys the customer creates, controls, and audits. The CMK lives in the customer's AWS account; AWS uses it to encrypt customer data at rest in S3, EBS, RDS, DynamoDB, and other services. The audit log of every key use lands in CloudTrail.
HSM-backed root keys raise the governance bar further. AWS CloudHSM gives the customer a dedicated hardware security module instance with FIPS 140-3 Level 3 certification. CMKs can be created with key material that originated in the customer's CloudHSM, meaning even AWS cannot access the underlying key material. For Indian enterprise banking, fintech, and healthcare workloads we deploy this pattern; for general SaaS workloads CMKs without HSM-backed root are sufficient.
The Dcrayons CMK governance discipline:
- Per-application CMK rather than one shared CMK across the AWS account. blast-radius isolation if a single application's IAM is compromised
- Per-region CMK (not multi-region) for data that does not need cross-region replication. keeps the key inside the regulatory boundary
- Automatic key rotation enabled (AWS rotates the cryptographic material annually; the key alias and ID stay stable)
- CMK deletion is gated by a 30-day pending-deletion window; alerts fire if a key enters deletion state unexpectedly
- IAM policy on each CMK explicitly enumerates the services + roles that can use it. principle of least privilege
IAM identity boundaries: multi-account architecture, no shared root
Enterprise AWS architectures should not run in a single account. AWS Organizations + Control Tower is the standard pattern for separating environments, blast radius, and billing.
The Dcrayons enterprise account topology for Indian customers:
- Root organisation account (master billing only, no workload runs here)
- Security tooling account (CloudTrail aggregation, GuardDuty central, Security Hub central, IAM Identity Center)
- Shared services account (DNS via Route 53, Transit Gateway, CMK root, observability tooling)
- Production account per workload-grouping (one for the customer-facing app, one for the internal admin, one for data pipelines)
- Staging account mirroring production
- Dev / preview account for feature branches and developer experimentation
Identity is centralised via IAM Identity Center (formerly AWS SSO), federated to the customer's existing identity provider (Okta, Azure AD, Google Workspace). Engineers do not have IAM users; they have permission sets that map to roles per account. Access is time-bounded for sensitive operations. production write access is granted on demand for a 4-hour window with documented justification, not permanently provisioned.
CloudTrail aggregates audit logs from all accounts into the security tooling account's S3 bucket with object-lock enabled. The bucket is in a third region (us-east-1 typically) for blast-radius separation from the primary workload regions; cross-region replication keeps a copy in ap-south-2 for Indian-residency audit compliance.
This is the layer that consistently surprises enterprise teams migrating from a single-account AWS setup. The migration cost is meaningful (refactoring shared resources, retraining engineers on the new identity model) but the audit posture is dramatically stronger.
Audit-log immutability: the CloudTrail + S3 + object-lock pattern
The audit-log discipline matters as much as the IAM model.
The Dcrayons pattern: - CloudTrail enabled in every region (including regions the customer does not operate in. catches unexpected activity) - All events logged: management events + data events + insight events - Logs aggregated to one S3 bucket in the security tooling account - Bucket configured with S3 Object Lock in compliance mode, with a 7-year (or customer-policy-driven) retention period that cannot be shortened even by the root account - Bucket encrypted with a dedicated CMK that is keyed against IAM Identity Center. only the security audit role can decrypt; even the AWS account root cannot read the logs without the audit role's credentials - AWS Athena tables defined against the audit log for ad-hoc query (responding to "show me everything did on ")
This pattern survives a hostile audit because the auditor can see that the customer has structural controls preventing log tampering, not just policy commitments.
FinOps baseline: the cost discipline that prevents the month-3 surprise
AWS bills get expensive fast if architecture is naive. Patterns we apply on every Dcrayons enterprise engagement:
Cost allocation tags from day one. Every taggable resource (EC2 instance, RDS instance, S3 bucket, Lambda function) carries tags for: environment (prod / staging / dev), application, owner team, cost-centre, customer (for multi-tenant workloads). Cost Explorer queries break the bill down by any of these dimensions. Tagging applied retroactively after a cost incident is too late.
Right-sizing on a quarterly cadence. Compute Optimizer surfaces under-utilised instances; we review the report quarterly and right-size or shut down what is not used. Typical first-quarter savings on a year-old workload: 15-30 percent of compute spend.
Reserved Instances or Savings Plans for baseline load. For workloads with predictable baseline (most enterprise apps have a clear 70-percent-of-the-time minimum), a 1-year Savings Plan covering that baseline cuts 30-40 percent off the equivalent on-demand cost. On-demand stays for the burst.
S3 storage tiering. S3 Intelligent-Tiering moves objects between Frequent Access, Infrequent Access, and Archive automatically based on access patterns. For audit logs, backups, and historical content we always enable it; the monitoring fee is trivial against the savings on cold data.
Lambda concurrency limits. Lambda functions without concurrency caps can run away during an incident or a misconfigured event source. Production Lambdas have explicit concurrency caps + dead-letter queues; this is governance, not optimisation.
The Dcrayons cost baseline we hold for enterprise customers: month-over-month variance under 5 percent excluding business-driven scale changes. Weekly cost review surfaces anomalies within days, not at end-of-month surprise.
Production checklist: the rollout sequence
For an enterprise AWS programme in India or the GCC:
- AWS Organizations setup: master billing account, security tooling account, shared services account, workload accounts (prod + staging + dev)
- IAM Identity Center: federated to customer IdP, permission sets defined per role, time-bounded access for sensitive operations
- Region selection: primary + failover region pair inside regulatory boundary, service-availability matrix per workload
- Network: VPC + subnets per account, Transit Gateway in shared services, no direct internet exposure of private workloads
- KMS: per-application CMKs with automatic rotation, HSM-backed root if regulatory profile demands, key-deletion alert wired
- CloudTrail: enabled in every region, aggregated to security tooling S3 bucket with Object Lock + dedicated CMK
- GuardDuty + Security Hub: centralised in security tooling account, alerts wired to on-call channel
- Cost allocation tags: enforced via Service Control Policies, every resource tagged at creation
- Backup: AWS Backup or per-service backup configured with retention policies, cross-region copies for workloads requiring it
- Workload deployment: Terraform or CloudFormation IaC in customer's git repo, CI/CD pipeline with role-based deploy permissions
- Observability: CloudWatch metrics + logs + alarms, ELK or Datadog if customer demands, runbook for common incident shapes
- Cost baseline + FinOps: monthly cost review, quarterly right-sizing, 1-year Savings Plans for baseline load
- Compliance: audit-log access pattern documented for customer's compliance team, quarterly review cadence agreed
- DR + failover: documented RTO + RPO targets, quarterly failover drills, runbook tested with actual cutover (not just paperwork)
References + linked context
- AWS Well-Architected Framework, with the India-specific overlay we maintain internally
- AWS Multi-Account Strategy + Landing Zone documentation
- AWS KMS + CloudHSM whitepapers
- Dcrayons production reference:
new.dcrayons.app+admin.dcrayons.apprun on AWS Lightsail Ubuntu-1 with the audit-trail + KMS pattern described here, scaled-down for our own ops size - Dcrayons glossary: EC2, Lightsail, ECS, RDS, CloudFront
If your enterprise AWS programme has hit a region-residency, KMS governance, or FinOps wall, this is the architecture we deploy. Reach out via the contact form for a 30-minute architecture review against your current setup.



