This is a good high level overview of AWS, though like all overviews there are some details glossed over.
I was asked at an interview what developers need to know about AWS. I think there are three things to keep in mind:
Consider higher level services for operational simplicity. Unless you are at a certain scale, you'd never run your own object store, you'd use s3. I always say if you are thinking about downloading and installing any software system on a server, see if AWS has a managed offering and at least evaluate it.
Use the elasticity of the cloud. Shut things off. Build scaling systems but make sure they scale both ways.
If you aren't automating you aren't doing it right. Tools like cloudformation and terraform let you really treat your infrastructure like software and force attitude changes.
Bonus: keep an eye on bandwidth costs, especially between AZs as these can be shocking and can drive architecture.
Source: user of AWS for 10 years and former AWS instructor.
Hi, Mijndert here, the writer of the article. Thanks for sharing your insights. I agree I glossed over a few topics. I will expand on these from here on out and go into more detail on some of the points you touched on.
Just to be clear, I don't blame you for glossing over some of the complexities. When I ask my auto mechanic what is wrong with the car I don't want to know about the fundamentals of combustion and differentials. (Until I do.)
Completely agree, which is why I think Elastic Beanstalk, CloudFormation and OpsWorks are great ways to introduce people to the AWS ecosystem. I think of them like frameworks for programming languages.
Definitely. I think that eb is a great fit for certain applications.
One of the other hidden benefits of AWS is the API which is available for every service (I can only think of one thing you can do from the UI that you can't also do via the API) and maintained by them. (I know that cloud foundry offers this as well, as do other cloud providers.)
Leveraging that API really unlocks the value of the cloud.
I was asked at an interview what developers need to know about AWS. I think there are three things to keep in mind:
Consider higher level services for operational simplicity. Unless you are at a certain scale, you'd never run your own object store, you'd use s3. I always say if you are thinking about downloading and installing any software system on a server, see if AWS has a managed offering and at least evaluate it.
Use the elasticity of the cloud. Shut things off. Build scaling systems but make sure they scale both ways.
If you aren't automating you aren't doing it right. Tools like cloudformation and terraform let you really treat your infrastructure like software and force attitude changes.
Bonus: keep an eye on bandwidth costs, especially between AZs as these can be shocking and can drive architecture.
Source: user of AWS for 10 years and former AWS instructor.