How to deploy non-web Java application to EC2 via AWS BeanStalk? - amazon-web-services

Does AWS Elastic BeanStalk support deploy non-web Java application to EC2?
That is to say, I want to pass a jar to EC2 instance, and make it auto run when EC2 instance started.

As of today, you have to run Java based web applications or worker tier applications, both have to be modeled as web apps.
You could run a tomcat app that does some backend processing work but does not perform the usual functions of a web app.

Related

Suggestion in Deployment of ASP.NET Core Web API in AWS

I have a ASP.NET Core Web API planning to deploy in AWS, I don't have enough background in AWS what is the good package to subscribe in AWS?
My option is Amazon EC2 or Cloud Computing or there is other package for Web API? And my other concern is I also have files to upload by the client need at least of 1 or 2 TB of cloud storage. Can I connect the Cloud Storage services of Amazon to Amazon EC2. I really don't how to start.
You could look at Elastic Beanstalk (EB) as explained in Creating and deploying .NET applications on Elastic Beanstalk. EB is AWS Platform as a Service (Paas) offering which allows you to deploy your code, without managing much or any of EC2 instances, load balancers, security groups and more.
Alternatively, if you can run your app in a docker container, maybe it would be easier to deploy it using ECS Fargate. EB can also be used to deploy dockerized applications.
For storage you can use EFS if you require filesystem-like storage that can be shared across multiple instances, containers or lambda functions.

Support For Elastic Beanstalk on LocalStack

I am rather new to LocalStack and I am finding it to be extremely useful. The LocalStack GitHub page does not list Elastic Beanstalk as a supported service. Is there any information on whether this will be rolled out anytime soon?
Elasticbeanstalk automatically creates the infrastructure necessary to deploy and run your application in the cloud. For example. it creates EC2 instances, load balancer etc for you.
if you look at localstack, it supports the standalone services such IAM, S3, Dynamodb etc. Therefore I don't think the localstack will ever support elasticbeanstalk as a service.
If you want to simulate running the elasticbeanstalk application locally, you can try running the following the eb cli command. It will run the application in docker.
eb local run

Spring Cloud microservice deployment in AWS

I am trying to develop a Spring Cloud microservice and need to deploy in AWS cloud. I am new to Spring Cloud and AWS. I would like to open a EC2 instance and like to deploy using Elastic Beanstalk environment wizard.
When I am exploring how to create EC instance and configuration, I found that the documentation explaining EC2 and EC2 container service. Here I need to deploy my service in Java environment and Tomcat as service structure. So I am confused about EC2 and EC2 container service. Which one is suitable for my criteria and requirement? EC2 or Ec2 container service for deploying my service?
EC2 container service is to be used if you want to run container systems like Docker. Are you comfortable using Docker containers?
If you want to use standard virtual machine; use EC2 instance. Your requirement of deploying microservice can be achieved using any of EC2 instance or EC2 container service. What is important is your comfort level.

Difference between Web Application and Worker Elastic Beanstalk tier

Is there any difference between a Web Application vs Worker tier/environment?
As in if I were to deploy a web application will it work (not that I will do that, but am trying to understand whats the difference)? I imagine I can install my worker service on a Web Application instance and have my app connect to that. If so apart from the name difference, what other differences are there?
According to AWS documentation of How Elastic Beanstalk Works: Architectural Overview.
When you launch an Elastic Beanstalk environment, you choose an
environment tier, platform, and environment type. The environment tier
that you choose determines whether Elastic Beanstalk provisions
resources to support a web application that handles HTTP(S) requests
or a web application that handles background-processing tasks. An
environment tier whose web application processes web requests is known
as a web server tier. An environment tier whose web application runs
background jobs is known as a worker tier. This topic describes the
components, resources, and architecture for each type of environment
tier.

Elastic Beanstalk Embedded Jetty

I am building bunch of services with embedded jetty. I prefer to deploy those services in Elastic Beanstalk. Elastic Beanstalk supported environments comes with Tomcat which is not required for me. So which environment should I use to run my services in Elastic Beanstalk? I just need a bare-bone EC2 instance with Java and my embedded jetty application are capable to run in different ports. Is Docker container is the best way to run these services, even in that case i am not sure which environment should I use.
Thanks