Over the past few years we have seen a lot of advancements in cloud computing. In this article I’m going to go over how AWS is slowly shaping the future of cloud computing and the advancements it has made in Web 2.0 and scalability.
We will outline the core technologies that exist and how each of those solves real business problems that every corporation will face at some point if they want to have a basic web presence with services. Furthermore we will go over how you can manage your AWS needs programmatically with Python.
AWS S3 File Sharing
One of the biggest challenges any company is facing is basically sharing files on the internet for internal use along with external use. AWS S3 is a service that solves this specific problem. It takes normal files and makes them into objects which you can in return associate properties to them besides the basic file permissions and user accountability you have in a filesystem.
Some examples of how this is useful are:
- You can host a web service using AWS S3
- You can make files downloadable with signature and SSL support
- You can share files among your teams and among any other AWS services in your platform such as images, user profiles etc.
There’s a great resource on covering all your AWS S3 needs which you can find here:
Python Boto3 AWS S3 Complete Guide (upload/download/modify/list) with code examples
AWS Lambdas
So now that you have your static website up with AWS S3 you need to somehow execute business logic for certain pages. You may want to host lets say some payment page or even a contact form and this would require you to execute some custom code for your needs.
AWS solves this using AWS Lambdas. Basically AWS lets you associate rules between your static website and your AWS Lambdas.
Essentially AWS Lambdas are pieces of code that execute on the cloud without the need of a server. This allows scaling your applications without having to worry to buy a bigger server or more resources. AWS handles this for you. Furthermore you do not need to worry about configuring or maintaining the security of those servers as this is also handled for you.
For a small business this may make the difference of the world as you have less setup costs, fast deployment and no need for people to maintain the infrastructure since it’s serverless.
A great resource that tells you how to bring this into life with examples and available source code in github can be found below.
Complete Guide For AWS Lambdas Everything You Need to Get Started With Python
Bringing It All Together
So we went over how you can make a complete scalable solution on AWS using two very good resources such as AWS S3 and AWS Lambda orchestrated and manipulated using Python. Since Python is a great resource to let you manage your resources programmatically this can also plug into your company’s devops workflow without any problems just by using code or examples from the links referenced above.
The diagram above illustrates an example of how everything comes together for a simple organization. This includes a few more attributes that are optional to be used in your setup such as API Gateway and Route53. Typically DNS is hosted by your domain registrar.