Deploy multiple applications to a single EC2 instance using AWS Elastic Beanstalk - amazon-web-services

I am have deployed a .Net website to AWS Elastic Beanstalk. I want to now deploy another .Net web project (a web service) to the same EC2 instance that was created by AWS Elastic Beanstalk, but the selection to "use and existing environment" in the Environment page of the publishing wizard is greyed out.
Is there a way to do this?

Update: This is now possible https://aws.amazon.com/about-aws/whats-new/2016/08/aws-elastic-beanstalk-supports-asp-net-core-and-multi-app-net-support/
No. .Net deployment has some limitations on EB compared to the other frameworks. You cannot deploy multiple applications on the same instance.

You can use Multicontainer docker environment to deploy multiple applications http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecs.html

You cannot deploy a "Web Site" and a "Web Application" on the same instance (or set of instances, such as that formed by ElasticBeastalk) because they run different resources and policies. This is accordingly to the tutorial i came across on their site.

Maybe this package can help you running multiple apps/websites on a single Elastic Beanstalk instance (Apache): https://github.com/tscheiki/ElasticDeploy

You can also do a multiple-app deployment using the Visual Studio AWS Toolkit:
docs.aws.com/toolkit-for-visual-studio

This is how to do it for Tomcat environments - https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-multiple-war-files.html.
To create an application source bundle that contains multiple WAR files, organize the WAR files using the following structure.
MyApplication.zip
├── .ebextensions
├── .platform
├── foo.war
├── bar.war
└── ROOT.war
When you deploy a source bundle containing multiple WAR files to an AWS Elastic Beanstalk environment, each application is accessible from a different path off of the root domain name. The preceding example includes three applications: foo, bar, and ROOT. ROOT.war is a special file name that tells Elastic Beanstalk to run that application at the root domain, so that the three applications are available at http://MyApplication.elasticbeanstalk.com/foo, http://MyApplication.elasticbeanstalk.com/bar, and http://MyApplication.elasticbeanstalk.com.

Related

Is it possible to deploy multiple spring-boot applications in AWS Beanstalk using the same EC2 instance?

I have an application that is composed of multiple spring boot microservices and a front end application using vue.js, and I want to deploy them in AWS beanstalk to avoid handling infraestructure.
I know how to deploy a single microservice into beanstalk, but I dont want to have as many beanstalk instances as microservices I have, because I don't have the money to pay for many service instances.
So my question is: How to deploy multiple spring boot applications and the vue.js application into only one beanstalk instance?
Thank you.
Elastic beanstalk accepts zip files. You can zip 2 or more war files and upload as a zip. Importantly among the zipped files, one has to be the root war, so that base url has one application to point to.
Below documentation should give you more details
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-multiple-war-files.html

how to deploy MEAN stack app on AWS elastic beanstalk?

I'm trying to deploy my mean stack app on AWS using elastic beanstalk but there doesn't seem to be a tutorial good enough that can help me through it.
I would also like to know if I should really deploy it on elastic beanstalk or Lightsail?
Can you share any articles, videos or anything good enough to help me. It will be helpful to a lot of people.
Angular Version : 7
Node Version: 10.14.1
elastic beanstalk will be the option for production while you can use light sail for testing dev enviroment
now if we talk about the deploying Mean stack app
Open Elastic Bean stalk console and you will get option to choose Webserver
Choose web server with apache, tomcat, nginx, configure it as per your requirement
at last you will get option for upload your application
Upload your app using zip file (if dist folder is output then direct deploy dist in elastic beanstalk)

AWS application source bundle deployment

I am deploying multiple web applications to a single elastic beanstalk tomcat instance using application source bundle. I have two applications app1, app2 in the tomcat. Now I want to make some changes to app2 and redeploy only app2 and not touch app1, how do I do that?
If I deploy again with source bundle with only app2, app1 is getting deleted.
My aim is to have multiple web apps in the same tomcat with the ability to update only the required web apps.
Thanks
You have to redeploy everything. If you want control over deployment for an individual service then you might want to separate them into two different elastic beanstalk applications.
This was an annoying limitation and one of the reasons my employer moved away from elastic beanstalk.

Deploying a web application for Selenium testing on AWS EC2

I have a web application that uses Selenium in backend to run few scripts when invoked by user. I want to deploy this web app on AWS.
Here are my findings so far:
I can have a windows EC2 instance created and then I can install tomcat, firefox and all the necessary stuff. Then using putty or any other client, I can deploy my war and start tomcat.
I can directly make use of Elastic Beanstalk and deploy my war file there itself but then, there is no windows EC2 available for beanstalk and I don't know how to install firefox there and make my application work.
What is the best way to achieve this and what steps should I follow. I want to install a specific firefox version to be able to make it run with my selenium scripts.
There are two separate things here:
Deployment of web application on AWS cloud
Run the selenium tests against your web application
According to me, you should first think of deploying a web application to AWS cloud. There are many ways by which you can get it deployed to AWS cloud with below services:
Spin a new AWS EC2 instance, install all required software and deploy the web application.
Use AWS elastic beanstalk service with either with tomcat or docker.
Use AWS ECS if you prefer docker
According to me, second option will be quick for you with tomcat environment option. If you select tomcat environment, then your platform will be Tomcat 8 Java 8 on 64bit Amazon Linux.
Now, here comes the second part. You can have below options for your browser environments.
Spin a new separate AWS EC2 instances with correct AMI and install your specific browsers on these instances.
If you prefer SaaS, then you can take a look at browserstack or SauceLabs for remote environment.
If you have CI(jenkins/travis/Circle CI), then make use of that infrastructure to luanch your tests with either option from the above.

Where are the node.js app files installed in an AWS elastic beanstalk instance?

In an AWS elasticbeanstalk instance, where are the node.js app files deployed to? I wanted to ssh to the machine and debug some issues and wanted to check that the files were deployed correctly. I checked /var/ but didn't see an app directory there.
It's in the /tmp/deployment/application folder during deployment and then it is moved to /var/app/current.
The node logs are in /var/log/nodejs/nodejs.log