Microservice deployment using Elastic Beanstalk - amazon-web-services

I am trying to develop a Spring Cloud microservice and deploying into AWS cloud using Elastic Beanstalk. When I am searching deployment options I found that deployment environment of Beanstalk. I have a little confusion here. Can I deploy my microservice using Elastic Beanstalk without launching EC2 machine?
Here I am approaching only to Elastic Beanstalk service. Deploying microservice using Elastic Beanstalk without launching EC2 is possible?
I am a beginner in the AWS world.

You can use Elastic Beanstalk to deploy your microservices. When you use Elastic Beanstalk, in the backend Elastic Beanstalk creates the required EC2 instances and Load balancers to run and deploy your application. Hence you don't need to create an EC2 instance. I would recommend you to follow the tutorial here, which walks you through to launch a sample Multi Docker application.
Also, I would recommend you to research ECS/Fargate service which has more capabilities for hosting a Microservices application.

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.

AWS Elastic Beanstalk Load balancer issue

For single Spring boot App, Successfully setup CICD using AWS CodePipeline and Elastic Beanstalk.
But now want to Deploy multiple Spring boot Services on same Elastic Beanstalk to minimize EC2 instance following below link:
Deploying multiple services on a single instance of AWS Elastic Beanstalk
But getting Bad Gateway (502) if we hit generated url given by Elastic Beanstalk.

AWS beanstalk EC2 instance within a VPC and without Load Balancing

I am creating the first betas of a project. I need a SpringBoot server connecting to MongoDBs in AWS.
MongoDB is already deployed as a replicaset in different EC2 instances. I was exploring AWS Beanstalk as environment to deploy the SpringBoot. However I am not yet ready to deploy a Load Balancer, because is costly.
I am looking for the way to deploy a Single-Instance Environment (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-types.html?ref_=pe_395030_31184250_9#single-instance-environ) in a VPC (which would be shared with MongoDB).
Does AWS Beanstalk allows you to configure a EC2 instance within an VPC but without Load Balancer?
If not, I am planning to deploy an EC2 instance in the VPC myself without Beanstalk.
Other temporary solution would be accessing MongoDB over the internet, with the right security group rules, but i do not think is a good practice at all, so I am not considering it.
All Elastic Beanstalk environments are in a VPC, unless you have a really old AWS account that still supports EC2 classic. What you are looking for is the EB Single-Instance Environment type.

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.

AWS Elastic Beanstalk Vs EC2 Container Service (ECS) - Docker

Have been running Docker with Elastic Beanstalk to deploy a relatively simple app, and it has been working great. Now with ECS on the horizon, I am interested to know what the differences are between the two services, and why one might use one over the other?
Amazon's documentation says the following:
Q: How is Amazon ECS different from AWS Elastic Beanstalk?
AWS Elastic Beanstalk is an application management platform that helps customers easily deploy and scale web applications and services. It keeps the provisioning of building blocks (e.g., EC2, RDS, Elastic Load Balancing, Auto Scaling, CloudWatch), deployment of applications, and health monitoring abstracted from the user so they can just focus on writing code. You simply specify which container images are to be deployed, the CPU and memory requirements, the port mappings, and the container links. Elastic Beanstalk will automatically handle all the details such as provisioning an Amazon ECS cluster, balancing load, auto-scaling, monitoring, and placing your containers across your cluster.
Elastic Beanstalk is ideal if you want to leverage the benefits of containers but just want the simplicity of deploying applications from development to production by uploading a container image. You can work with Amazon ECS directly if you want more fine-grained control for custom application architectures.