DEV Community

loading...
Cover image for AWS newbie's overview

AWS newbie's overview

AlexeyRomanchenko
I write articles like a way of learning english
・2 min read

Modern programming differs from programming five to ten years ago. Application architectures changed too much, as well as their ways of deployment. My previous experience was connected with old styled monolith ASP.NET web applications. I had one web app and I had to deploy it on a premises’ server, where the IIS web server was installed. Sometimes my small and cozy team had problems with strange issues. For example, our web server froze each time we deployed every new version of our app. We did not have solid DevOps knowledge, so we learned some basic IIS functionality, and from time to time tried to make some devops work.

Last month, I changed my job. We use interesting microservice architecture and store our services in the AWS cloud. It is interesting to discover new ways to create API routing using API Gateway. To make a long story short, this service allows you to create endpoints for the backend app, connect small (or even big) services with endpoints, protect your endpoints with authorization, or check necessary headers in requests.

Last week, I had a pretty tricky moment with sending images to my backend. I could not accept multipart/form-data requests from my frontend. The backend returned a cors error, while the application/json header was accepted.

AWS has a great tool to create microservices with lambda functions: everyone can create APIs using different programming languages like C#, Javascript, Java, Go, Python.

Lambda functions represent well-known serverless architecture where you do not have to worry about your server troubles.

Everyone can use it for small units of work, such as receiving something from a database, or inserting some amount of data to a database, or somewhere else. Lambda is not a great option for long tasks, because it has an execution time limit of 15 minutes.
Another service I learned was S3 storage, where Amazon allows everyone to store different files, like images (to create your own storage, and make it public or private ), or even you can use it to host static frontend applications.

For people who want to deploy their applications and not use lambda functions, they can easily deploy them using Elastic Beanstalk, where you upload a zip file with your app and in some minutes it is deployed. During its deployment Elastic Beanstalk creates a virtual machine that is needed for your application. Don’t forget about if you are using the free tier period, because after that period they will start charging you.

Finally, you can connect your existing domain (or buy a new one) with the Route 53 service, just add a hosted zone for the domain you have chosen. AWS takes 50 US cents per month for adding each hosted zone to your account.

In conclusion, AWS has a big variety of services that could be interesting for developers and helpful as well.


(the image was taken from aws.amazon.com)

Discussion (0)