Configuring an Application Load Balancer for Elastic beanstalk - amazon-web-services

I'm trying to configure an ALB for my elb deployment.
I've followed the aws tutorial
but when I'm running eb create test-env --elb-type application
I get: eb: error: unrecognized arguments: --elb-type application
I've updated my eb cli using aws tutorial
(running EB CLI 3.7.6 (Python 2.7.1))
Many Thanks

It looks like you are using an older version of the EB CLI. The support for Application Load Balancers was added in 3.7.8: https://pypi.python.org/pypi/awsebcli
You can upgrade your CLI version by running:
pip install --upgrade awsebcli

Related

How can I programmatically get which application version is deployed to an Elastic Beanstalk Environment

I'm trying to determine winch application version is deployed to the environment my code is running on.
I know that Elastic Beanstalk is tracking this as you can view it from:
In Elastic Beanstalk Console:
All Applications > [Application Name] -> Application versions
In the table displayed here, it shows the Version Label, and a list of which Environments it's Deployed To
Does anyone know how to query the EC2 container / EB from within the instance
/ environment to get the Version Label of the currently deployed application version? Thanks.
As per the AWS docs here, you can use the eb cli command eb status {environment-name} which will give you an output that includes the Deployed Version:
$ eb status
Environment details for: tmp-dev
Application name: tmp
Region: us-west-2
Deployed Version: None
Environment ID: e-2cpfjbra9a
Platform: 64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.5
Tier: WebServer-Standard-1.0
CNAME: tmp-dev.elasticbeanstalk.com
Updated: 2014-10-29 21:37:19.050000+00:00
Status: Launching
Health: Grey

Install ghostscript on load balanced Aws Beanstalk

I am using ghostscript on my current server. Now I am moving to an Aws beanstalk server with Application load balancer.
How do I configure start-up script on elastic beanstalk so whenever a new instance is created by the load balancer, ghostscript is automatically installed.
You can control what's installed in ElasticBeanstalk instances with .ebextensions file.
Whenewher Elastic Beanstalk creates a new EC2 instance, it will run all commands from the file in order to provision instance.
Example of .ebextensions file for installing Ghostscript
packages:
yum:
ghostscript: []
This will install a version of ghostscript from yum repository.
If you need a never version of ghostscript - it is also possible to specify installation shell commands inside ebextensions file. For example, these commands will install Ghostscript 9.23

How to connect to existing elastic beanstalk instance locally from cli?

I am very much new to aws. I have created an environment in elastic beanstalk and deployed my application there using zipped code. The application is up and running now. Now i want to stop and start my elastic beanstalk instance from cli in windows. I could not find any stop button in the aws elastic beanstalk console.
I have installed awsebcli using below command:
pip install awsebcli
Now, i want to connect to my existing environment in elastic beanstalk and stop or start the environment at my will.
How can i do that?
The way the EBCLI (awsebcli) works is that you associate an empty directory on your computer with an EB application.
go to an empty directory
eb init --region <region name>. When prompted for the application name, choose the application you created previously.
eb terminate <environment name>. This will terminate the environment.
To create a new environment, perform eb create.

How can automatic deploy yii2 app when Elastic Beanstalk instance is terminated and created a new instance

Currently I have setup my yii2 website on AWS Elastic beanstalk. I followed following steps :
Created Elastic Beanstalk app and environment : Platform PHP 7.0, RDS database
Created SSH connection from EC2 instance of elastic beanstalk using putty with .pem file
In Apache folder I have cloned my yii2 git repo using (sudo git clone repo_url) command
Installed composer using this link https://gist.github.com/asugai/6694502
Run command : (sudo composer install) in my repo folder
Edited common/config/main-local.php and made db connection
And run migration using (sudo php yii migrate)
Setup a domain for this elastic beanstalk app
Now I don't know how should I proceed further and I am facing following problems :
Elastic Balance loader is creating new instance and terminating current one when it fails or health goes in severe.
Due this, my all data in that instance is lost. To make it work I am doing all steps again and again manually.
How can I make my domain https (SSL certified)
How can make easy process to pull new changes from git
I already have a working site in nodeJS. which is using elastic beanstalk, elastic balance loader, RDS(postgres), S3 bucket, cloudfront for Route 53, SSL certificate (https), code pipeline, code commit. And AWSCLI at local to deploy nodeJS app.
my question is about I want to use same flow for yii2 advance app.
Can anyone please help me here?
Thanks in advance :)

node command does not work on beanstalk created with nodejs preconfiguration

I have an issue, I create a beanstalk with nodejs configuration and after it is in running status I ssh to the ec2 created by beanstalk. So my assumtion is that nodejs and npm are already installed in that ec2 but when I run
node --version
npm --version
I get the following errors:
-bash node:: command not found
-bash npm:: command not found
What am I missing here? Does this mean that I need to install node manually?
Yes, You have to setup nodejs.
Check the documentation for how to setup the nodejs environment for beanstalk.
This is a complete guide on how to setup an Express app on elastic beanstalk.