About Expertise Work Managed Apps
Business Website Online Store Sales CRM Team Drive Online Academy Newsletter System Booking System Shared Inbox Knowledge Base Short Links Business Manager Photo Gallery Survey Platform Community Forum Project Boards Estate Agency Car Workshop Restaurant Clinic Photography Studio
AWS
Assess & advise Build & migrate Automate & operate Secure & comply Urgent & go-live
Projects
Hosted Monitoring & Dashboards Self-Hosted Observability Stack Bulk Document Data Extraction Email Deliverability Diagnosis & Repair SEO Migration Recovery AWS Security Review VPS Hardening & ModSecurity Cloud Architecture & Resilience Review SSL & Server Configuration Container Security Review DNS & Email Troubleshooting DevOps Deployment & Rollback Review WordPress Hardening Retainer Data Pipeline Rerun Review Metric Reconciliation
Free Tools
Website Health Check Email Domain Health Check DNS Health Check SSL Certificate Checker Redirect Chain Checker Robots.txt Checker XML Sitemap Validator Docker Compose Checker WordPress Security Check AWS IAM / S3 Policy Checker Domain Registration Lookup Uptime Monitoring Trial Downtime Cost Calculator AWS Cost Estimator Cloud Architecture Self-Assessment DevOps Engagement Builder Self-Managed VPS vs Managed AWS
Blog Certifications Hire Me

Terraform AWS Infrastructure

Your existing infrastructure in code, with state somewhere two people can safely use it.

Price and scope

From $649

Typically $649–$1,999, fixed in writing before anything starts.

4–10 days
Working days, counted from the moment I have access — not from the day you agree.

What moves it up

  • Importing live infrastructure rather than building new, which is most of the work
  • More than one environment or account, where modules and workspaces have to be designed
  • Resources created by a console click years ago that nobody can explain
Three descriptions of one account, disagreeingTerraform code, the state file and the live AWS account. The code and state agree with each other, but a change made in the console means neither matches the account, so every plan proposes changes nobody asked for..tf codewhat you wrotestate filewhat it last sawthe AWS accountwhat is really thereagreedisagreedisagreeone console click, and every plan from now on proposes something nobody asked for
Terraform AWS Infrastructure

What actually goes wrong

Infrastructure as code fails in a specific and recognisable way: the state file. It starts on somebody's laptop, then moves to a bucket with no locking, and the first time two people apply at once the state and the account disagree about what exists — which Terraform resolves by proposing to destroy things. The second failure is quieter and more common. Someone fixes something urgently in the console, nobody imports it, and from then on every plan shows changes nobody intended. At that point people stop reading plans, which is the moment the code stops being a description of anything.

How I find it

  • terraform plan on the current code, read for changes nobody asked for
  • aws s3api get-bucket-versioning on the state bucket, and whether a lock table exists at all
  • terraform state list against a real inventory of the account — what is coded, and what is not
  • aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances, for who is still clicking

What you get

  • Remote state with locking and versioning, so two people applying at once is safe rather than fatal
  • Existing resources imported and reconciled until plan is genuinely empty
  • Modules for the things that repeat, and plain resources for the things that do not
  • A written statement of what is NOT in code, so the gaps are known rather than assumed away
  • A plan-and-review workflow, so applying is something that happens after somebody reads it

Questions

Can you import what I already have without rebuilding it?

Yes — that is the normal case and it is most of the effort. Resources are imported into state and the code is written to match what exists, iterating until plan proposes nothing. Nothing is destroyed and recreated to make the code tidier.

Terraform, OpenTofu, CDK or CloudFormation?

Terraform or OpenTofu unless you are already invested elsewhere — they are the same tool for this purpose today. CDK suits teams who want infrastructure in the language they already write. What matters far more than the choice is that one of them owns each resource, rather than three of them owning some.

What happens when someone changes something in the console?

The next plan shows it, which is the system working. The failure is when that happens so often that people stop reading plans — so part of this is deciding what is allowed to be clicked, and making the drift visible rather than pretending it will not happen.

Do I need separate AWS accounts per environment?

It is the cleanest boundary and it is free, so if you are starting out, yes. If you are not, separate state and strict tagging in one account is workable and I will not make an account restructure a precondition for having your infrastructure in code.

AWS CI/CD Pipeline Setup

A pipeline that deploys on green — and that can put yesterday back without rebuilding it.

From $459 2–5 days

Want this done?

Tell me what you are running and I will come back with a fixed price and a date. If it turns out you do not need this, I will say that instead.

Prefer to talk? Book a free call ↗  ·  Or hire me on Upwork ↗  ·  Typical reply within one business day.

When I answer

Sunday to Thursday, 09:00–18:00 EET. Outside that I will still look, but I will not promise a time.

No 24/7 desk, and I will not pretend otherwise

One person, one time zone. If round-the-clock cover is what you need, you need a team, and I will say so rather than sell you a plan that cannot deliver it.

Your AWS bill stays yours

You pay Amazon directly and you keep control of the account. Nothing here resells your infrastructure or sits between you and your own billing.

A price that starts with "from" is a starting price

Every service page lists exactly what pushes a quote above it, before you ask. You get a fixed number in writing before any work begins.