Today we are going to discuss a bit about how to deploy a Python(Flask) Web Application on AWS Cloud by using AWS Elastic Beanstalk.
We are going to build, deploy & launch a Python(Flask) Web Application into AWS cloud servers using AWS Elastic Beanstalk Management Console. We will accomplish it in by completing each task in the project:
Create a Flask(Python) web application
Launch an AWS EC2 instance(Virtual Server) using AWS Elastic Beanstalk
Deploy your Flask(Python) web application to AWS virtual servers
- Flask is a micro web framework written in Python. It is classified as a microframework because of its minimal structure that provides an ecosystem of external components such as form validation, upload handling, authentications, etc., that can be mixed and matched as needed, focusing on including only what you need instead of providing a complete toolset. Companies that use the Flask framework include Pinterest and LinkedIn.
Amazon Web Services (AWS) is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide a variety of basic abstract technical infrastructure and distributed computing building blocks and tools.
Amazon Elastic Compute Cloud (Amazon EC2), which provides secure, resizable compute capacity in the cloud. In simple terms cloud servers.
The environment is the heart of the application. In the diagram, the environment is shown within the top-level solid line. When you create an environment, Elastic Beanstalk provisions the resources required to run your application. AWS resources created for an environment include one elastic load balancer (ELB in the diagram), an Auto Scaling group, and one or more Amazon Elastic Compute Cloud (Amazon EC2) instances.
In the following sections we are going to setup our local computer and the Ec2 instances to deploy Flask.
In our local computer, first we need to install flask.
pip3 install Flask
We are going to use Visual Studio Code, you can download in the following link
We create a folder where we are going to write our code and there we create a file called application.py
mkdir myproject cd myproject code application.py
and we write a test program of Hello World
from flask import Flask application = Flask(__name__) @application.route('/') def hello_world(): return "Hello World" if __name__ == '__main__': application.run()
we install flask
pip3 install Flask
and we test our program
We have successfully installed Flask
AWS Elastic Beanstalk Setup - Part 1
We login to our AWS credentials and we select the service Elastic Beanstalk
And we click on create application and we call
then we choose the platform
and we click
We wait until the Ec2 instance is created.
we have created an environment.
Getting the libraries
In ordering to execute our application on aws server we require install all the dependencies needed
to execute our program.
Fortunately this can be done by using pip, so by going to our terminal located in our local machine
we create the file with all the requirements needed.
pip3 freeze > requirements.txt
we are interested only on the Flask dependency, so we choose only this one and we remove the others.
The next step is zip the
zip version_1.zip application.py requirements.txt
This file will be used on AWS.
AWS Elastic Beanstalk Setup Part 2
We return back to the AWS console and we go to the Elastic Beanstalk
we click on the Enviroment
Myflaskwebapp-env then we click
upload and deploy
and then we select our file
version_1.zip and we add the label
and finally we click
After it is deployed we click on the link of our enviroment
and its open our application from AWS cloud.
Congratulations! we could execute our first Hello World web app on AWS.