_Comment made by: mfikes_
The big picture is not completely clear to me for this one, but it appears that the NPM version of the library is not intended to be used directly from the browser runtime, and instead you need to build it so that it is packaged for the browser.
The root problem is that the code is attempting to use Node's {{fs}} code, but from the browser.
You can see that the code can be compiled and executed if you target Node: If you modify Jeffrey's minimal repro to add
(set! *main-cli-fn* -main)
to the bottom of {{src/foo.cljs}} then things will compile and execute in Node:
$ clj -m cljs.main -co '{:install-deps true, :npm-deps {:aws-sdk "2.229.1"}}' -O simple -o main.js -t node -c foo
WARNING: foo is a single segment namespace at line 1 /private/tmp/aws/src/foo.cljs
$ node main.js
hello world
For the browser case, if you look at the code in {{node_modules/aws-sdk/lib/util.js}} you can see that it has conditional branches for browser use, but I suspect that this is intended to be used as described here
https://github.com/aws/aws-sdk-js#in-the-browser but if you really want to use the code directly from its NPM dependency, you have to use that NPM dependency to build the JavaScript intended to be used in the browser as detailed here:
https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/building-sdk-for-browsers.html
If this can be confirmed, then this issue can be resolved as a non-issue, and it is just a matter of correct use of the library.