Fakecloud: Local AWS cloud emulator for integration tests
92 points by theanonymousone 2 days ago | 48 comments

otterley 8 hours ago
There’s also MiniStack, which forked from LocalStack after they started breaking developer workflows: https://ministack.org/

Both fakecloud and its website look sloppily vibe-coded, and its “authors” are anonymous. It’s going to take a while for it to earn trust. I’d treat it with suspicion. (Curl-to-shell pipe to install? Ugh.)

reply
straygarr 7 hours ago
Agreed with everything up to:

"curl-to-shell pipe to install" - what's the problem here? that's pretty common on linux systems and something the AWS CLI uses.

Or is the problem the fact that this dev is untrusted and is executing a possibly malicious script on your machine?

reply
jasongi 7 hours ago
For a mock server? Surely a versioned, standalone executable, library/package or docker image makes more sense. Integration tests generally need to be portable and running on CI, you don't wanna be shell-piping whatever exists in the moment.
reply
ssl-3 5 hours ago
The problem, for me, is that self-running installers can create a mess that's hard to keep track of.

I've run Linux without meaningful package management, as that was kind of the style of the time 30 years ago with Slackware. It can quickly become untenable.

There's no real difference between an uninspected script that gets piped straight from the URL into the shell, or a similarly-uninspected make&&sudo make install routine from a tarball. They can both execute code that does bad things (whether unintentionally or deliberately), and they can both leave a mess that is hard to cleaned up.

I've found that it is better to just avoid going down that road to begin with. Whether distro-specific packages, Docker containers, flatpaks, or whatever: All of these make housekeeping easier.

reply
MisterMunchkin 7 hours ago
Running arbitrary code directly in your terminal is very dangerous
reply
luma 6 hours ago
Any code I didn't write is arbitrary code. At some point I'm left to trust someone or run no software at all.
reply
mulmen 6 hours ago
It’s a shell script. You can download and read it before you run it. Piping it directly to the shell is reckless.

I’m not sure how your machine is configured but mine has permission boundaries and security policies that make sure programs are behaving properly. I don’t run everything with my personal user context.

reply
bornfreddy 5 hours ago
Actually... Server can detect if you are piping or not and serve a modified version for inspection.

But really, there is no reason not to use prebuilt packages for distribution. Curlpiping needs to die.

reply
otterley 4 hours ago
At first I thought “this sounds like bullshit” but then found https://web.archive.org/web/20230408195648/https://www.idont...
reply
mynameisvlad 5 hours ago
So then... Just do that and it's no longer reckless.

If someone wants to be reckless they can be. If someone doesn't, they also have that ability.

reply
sdcfgy 7 hours ago
I'm worried that this behaviour has to be defended.
reply
x3n0ph3n3 6 hours ago
curl-to-shell is a terrible installation mechanism because it's not easily reversible and I can't tell if any of the assets are signed, or integrity checked, or not.
reply
iLoveOncall 14 minutes ago
> Both fakecloud and its website look sloppily vibe-coded

As if the MiniStack website wasn't also obviously vibe-coded lol.

reply
tingletech 7 hours ago
> and its “authors” are anonymous.

The blog posts are all attributed to "Lucas Vieira" and the dev group https://faisca.dev that is attributed as the author has 2 other projects. Lucas comes up in LinkedIn and looks like an actual person working in San Francisco.

Re: curl; this seems to work:

  cargo install fakecloud
reply
losteric 5 hours ago
faisca.dev is also vibed - perhaps it's a real human using AI to build an online fascade
reply
SomeUserName432 4 hours ago
I don't think it's being questioned that at some point there is human behind this. Though it could always be that spider.
reply
_zoltan_ 3 hours ago
why does it matter that it's a vibe coded website?
reply
otterley 2 hours ago
Because taste, creativity, and differentiation matter to a human audience. Perhaps not you personally, but to most people. Ask any experienced marketer.
reply
shermantanktop 7 hours ago
There are so many of these, but none of them simulate the surprise-billing experience.
reply
igetspam 6 hours ago
File a feature request! ;)
reply
arpinum 6 hours ago
"46 at true 100% conformance". This is factually incorrect. Inspected their DynamoDB service and it comes nowhere close to implementing the full api.
reply
arpinum 5 hours ago
Here are some bugs: - `ADD m.a.c :inc` update expression wrote a literal top-level m.a.c attribute but didn't change the nested number. - TransactGetItems returned fields not requested. - update expression can update the same key multiple times.

In total my conformance suite found 583 failures out of 1279 tests.

