Using AWS Elastic Beanstalk as a guide for application configuration
PaaS services fit in that world in between serverless and roll-your-own infrustructure. AWS Elastic Beanstalk is a PaaS service exposes their their service usage to teach you the right way to deploy web applications. The EB team eats their own AWS dogfood and generates a full featured environment via a generated CloudFormation template that you can examine and leverage.
For this example we will deploy Apache Tika document parser as a service. We'll leverage a previous blog article PaaS Document Parsing With Tika and EBS for the instructions. A shortened version is below
Created 4/2020
For this example we will deploy Apache Tika document parser as a service. We'll leverage a previous blog article PaaS Document Parsing With Tika and EBS for the instructions. A shortened version is below
Topology Discussion
This diagram shows the components deployed to make an autoscaling web application that leverages Elastic Beanstalk , IAM, ALBs and other AWS goodness.
Resources and Services
Elastic Beanstalk uses these services to provision and deploy a simple no-database web application like the Apache Tika Parser. We use the CLI to upload the configuration which Elastic Beanstalk then uses to generate a CloudFormation template that describes all of the components.
This section needs to be fleshed out
AWS Resources and Services | Information |
---|---|
Elastic Beanstalk Application | .tbd |
Cloud Formation stack | .tbd |
Deployment configuration bucket | .tbd |
Launch Template | .tbd |
Security Groups | .tbd |
ALB | .tbd |
ALB Listener | .tbd |
ALB Target Groups | .tbd |
Autoscale Group | .tbd |
Autoscale Group Policy | .tbd |
Cloudwatch Alarms | .tbd |
EC2 | .tbd |
IAM Roles | .tbd |
Video Version
Short Version Deployment Instructions
You must set up your environment for Elastic Beanstalk CLI deployments.
Prerequisite | Command |
---|---|
aws-access-id and aws-secret-key exist and are installed in ~/.aws/config | Must be generated in console Can be added to config file by aws cli or by eb init in interactive mode. |
SSH pair exists and is available in ~/.ssh | Can be created externally or may be created be eb init interactive mode if ssh is installed |
Python is installed | See platform instructions |
ElasticBeanstalk CLI is installed https://github.com/aws/aws-elastic-beanstalk-cli-setup | Clone the repository Run installer
|
Steps
These step describe deploying a pre-build Java jar file.
Step | Command |
---|---|
open a command prompt | . |
make a working directory | . |
cd into the working directory | CLI assumes the deployment is for thecurrent working directory |
Download Apache tika into the working directory | wget or use web site https://tika.apache.org/download.html |
Initialize the environment | eb init <app-name> --platform corretto-8 --keyname <ssh key name> --region <region> Example (app named fsi-eb-teka and SSH key pair aws-eb): eb init fsi-eb-tika --platform corretto-8 --keyname aws-eb --region us-east-2 |
Deploy the jar as an application | eb create <app-name>-dev --cname <app-name>-dev --elb-type application --enable-spot -it t2.micro --envvars PORT=9998 --tags mytag=myvalue
Example (app named fsi-eb-tika , append -dev for dev environment)
eb create fsi-eb-tika-dev --cname fsi-eb-tika-dev
--elb-type application --enable-spot -it t2.micro --envvars PORT=9998
--tags mytag=myvalue
|
Verify | GET app name returned by the create Example (deployment named fsi-eb-tiva-dev) fsi-eb-tika-dev.us-east-2.elasticbeanstalk.com |
Un-deploy | eb terminate <app-name> Example (deployment named fsi-eb-tiva-dev) eb terminate fsi-eb-tika-dev --force |
Created 4/2020
Comments
Post a Comment