IAM / VPC / RDS / Terraform / Cost
Hire AWS Engineers
in Morocco
Your bill is growing faster than your traffic, one person understands the account, and nobody wants to touch Terraform on a Friday. That is the job. We take it.
Senior engineers working inside your own AWS organisation, on your clock. Morocco on UTC+0, so a migration window gets a live person rather than a ticket.
Free / you keep the findings either way
01 / The test
Twelve things an AWS engineer
should be able to answer
Certifications tell you somebody passed a test. These tell you somebody has been on call.
Use this list on us. Use it on every other vendor you are talking to. If a candidate stalls on more than three, keep looking.
- 01
Why your NAT gateway can cost more than your servers
It bills hourly and again per gigabyte processed. Route S3 and DynamoDB through gateway VPC endpoints, which are free, and that line drops. We have seen NAT outrank compute on a bill more than once.
- 02
The three IAM policy types, and which one is failing
Identity, resource, trust. An
sts:AssumeRolecall needs permission on both sides. If someone cannot explain why a role withAdministratorAccessstill gets denied, they have not debugged real IAM. - 03
Security groups are stateful. NACLs are not.
Return traffic flows back through a security group automatically. Through a network ACL it does not, and you must open the ephemeral port range. This causes a large share of mysterious timeouts.
- 04
What actually happens during an RDS Multi-AZ failover
The DNS record swaps and open connections drop. Roughly a minute of disruption. Your application needs retry logic and pool recycling or it stays broken after the database is healthy. Multi-AZ is availability. Read replicas are read scaling.
- 05
Cross-AZ traffic is billed in both directions
Spreading a chatty service across availability zones for resilience is correct. Doing it without measuring the transfer cost is how a bill grows with no growth in traffic.
- 06
gp3 over gp2, nearly always
gp3separates IOPS and throughput from volume size. Ongp2you buy a bigger disk to get a faster disk. Most estates still on gp2 are paying for capacity they never use. - 07
ALB or NLB, and why
ALB is layer 7 for HTTP routing, host and path rules, native auth. NLB is layer 4 for static IPs, non-HTTP protocols and very high throughput. The wrong choice shows up months later as a limitation, not an error.
- 08
IMDSv2 should be required, not optional
The instance metadata service is how a server-side request forgery bug becomes stolen credentials. Session-oriented
IMDSv2closes that path. It is one setting and it is still off in a lot of accounts. - 09
A KMS key policy is the root of trust
IAM permissions alone do not grant access to a key. If the key policy does not allow the principal, the answer is no regardless of what the identity policy says. People lose days to this.
- 10
S3 has been strongly consistent since 2020
Read-after-write is consistent now. Architectures still carrying retry loops and
sleep()calls written around the old eventual consistency are adding latency to solve a problem that no longer exists. - 11
Terraform state needs locking
State in S3 with a DynamoDB lock table. Without the lock, two engineers applying at once corrupt state, and recovering from that is a bad afternoon. If someone has never seen a state lock, they have only ever worked alone.
- 12
Savings Plans, Reserved Instances, Spot, and when each is wrong
Steady baseline workloads sitting on on-demand pricing is the most common finding on a first look at any account. Spot is excellent for interruptible batch and dangerous for a stateful primary.
Question 01, in full
# Traffic to S3 leaves via the NAT gateway by default,
# and you are billed per GB processed for the privilege.
resource "aws_vpc_endpoint" "s3" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.${var.region}.s3"
vpc_endpoint_type = "Gateway" # Gateway = no charge
route_table_ids = aws_route_table.private[*].id
}
# Same again for DynamoDB. Two resources.
# On a busy account this is the single cheapest win there is.We are not an AWS partner consultancy and we hold no certification wall. If a certificate count is how you are shortlisting, we will lose that comparison. Ask the questions above instead, and judge the answers.
02 / The bill
Where the money actually goes
Almost nobody is overspending on compute. They are overspending on the things nobody puts on a dashboard. In rough order of how often we find them.
| # | The leak | Why it happens | The fix |
|---|---|---|---|
| 01 | Steady workloads on on-demand | Nobody owns the commitment decision | Savings Plans on the measured baseline |
| 02 | NAT gateway data processing | Everything routes through it by default | Gateway VPC endpoints for S3 and DynamoDB |
| 03 | Orphaned EBS volumes and elastic IPs | Instances die, storage does not | Tag policy plus a monthly sweep |
| 04 | Cross-AZ chatter | Resilience added without measuring transfer | Zone-aware routing for the loudest services |
| 05 | CloudWatch log ingestion | Debug logging left on in production | Sampling, retention, log levels that mean something |
| 06 | Oversized RDS instances | Sized for a launch-day guess, never revisited | Right-size against observed load, then commit |
| 07 | gp2 volumes | Buying capacity in order to buy IOPS | Move to gp3 and set IOPS directly |
| 08 | Dev environments running all weekend | No schedule, no owner | Scheduled stop and start |
We will not quote you a percentage before we look
Any vendor promising thirty per cent off before seeing your Cost Explorer is guessing from an industry average. We read your actual usage, tell you what we found and what it is worth, and if your account is already tight, you get that answer for free too.
03 / Proof / Secure Asset Portal
Built on AWS, handed over clean
A mortgage asset trading desk was running its entire book out of spreadsheets. Loan tapes arrived as .csv and .xls in no standard format. Matching buyers to assets was a person reading two documents side by side.
What we built on AWS
A tape ingestion pipeline that parses inconsistent spreadsheet formats into structured asset records, an asset profile generator computing LTV, ROI, IRR and yield to maturity, on-demand investor flyer generation with QR codes, and a buyer criteria matching engine.
The security shape
Role-based access with two-factor authentication, PII handled deliberately rather than incidentally, and a full audit trail on every tape submission. With financial data the audit trail is a feature, not logging.
The engineering call
Parsing was the hard part, not the maths. Every seller formats a tape differently. We built for format variance at ingestion instead of demanding that sellers change how they work, because they were never going to.
What changed
Manual tape processing stopped. Buyers self-select matches instead of waiting for someone to run the comparison. Flyers generate on demand, which removed the design bottleneck entirely.
Different problem, same discipline: your account, your data, your audit trail, and infrastructure your own team can run after we leave.
04 / Access
How we work inside your account
You are about to give an outside team credentials to your infrastructure. Here are the rules we work under, before you have to ask for them.
Your organisation, never ours
We work in your AWS accounts. We do not host your workloads in ours and we never resell you AWS capacity with a margin on it. You pay Amazon directly. We would rather that number went down.
Named identities with MFA
Every engineer has their own principal. No shared logins, no long-lived access keys passed around, no root account use. Ever.
Least privilege, the boring version
Access scoped to the engagement and widened only when a specific task forces it. We would rather ask twice than hold standing production write access we do not need.
CloudTrail on from day one
Every action we take is attributable to a named person. That protects you from us and it protects us from you. Both matter.
Secrets in a secrets manager
Not in environment files, not in the repo, not in a shared document, not in a Slack message. If we find yours in one of those places, fixing it is week one.
Same-day revocation
When an engineer rolls off or the engagement ends, access is removed that day. You hold the switch, not us.
Where your data lives
In your regions, chosen by you. Our engineers being in Morocco does not move your data to Morocco. If you have a residency requirement, it is a configuration decision in your own account and we work inside it.
05 / The first month
What the first thirty days look like
Cost work first, because it is measurable fast and it either pays for the engagement or it does not.
- Days 1–3
Read-only access and a real look
Cost Explorer, CloudTrail, the Trusted Advisor checks, the Well-Architected questions that actually apply to you. You get a written list of findings ranked by what they are worth against what they risk.
- Week 1
The free wins
Orphaned volumes, idle elastic IPs, forgotten environments, log retention. Nothing here changes how your system behaves, so it ships immediately.
- Week 2
Right-size, then commit
Match instances and databases to observed load. Only after that do we buy Savings Plans, because committing to the wrong size for a year is worse than paying on-demand for a month.
- Weeks 3–4
The structural work
VPC endpoints, gp3 migrations, IMDSv2 enforcement, the deployment path. Everything as code, in your repository, reviewed by your team.
06 / Rates
Rates
| Architecture review | Free | Written findings, ranked. Yours to keep. |
| One senior AWS engineer, full time | $4,800–$7,200 / mo | Embedded in your team, on your roadmap. |
| Part time beside your platform team | From $2,400 / mo | For when you have the people, not the depth. |
| Your AWS bill | Paid to Amazon | Direct, at your rates. No reseller margin from us. |
Rate moves on seniority, whether you need on-call cover, contract length and how regulated your environment is. Morocco is why the number is what it is: senior rates here are the lowest of any region Lemon.io tracks in its 2026 data, and the reason is local cost of living rather than a discount on the engineering.
07 / Limits
Where we stop
Three jobs we turn down. Better you know now than in month two.
Not us
Round the clock on-call as the product
We can cover an agreed window inside an engagement. If someone awake at 4am every night is the main thing you are buying, hire a managed service provider. We will say so on the first call.
Not us
A hundred-account enterprise landing zone
Control Tower at that scale with a compliance programme attached is a different kind of firm with a different kind of bench. Not us.
Not us
Certification-led procurement
If your shortlist is scored on partner tier and certificate count, we will not make the cut and we are not going to pretend otherwise.
08 / Questions
Straight answers
What AWS work can your team genuinely own?
The infrastructure a product sits on, migrations onto AWS, cost reduction, deployment pipelines, IAM and secrets, and monitoring. We will name the edge of that on the first call rather than let you discover it during a cutover.
What certifications do your engineers hold?
We do not sell on certification counts and we are not an AWS partner consultancy. Put the twelve questions above to us instead. That is a better filter and you can apply it to everyone on your shortlist.
How do you handle production access from Morocco?
Inside your AWS organisation. Named identities with MFA, least-privilege roles scoped to the work, CloudTrail on, secrets in a secrets manager, same-day revocation when someone rolls off. Geography changes nothing about that model.
Can you reduce our AWS bill, and by how much?
Usually yes. We will not give you a number before seeing your account, because that number would be invented. You get the finding list free and you decide whether the work is worth doing.
How do you work with our existing platform team?
As part of it. Your pipelines, your runbooks, your review process. Infrastructure changes go through review like application code, and everything lands in your repository so your team can operate it without us. If your deploys stop working when we leave, we built the wrong thing.
Do you offer 24/7 on-call?
Not as a standalone service. An agreed window inside an engagement, yes. Round the clock as the main deliverable, no, and a managed service provider is the honest answer for that.
Do you work on other clouds?
Yes. We run production on AWS and on Hetzner. Part of the first conversation is often whether AWS is the right home for your particular workload at your particular size. Sometimes it is not.
What does the free review actually include?
A read-only look at cost, security posture and architecture, and a written list of findings ranked by value against risk. About a week. You keep it either way and you are free to hand it to another vendor.
Bring us the bill
Thirty minutes with an engineer. Bring your Cost Explorer screenshot, your architecture diagram, or just the thing that keeps waking someone up. You will get a real opinion and you keep it either way.
Also for you
Python engineers who can read your codebase / a dedicated development team in Morocco