reply
equinumerous 3 hours ago
Wow! This is not production-ready at all. DynamoDB would be my main use case. I'll stick with DynamoDB local.
reply
arpinum 56 minutes ago
Funny fact, DynamoDB local fails about 100 of my conformance tests. Mainly around error message formatting and text. Just be careful about parsing those.
reply
nnucera 11 minutes ago
https://paritysuite.org/ You can check this, awesome work they have to check ddb vs real (local ddb also has a lot of diff with real ddb)
reply
karpetrosyan 2 hours ago
Interesting thing, looking forward to testing it with my Smithy-generated Python AWS SDK https://github.com/kap-sh/capo
reply
bilekas 9 hours ago
There are always nice, but there are a lot of scaffolding work involved with larger systems. It would be nice to be able to provide for example the terraform of the infrastructure and let these tool create their own. Might be a nice feature to add because I haven't seen it done yet.
reply
igetspam 9 hours ago
I use tf with floci and floci-gcp, weekly…
reply
_joel 8 hours ago
Oh nice, not aware of this. We're opentofu on GCP, so could be a good addition to ci
reply
matt3210 2 hours ago
Why not just offer an AWS compatible cloud service at this point ... can you copyright an API?
reply
gyre007 8 hours ago
I kinda like most of these emulators but why is there none targeting GCP/Azure
reply
figmert 8 hours ago
AWS is still way ahead in cloud usage, that's probably why AWS is the primary target. Anyway, floci has GCP and Azure versions, how mature they are, I'm unsure. But it does exist.
reply
oso2k 7 hours ago
Right. Floci got posted yesterday here on HN.

https://news.ycombinator.com/item?id=49854416

reply
tombuildsstuff 7 hours ago
I'm launching something in that space this week - if you're interested in trying one of those out, feel free drop me a message via my website (in bio) :)
reply
Hikikomori 6 hours ago
Hard to replicate all the bugs in azure.
reply
nullbio 7 hours ago
Agreed. Azure would be nice. Something that can work with Terraform too.
reply
igetspam 6 hours ago
Check out floci-az. I haven’t touched it but I know it’s there.
reply
igetspam 9 hours ago
But how does it compare to floci, which already picked up with localstack left off?
reply
WalterGR 7 hours ago
Floci happened to be discussed yesterday, with 47 comments: https://news.ycombinator.com/item?id=49854416
reply
duesabati 9 hours ago
you mean floci? https://floci.io/floci/
reply
igetspam 9 hours ago
Yeah. Stupid really didn’t want to type that. :)
reply
jeduardo 7 hours ago
There is also localemu, which I understand to be another localstack fork: https://localemu.cloud/
reply
michaelastreiko 5 hours ago
Local stubs like this are a lifesaver for one-person webhook testing without burning cloud credits every morning.
reply
Lucasoato 8 hours ago
I always welcome warmly projects like these, the only problem is that unless there’s a strong community behind, founders tend to build companies around them, raise capital, then put useful functionalities behind paywalls (see localstack).

When I see that, it always reminds me of Steve Jobs’s quote: ”It’s not a product, it’s a feature”.

Aren’t cloud companies like AWS, Azure, GCP the first to be interested in providing their users a meaningful way to do test integrations of their products? Shouldn’t they provide them in the first place?

reply
stackskipton 6 hours ago
It depends on the company. Azure provides local emulators for some of their products like CosmosDB and Azure Storage.

Depending on what your size and other things, sometimes it's just easier to have dev instances you test against. Like S3 emulator, you could download one of many and test it but unless your test suite is extensive, the costs against S3 test bucket would probably cost you .03 cents for assurances that everything will work against AWS. If that's breaking the bank at the company, you probably have bigger problems.

reply
hvb2 5 hours ago
> Like S3 emulator, you could download one of many and test it but unless your test suite is extensive, the costs against S3 test bucket would probably cost you .03 cents

Not sure if your serious.

You picked the simplest service that isn't expensive at all to run. Have you tried with an RDS cluster for example, how does that work?

Does your integration test create a new cluster to use? That's slow to set up.

Does it use an existing one? Now you might have failures due to noisy neighbors and your cost will not be small.

And that's just RDS, as soon as it's not serverless, costs aren't trivial anymore.

reply
stackskipton 4 hours ago
I assume for RDS for integration testing, you could just use publicly available software. So stand up MySQL container if your RDS is MySQL. This is integration testing, not load testing so shared RDS in lowers would be fine as well. Noisy neighbors shouldn't be a big deal.

Again, while local cloud emulator is great for cost sensitive customers, at some point, you should test Dev against almost exact environment you will be running Prod on. If not, you are asking for eventual outage in Prod when some slightly different AWS thing bites you.

reply
igetspam 6 hours ago
You’d think that but it doesn’t seem to be the case. I do a lot of offline development and the only way it used to be possible was localstack but that’s AWS only. The open source community is the only interested party, it seems. Thankfully, there’s a lot of contribution happening in this space. Because I have need, I make a lot of my own contributions. I’m doing full stack cloud development against GCP without ever leaving my device.
reply