I wasn’t sure what to entitle this post – I woke this morning with a sort of an urge to write about Amazon AWS and my experiences developing applications and using its tools to this point. So I settled with the above.
I guess I have been using aws for 4 or 5 years now and have used a wide variety of the tools on offer. Initially, like a lot of people I could appreciate it’s advantages in terms of flexibility and scalability but what I realise more and more is just how it spreads beyond that.
I have been using lambda quite a bit recently and sns and sqs also. They give you great control over your costs just like ec2, autoscaling etc. Likewise dynamo dB. Balanced against that though is the old ‘with great power comes great responsibility’ Peter Parker chestnut.
It is possible to get your auto scaling wrong and end up with far too many server instances. You also have to be aware that you get charged for polling messages in sqs, long polling helps with this but it’s not default. There are many pit falls and it is worth bearing this in mind before you go too far down the AWS path. S3 costs can really mount also if you are not deleting.
The point is though it means developers need to be more aware of costs than before as they have direct control over that – so I think it changes your role a bit and the things you think about from day to day. I guess in the past there was still a lot of input from developers on software and infrastructure selection and it’s costs but not to the same degree.
Another thing I found or maybe not found is documentation. AWS has grown rapidly and it does appeal to our imagination in that things like lambda bring a certain amount of excitement with the thought of the possibilities but the other side is sometimes I feel like shortcuts have been taken.
Documentation is probably one of the first things to go when time is of the essence. There is a lack of it when it comes to AWS in general, particularly with some of the newer technologies.