4
votes

I am trying to deploy my Spring Boot microservices on using Elastic Beanstalk from AWS. It provides preconfigured environment for deployment. I have one Ubuntu machine with EBS with 80 GB(free tier option). I have some doubts. I am adding as points

  1. When I am deploying using Elastic Beanstalk, where it actually deploying? In my EBS storage ? Or any other space which belongs to AWS ?

  2. Is it possible to deploy anything without creating an EC2 instance? If possible, then where will it actually physical space occupy?

  3. When I deploy my microservices, I choose Tomcat option. So under the box there is a sentence that Java Tomcat server environment is in Amazon Linux or something like that. I have Ubuntu machine; if Beanstalk using my EC2 instance, then why it showing message related to Amazon Linux 2017? Since my machine is Ubuntu?

  4. And I found docs saying BeanStalk is not charging payments. Payment is going according to the AWS resources that we choose. So how I can relate this point with my 3rd point?

1

1 Answers

2
votes

I'll start with #4 Elastic Beanstalk is a service you are NOT charged for, just the resources you consume, so EC2, EBS, ELB's.

When you deploy an Elastic Beanstalk application you select what version of Tomcat you want and with it the version of Linux

  • 64bit Amazon Linux 2017.09 v2.7.2 running Tomcat 8 Java 8

  • 64bit Amazon Linux 2017.09 v2.7.2 running Tomcat 7 Java 7

  • 64bit Amazon Linux 2017.09 v2.7.2 running Tomcat 7 Java 6

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html#concepts.platforms.java

#1 - It is deploying to an environment on EC2, which is why there is an AMI in the platform you provision.

When you launch an environment, you choose a platform configuration. We update platform configurations periodically to provide performance improvements and new features. You can update your environment to the latest platform configuration at any time.

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.ec2.html

#2 You can deploy your application on Docker, but that still needs EC2 hosts to run, you can manage them or you can use Multi Container platform, which provisions them to ECS . https://docs.aws.amazon.com/elasticbeanstalk/latest /dg/create_deploy_docker.html

#3 Elastic Beanstalk likes to keep resource under it's control, When you provision an Environment, it will provision the resources needed, no need to provision a machine outside of Elastic beanstalk. You can create a custom platform if you want too based on Ubuntu.

Note

Modify the resources in your environment only by using Elastic Beanstalk. If you modify resources using another service's console, CLI commands, or SDKs, Elastic Beanstalk won't be able to accurately monitor the state of those resources, and you won't be able to save the configuration or reliably recreate the environment. Out-of band-changes can also cause issues when terminating an environment.

Some other points about Elastic Beanstalk from a great answer on Stack Overlfow