Hacker News new | ask | show | jobs
by throwawaywego 2478 days ago
Persona of a person wanting to study AWS for commercial projects at one of AWS's biggest clients:

- Create account. Enter credit card details, but verification SMS never shows up. Ask for help.

- I get called at night (I'm abroad) by an American service employee, we do verification over the phone.

- Try to get the hang of things myself. Lost in a swamp of different UI's. Names of products don't clarify what they do, so you first need to learn to speak AWS, which is akin to using a chain of 5 dictionaries to learn a single language.

- Do the tutorials. Tutorials are poorly written, in that they take you by the hand and make you do stuff you have no idea what you are actually doing (Ow, I just spun up a load balancer? What is that and how does it work?).

- Do more tutorials. Tutorials are badly outdated. Now you have a hold your hands tutorial, leading you through the swamp, but every simple step you bump your knee against an UI element or layout that does not exist in the tutorial. Makes you feel like you wasted your time, and that there is no one at AWS even aware that tutorials may need updating if one design department gets the urge to justify their spending by a redesign.

- Give up and search for recent books or video courses. Anything older than 3-4 years is outdated (either the UI's have changed, deprecated, or new products have been added).

- Receive an email in the middle of the night: You've hit 80% of your free usage plan. Log in. Click around for 20 minutes, until I find the load balancer is still up (weird, could have sworn I spun that entire tutorial down). Kill it, go back to sleep.

- Next night, new email: You've gone 3.24 $ over your free budget. Please pay. 30 minutes later: We've detected unusual activity on your account. 1 hour later: Your account has been de-activited. AWS takes fraud and non-payment very seriously.

Now I need a new phone number/name/address to create a new account. I am always anxious that AWS will charge for something that I don't want, and can't find the UI that shows all running tutorial stuff that I really don't want to pay for. I know the UI is unintuitive, non-consistent, and out-of-sync with the technical - and tutorial writers. And I know that learning AWS, consists of learning where tutorials and books are out-dated, or stumbling around until you find the correct set of sequences in a "3 minutes max." tutorial step.

AWS has grown fat and lazy. The lack of design - and onboarding consistency is typical for a company of that size. Outdated tutorials show a lack of inter-team communication, and seems to indicate that no one at AWS reruns the onboarding tutorials every month, so they can know what their customers are complaining about (or why they, like me, try to shun their mega-presence).

(EDIT: The order of my experiences may be a bit jumbled. Sorry. More constructive feedback: 1) I'd want a safe tutorial environment, with no (perceived) risk of having to pay for dummy services. 2) I want the tutorial writer to have the customer's best interest in mind: "For a smaller site, load balancing may be overkill, and can double your hosting costs for no tangible gains." beats "Hey Mark, we need more awareness and usage on the new load balancer. I need you to write a stand-alone tutorial, and add the load balancer to the sample web page tutorial." 3) Someone responsible for updating the tutorials (even if: "This step is deprecated. Please hold on for a correction") 4) A unified and consistent UI and UX. Scanning, searching, sorting, etc. should work without making me think, I don't want a different UI model for every service. Someone or some team to create the same recipes and boundaries for the different 2-pizza teams, so I don't get a pizza UI with all possible ingredients.)

2 comments

It seems like the real issue is that you wanted to create an entire business critical infrastructure on top of a technology that you didn’t know.

How was this a good idea? I’m horribly inexperienced with modern web development but I know the rest of the stack pretty well - backend, databases, AWS networking and most of their standard technologies, CI/CD etc. When I was responsible for setting up everything for a green field project, I pulled in someone who was much better than I was for the front end even though I could have muddled my way through. Why would I take the risk?

Because people have to learn somehow?

Building my startup on Google Cloud, I knew nothing about cloud services, and I had none of these issues.

Yes you have to learn but I wouldn’t be learning when something was mission critical.

Literally millions of people use AWS everyday. So what’s more likely that the issue is with AWS or the implementer?

It took me watching one Pluralsight video to map what I knew about an on prem implementation to AWS. Of course I learned more as I went along.

I had never done any back end work before.

In less than 2 hours I had auth'd https rest endpoints up and running with logging.

Deploying new endpoints is as easy as exporting a function in my code and typing deploy on the command line. This isn't after some sort of complex configuration, it is after creating a new project via 1 cli command that asks for the project name and not much else!

Google's cloud stuff, especially everything under the Firebase branding, is incredibly easy to use. Getting my serverless functions talking to my DB is almost automatic (couple lines of code).

Everything just works. The docs are wonky in places, but everything just works. The other day I threw in cloud storage, never done cloud storage before, had photo hosting working in about an hour, most of that being front end UI dev time. Everything fully end to end authenticated for editing and non-auth for reads, super easy to set that all up. No confusing service names, no need to glue stuff together, just call the API and tell it to start uploading. (Still need to add a progress indicator and a retry button...)

Everything about Google's cloud services has been like that so far. While I regret going no-sql, I can't fault the services for usability.

And you could do the same thing with lambda/DynamoDB/API Gateway just as easily by using one of the wizards.

What you can do as a hobby project is much different than the parent poster who was trying to deploy an enterprise grade setup with an existing legacy infrastructure. How would you know if GCP is easy based on your limited experience? Not trying to sound harsh, as well as I know AWS, I would be completely loss trying to manage any non AWS infrastructure. Just like I said about the front end in my original response, if I were responsible for setting up a complicated on prem or colo infrastructure from scratch, I would hire someone.

“It’s a poor craftsmen who blames his tools”.

A guy that works with us was also an inexperienced back end developer except with PHP. He was able to easily figure out how to host his front end code with S3 and create lambdas in Node after I sent him a link to a $12 Udemy course. I only had to explain to him how to configure the security groups to connect to our Aurora/MySQL instance.

I can't really explain how easy it is. There are no hidden charges, monthly usage is easy and clear to understand. For small to medium sized apps there isn't even any configuration. I'll be throwing tens of thousands of users, tiny I know, on a service that had 0 configuration done beyond typing its name. In fact I'm 100% sure my VMs on DO are going to give under load first.

To put it another way, there is a healthy industry of people whose sole job is to come in and figure out why AWS is billing too much.

FWIW I showed one of my friends at Amazon how easily I can create and deploy serverless code on Firebase, he admitted it is far easier than what AWS offers.

The downside of this is that options are fewer. If I want a beefier VM my choices are limited, and the way pooling and VM reuse is done is well documented and not at all under my control. It is like cloud on training wheels (TBF to gcp it is possible to opt-in to more complexity for many services, but the serverless function stuff is pretty bare bones on options, arguably as it should be)

But take auth for example. Firebase auth is amazing. Using it is beyond simple, and within the Google ecosystem everything just works so well.

“Millions of people use AWS” you say in a thread where people are complaining about AWS’s poor usability linked to a comment thread on another site where even more people are complaining about AWS’s usability.

The biggest and best rebuttal against your comment is the mere existence of every other comment in both of these threads.

Yes because an HN thread with 236 comments including people who know what they are doing is representative of anything.

Would it also be proof that React is an unusable framework just because I haven’t taken time to learn it even though millions of people use it everyday?

You can find “rebuttals” about the safety of vaccines on the Internet. Does that mean anything?

Created an account to say how much I love this. I'm all for learning your stack well enough for confusing situations but you expect better from AWS.