By connecting Kiro to our AWS account, we generate maps from ๐ซ๐๐๐ฅ๐ข๐ญ๐ฒ.
If the code changes, the map updates.
We show exactly how to set this up in our new video.
Watch it here
www.youtube.com/watch?v=0Hs...
Posts by Sandro Volpicella
Your architecture diagram is lying to you.
It was probably correct on day one.
But then you added a Lambda function.
Changed a DynamoDB index.
And forgot to update the doc.
We all do this.
That is why we started using AI to fix it.
The full list covers more like typosquatting and token management.
But if you fix these 6, you are already ahead of 90% of projects.
We cover more security best practices here: awsfundamentals.com/newsletter
๐. ๐๐ฎ๐๐ข๐ญ ๐ฒ๐จ๐ฎ๐ซ ๐๐๐ฉ๐ฌ
`npm audit` is free. Run it in your CI. Fail the build if there are critical issues.
๐. ๐๐ฌ๐ ๐ ๐ฉ๐ซ๐จ๐ฑ๐ฒ
Tools like Verdaccio let you cache and scan packages before they hit your developer's machines.
๐. ๐๐
๐ ๐ข๐ฌ ๐ง๐จ๐ญ ๐จ๐ฉ๐ญ๐ข๐จ๐ง๐๐ฅ
If you maintain a package, enable 2FA. Attackers target maintainers to inject malicious code.
๐. ๐๐๐๐ซ๐๐ญ๐ฌ ๐๐จ๐ง'๐ญ ๐๐๐ฅ๐จ๐ง๐ ๐ข๐ง ๐๐๐
I've seen API keys in published packages too often. Use `.npmignore` to whitelist what you publish.
`npm install` runs scripts by default. This is how malware gets in. Use `--ignore-scripts` to be safe.
๐. ๐๐จ๐๐ค๐๐ข๐ฅ๐๐ฌ ๐๐ซ๐ ๐ฆ๐๐ง๐๐๐ญ๐จ๐ซ๐ฒ
If you don't use `npm ci`, you are installing different versions than your team. That breaks things. And it opens security holes.
Supply chain attacks are rising. And your `node_modules` folder is the perfect target.
OWASP dropped their Top 10 for NPM security.
It's a wake-up call for many of us.
I summarized the key points you need to know.
๐. ๐๐จ๐ง'๐ญ ๐ญ๐ซ๐ฎ๐ฌ๐ญ ๐ฌ๐๐ซ๐ข๐ฉ๐ญ๐ฌ
So when your infrastructure changes, your diagram changes.
No more stale documentation excuses.
This is how we are doing it now.
Link ๐
www.youtube.com/watch?v=0Hs...
Stop dragging boxes around in Drawio.
Seriously.
It is 2026.
We should have ๐๐ฎ๐ญ๐จ๐ฆ๐๐ญ๐๐ this years ago.
We recorded a video showing how to use AI to generate your AWS diagrams.
It pulls data right from your ๐ฅ๐ข๐ฏ๐ ๐๐ง๐ฏ๐ข๐ซ๐จ๐ง๐ฆ๐๐ง๐ญ.
2. There is a tiny monitoring cost ($0.0025 per 1,000 objects).
So if you have millions of tiny files, stick to Standard.
For everything else, let AWS optimize the costs for you.
We visualized all the S3 storage classes here:
awsfundamentals.com/infographic...
It is available instantly. No retrieval fees. No restoration time.
You literally get the savings of Glacier with the experience of S3 Standard.
โ ๏ธ ๐๐ก๐ ๐จ๐ง๐ฅ๐ฒ ๐๐๐ฏ๐๐๐ญ๐ฌ:
1. Files smaller than 128KB don't get moved (but you still pay the monitoring fee).
If you don't touch a file, it moves it to a cheaper tier automatically.
The savings add up fast:
โข 30 days of no access? Moves to Infrequent Access (Save ~40%)
โข 90 days of no access? Moves to Archive Instant Access (Save ~68%)
And if you need the file back?
We were paying for instant access to logs and backups that no one had touched in a year.
Now, I use ๐๐ ๐๐ง๐ญ๐๐ฅ๐ฅ๐ข๐ ๐๐ง๐ญ-๐๐ข๐๐ซ๐ข๐ง๐ for almost everything.
The concept is simple:
AWS monitors the objects for you.
Stop using ๐๐ ๐๐ญ๐๐ง๐๐๐ซ๐ as your default storage class.
Unless you know exactly how your data will be accessed, you are likely overpaying.
I used to default to Standard for everything.
Then I looked at our bill.
For buckets with millions of tiny files (<128KB).
Because the monitoring fee per object will eat up your savings.
But for logs, media, and backups?
It is the best default setting in AWS.
We broke down all the storage classes in this infographic:
awsfundamentals.com/infographic...
If you suddenly need to read that file?
It opens instantly.
And you pay ๐๐๐ซ๐จ retrieval fees.
This is the killer feature.
With standard Glacier, reading your own backup is a hassle.
With Intelligent Tiering, you don't even notice it happened.
The only time I don't use it?
The fear of needing the data back.
Here is why it is different:
You get the cost savings of archive storage, but the performance of S3 Standard.
If your data sits there for 90 days?
AWS moves it to the Archive Instant Access tier.
You save ~68% on storage.
Everyone tells you to move old data to Glacier to save money.
But they usually forget to mention the pain.
โข Retrieval fees hurt.
โข Waiting 5-12 hours for data sucks.
That is why I prefer ๐๐ ๐๐ง๐ญ๐๐ฅ๐ฅ๐ข๐ ๐๐ง๐ญ-๐๐ข๐๐ซ๐ข๐ง๐ .
It solves the biggest problem with archiving:
Most of these take 5 minutes to set up.
But they save you weeks of headaches later.
Join 11,000+ devs learning real-world AWS: awsfundamentals.com/newsletter
8. ๐๐ฎ๐ซ๐ง ๐จ๐ง ๐๐
๐. This should be non-negotiable for every maintainer.
9. ๐๐ฌ๐ ๐ ๐ซ๐๐ง๐ฎ๐ฅ๐๐ซ ๐ญ๐จ๐ค๐๐ง๐ฌ. Don't use your personal token for CI/CD. Use automation tokens.
10. ๐๐๐ญ๐๐ก ๐จ๐ฎ๐ญ ๐๐จ๐ซ ๐ญ๐ฒ๐ฉ๐จ๐ฌ. `react` is not `rceact`. Typosquatting is real.
6. ๐๐ซ๐จ๐ญ๐๐๐ญ ๐ฒ๐จ๐ฎ๐ซ ๐ฌ๐ฎ๐ฉ๐ฉ๐ฅ๐ฒ ๐๐ก๐๐ข๐ง. Consider a local proxy like Verdaccio to control what comes in.
7. ๐๐จ๐ง'๐ญ ๐ฅ๐๐๐ค ๐ฏ๐ฎ๐ฅ๐ง๐๐ซ๐๐๐ข๐ฅ๐ข๐ญ๐ข๐๐ฌ. If you find a bug, report it privately. Don't put it on Twitter.
4. ๐๐ก๐๐๐ค ๐ฒ๐จ๐ฎ๐ซ ๐ฉ๐ซ๐จ๐ฃ๐๐๐ญ ๐ก๐๐๐ฅ๐ญ๐ก. `npm outdated` and `npm doctor` are built-in tools. Use them.
5. ๐๐๐๐ง ๐๐จ๐ซ ๐ฏ๐ฎ๐ฅ๐ง๐๐ซ๐๐๐ข๐ฅ๐ข๐ญ๐ข๐๐ฌ. Make `npm audit` part of your CI pipeline.
2. ๐๐จ๐๐ค ๐ฒ๐จ๐ฎ๐ซ ๐๐๐ฉ๐๐ง๐๐๐ง๐๐ข๐๐ฌ. Don't just install. Use `npm ci` or `yarn install --frozen-lockfile` to ensure everyone uses the exact same version.
3. ๐๐ฅ๐จ๐๐ค ๐ฆ๐๐ฅ๐ข๐๐ข๐จ๐ฎ๐ฌ ๐ฌ๐๐ซ๐ข๐ฉ๐ญ๐ฌ. Attackers love post-install hooks. Add `--ignore-scripts` to your install commands.
1. ๐๐ญ๐จ๐ฉ ๐ฉ๐ฎ๐๐ฅ๐ข๐ฌ๐ก๐ข๐ง๐ ๐ฌ๐๐๐ซ๐๐ญ๐ฌ. It happens faster than you think. Use `.npmignore` and always dry-run before publishing.
We pull in thousands of dependencies. We trust them blindly.
That is a mistake. ๐ฃ
OWASP just released their top 10 security practices for NPM.
I went through them so you don't have to.
Here is what you need to change in your workflow:
AppSync has great SDKs that handle offline data synchronization automatically.
Stop the back-and-forth. Let the frontend drive.
Grab our full visual guide here
awsfundamentals.com/infographic...
You can cache specific fields or full queries. No need to spin up a separate Redis instance.
๐ ๐
๐ข๐ง๐-๐๐ซ๐๐ข๐ง๐๐ ๐๐๐๐๐ฌ๐ฌ
Control who sees what. You can use @auth directives to lock down specific fields based on user groups.
๐ฑ ๐๐๐๐ฅ๐ข๐ง๐ ๐๐ฎ๐ฉ๐ฉ๐จ๐ซ๐ญ
Two weeks later, the endpoint is updated. ๐ข
This friction kills velocity.
AppSync removes the bottleneck entirely.
It lets the frontend query exactly what they need, when they need it.
Here is why developers love it
๐ ๏ธ ๐๐ฎ๐ข๐ฅ๐ญ-๐ข๐ง ๐๐๐๐ก๐ข๐ง๐
Sometimes you need to give frontend developers the ability to choose their own data.
And if you want to build that in a serverless way you need to use AppSync!
We have all been there.
The frontend asks for one more field.
The backend team puts it on the backlog.
I see Opus is debugging in the same way I do: make the background red and figure out why there is so much fricking space at the top ๐ฌ