Prepare & deploy — CHT on AWS
8 min read
This page covers everything that happens between "we've agreed on a design" and "the tenant is live": who is responsible for what, what the client must have ready before kick-off, and the sequence of deployment and cutover.
Read Plan your deployment first — the three design choices (account topology, network access, data hosting) must be settled before the work described here begins.
The timelines, RACI and landing-zone checklist below are the baseline assumptions for a greenfield CHT on AWS when Day-0 is complete at kick-off. Individual engagements stay flexible around that baseline (who implements the workload VPC as code, exact subnet layout, calendar length) without dropping the Day-0 bar or the phase order.
Shared responsibilities (RACI)
A CHT deployment is led and executed by Unique; the client's primary role during setup is to review and approve pull requests, provide access, and act as the approval authority for security and infrastructure decisions. The client owns the AWS account and everything that requires account-owner privilege or client-internal coordination (networking, identity federation, guardrails); Unique owns the application platform and its lifecycle. The table below summarises the split for the major workstreams.
Workstream | Client | Unique |
|---|---|---|
AWS account(s) provisioning & organization setup | Responsible | Consulted |
Network hub (connectivity account, Direct Connect, firewall, egress inspection) | Responsible | Consulted |
VPC, subnets & VPC Endpoints in the workload account | Responsible | Consulted |
Egress allow-list entries (registries, GitHub, IdP, SaaS connector domains) | Responsible | Consulted |
Identity federation (client IdP ↔ application IdP) | Responsible | Consulted |
KMS customer-managed keys & key policy | Responsible | Consulted |
Service control policies / guardrails | Responsible | Informed |
EKS cluster & platform services (GitOps, ingress, autoscaling, monitoring stack) | Accountable* | Responsible |
Application, AI & data workloads on EKS | Informed | Responsible |
Model access enablement (foundation-model service) | Responsible | Consulted |
Ongoing platform operations & upgrades | Informed | Responsible |
*The client owns the account in which the cluster runs and grants Unique the scoped operational access needed to deploy and run the platform; Unique performs the work.
How to read "Responsible" vs implement. For account, network hub, guardrails, keys and IdP federation, the client truly owns the work. For the workload VPC, subnets and VPC Endpoints, Responsible means the client owns the landing zone in their account and must approve the design — Unique commonly implements that layer as PR-reviewed infrastructure-as-code under the client's approval authority (same pattern as the EKS/platform row). Who writes the Terraform is an engagement choice; it does not move account ownership or the Day-0 networking approval.
Effort & timeline, at a glance.
Setup: A greenfield deployment typically takes 8–14 weeks end to end (with about half a day per week from the client) — assuming all Day-0 requirements are provided at kick-off without later changes. The client-side foundation and approval work (accounts, network hub, VPC, endpoints, identity, keys, guardrails, security gates) is the critical path and is typically the longest pole; platform deployment onto a prepared landing zone is fast by comparison. Get the network, identity and security-gate prerequisites finalised early — they gate everything else.
Flexibility on the calendar. The 8–14 week band remains the planning baseline. Prior CHT deliveries show that incomplete Day-0 items (especially the security-gate list, guardrails, DNS, egress allow-list and connectivity) stretch Phase 1 and therefore the overall window — often by several weeks per late gate — without changing the phase order or the Day-0 checklist itself. Re-forecast only when a Day-0 item slips; do not silently compress platform phases to "make up" foundation delay.
Migration: Moving an existing tenant adds a further 8–14 weeks for data migration, security-gate iteration and environment stabilisation.
Prerequisites — what the client provides
Deployment is smooth only when these are ready. The Day-0 items must be settled before kick-off; the second group can follow within a week or two. Every security gate or guardrail added after kick-off extends the timeline by weeks, so finalise those lists up front.
Day 0 — required before kick-off
Item | Notes |
|---|---|
AWS account owner / administrator access | For the workload account (and the connectivity account in the hub-and-spoke model). Can and must be revoked or automated away after setup — standing owner access defeats the purpose of CHT. |
Version-control (GitHub) access | For the GitOps repositories. Starting with a single repo is fine; a repo-per-cluster plus a shared repo layout can be adopted later. |
Security-gates list — complete & upfront | Image scanning, admission control and any mandatory security review. Every gate added after kick-off adds weeks to the timeline. |
Applicable guardrails (SCPs & AWS Config rules) | The full list, or a named contact. Incremental additions post-kick-off break deployments. |
DNS delegation | Delegated zone or records for application endpoints — NS (preferred) or CNAME — from the central networking team. |
Networking approval | Network plan and traffic shape approved: CIDR / address-space sizing and overlay strategy, egress/ingress rules, and the internet-exposure decision (Direct Connect / Transit Gateway vs CloudFront — affects the certificate strategy). |
SLA & operational targets | Availability, RTO/RPO, incident-response times and maintenance windows. Drives HA, backup and on-call design — hard to retrofit later. Unique can propose a baseline (99.5% availability, multi-AZ) for review. |
Production-checklist framework | Go-live checklists: AI model deployment, load balancer / ingress, database, key management, object storage, plus a security & compliance umbrella. |
Certificate landscape (CA & certs) | Custom certificates and/or a private CA are supported but must be known upfront. |
Internal champion + delegate | A named client owner with approval authority to unblock decisions — and a backup. Without this, deployments stall. |
AWS account manager / TAM contact | Some model and service enablements require AWS approval, which is significantly faster with account-team involvement (e.g. Bedrock model access and quota). |
Cluster-count decision | Fully separate clusters/accounts per environment (maximum isolation, clean promotion) vs a shared cluster. A minimum of two environments (test + production) is recommended. More can be added later — see Plan your deployment. |
Ideally Day 0 — can wait 1–2 weeks
Item | Notes |
|---|---|
Foundation-model (Bedrock) access | The client enables model access directly — Unique cannot transfer model access or keys out of its own deployments. It is a hard prerequisite for the AI layer (model proxy, assistants) going live, so request it early. |
Log & metrics drain | Routing to the client's CloudWatch / observability sinks or SIEM. AWS-native sinks are used if nothing is specified. |
Terraform automation via OIDC | Federated CI identity (IAM roles trusted from GitHub via OIDC) for infrastructure automation. Replaces the initial owner access once setup is complete. |
Kubernetes API access for Unique (support) | Secure, audited access to the EKS control plane via IAM Identity Center / SSM — API access only, no interactive exec into pods. |
Landing-zone technical checklist
The concrete infrastructure that must exist (or be scheduled) in the workload account before platform deployment begins. The items below are the AWS reference landing zone (see Reference architecture); exact subnet naming and tier count may be adapted to the topology chosen in Plan your deployment, as long as the same capabilities are covered (private cluster path, private PaaS reachability, inspected egress for the short external allow-list, management access).
51 incomplete AWS account(s) provisioned per the chosen topology (standalone, or connectivity + workload); IAM Identity Center enabled with no long-lived IAM users 52 incomplete VPC and the five subnet tiers sized across three Availability Zones (cluster, node, pod, isolated, management) 53 incomplete Connectivity established per the chosen access model (Direct Connect / Transit Gateway for internal; public entry + WAF for CloudFront) 54 incomplete VPC Endpoints created for all AWS services the platform uses (foundation-model, object storage, key management, container registry, document extraction, monitoring, session management, and the rest) 55 incomplete Egress allow-list populated — HTTPS 443 only, restricted to container registries, GitHub, the client IdP, and any SaaS connector domains 56 incomplete Client IdP ready to federate with the application identity provider 57 incomplete KMS customer-managed keys created with key policies agreed; configuration recording / audit trail enabled 58 incomplete Data-hosting model chosen (managed AWS data services vs cluster-native); if managed, the relational, cache, search and object-storage services provisioned and reachable from the workload subnetsDo not route AWS-service traffic through the firewall. AWS services (foundation-model, object storage, key management, container registry, document extraction, monitoring, session management) are reached over private VPC Endpoints inside the VPC. The egress allow-list is only for the short list of external hostnames — container registries, GitHub, the client IdP and SaaS connector domains. Conflating the two is the most common preparation mistake — see Reference architecture for the full endpoint list.
Deployment sequence
Once the landing zone is verified, the platform is deployed in a repeatable order. Each phase gates the next. The durations below are approximate and assume the prerequisites are ready; the client-side foundation and approval work is the main driver of the overall 8–14 week setup window.
Phase | What happens | Exit criteria | Typical duration |
|---|---|---|---|
| Confirm accounts, VPC, subnets, endpoints, egress, keys, identity and guardrails against the checklist above | All prerequisites verified; connectivity and endpoint reachability tested | ~2–4 weeks (critical path — longer if foundations or security gates are still being finalised) |
| EKS cluster and platform services stood up — GitOps controller, ingress gateway, certificate management, secrets integration, autoscaling, monitoring stack | Cluster healthy; GitOps reconciling; ingress and observability live | ~1-2 weeks |
| Provision/connect the chosen data services (managed or cluster-native) and validate connectivity and encryption | All datastores reachable, encrypted with the client's keys, and backed up | ~1-2 days |
| Deploy frontend, application services, and AI services (model proxy, assistants, vector and text search) | Services running; model calls succeed over the private endpoint | ~1–2 weeks |
| Complete IdP federation; validate single sign-on and role mapping | Users authenticate through the client IdP; access scoped correctly | ~2–4 days |
| End-to-end functional checks, guardrail-compliance review, monitoring and alerting confirmed | Acceptance criteria met; tenant handed to operations | ~2-3 weeks |
Sequencing tip. Foundation-model access enablement and IdP federation both involve client-side approvals that can take time. Start them during Phase 1 rather than waiting for the phase in which they are consumed — doing so keeps them off the critical path.
Migrating an existing tenant
When an existing tenant is being moved into a client-hosted account (rather than a greenfield deployment), the sequence above still applies, with two additions. Migration typically adds a further 8–14 weeks on top of the setup window for data migration, security-gate iteration and environment stabilisation:
Data migration — existing relational, search, vector and object data is exported from the source environment and imported into the target data services during Phase 3, with a validation pass before cutover. The co-existence of the two tenants (source and target) must be planned carefully.
Cutover window — a defined window in Phase 5/6 during which traffic is switched to the new tenant. Plan a rollback path in case verification fails.
Next
Once the tenant is live, day-two concerns — availability targets, monitoring, log drain, access and guardrail-drift handling — are covered in Operate.