1

AWS use AMI (Amazon Machine Image) to copy the application server whenever new node (server) is deployed.

  • How that work ? What sort of image is that ?
  • What are other ways to do replication of application in load balanced env?

Reason behind question

I want to achieve auto scaling by normal dedicated servers , Apis are there to automatically create and destroy server(all I mean to say that I am on Non AWS env ) , so what is the best way to copy my application in newly deployed server automatically

vivex
  • 129
  • 6

2 Answers2

3

The creation of an AMI when a new node(server) is deployed is not automatic by default. You could certainly make it happen by using a AWS SDK of your choice. Image type depends on what type of EC2 instance you are using. AWS best practices recommends having your instance in different regions connected via auto scaling and launch configurations using an ELB so that you are highly available. You could also dosnapshots if thats what you are looking for.

Updated Answer:

It depends how much time you want to spend doing this. You could use Cloudformation, and Infrastructure as code methodologies to create your environment programmatically. i.e. Things like Ansible, Docker, etc...

You could also bootstrap an ec2 when deploying one using user-data to copy repo's, configure, etc...

Probably the fastest way is to create an AMI of your working EC2 instance, and then create new EC2 instances from that AMI, instead of starting from a fresh instance everytime. There are also AWS tools like Elastic Beanstalk depending on your stack that could greatly reduce time spent.

It also depends on your architecture, the more EC2 instances you have, you will have to consider things like HA and fault tolerance, which then makes you configure autoscaling and launch configurations, etc.

mindblowwn
  • 27
  • 5
0

AWS AMI is basically a clone of root drive like a snapshots. AWS recommends to build an AMI once it tested and ready to deploy into your environment, though to use AutoScaling procedure AMI is essential.

The requirements: to find out the best scenario to clone application (state-less) servers within own hardware, not any cloud provider.

Without knowing enough about your backend the only broad recommendations can be applied:

  • Automate bootstrap and provisioning procedure
  • Automate deployment phase to be able to deploy with one button press
  • Clone a given application server
  • Based on SLA choose HA strategy that satisfies your business processes

First 3 steps are the most individual and complex in many environments. The last one can be solved by using common patterns:

  1. No Load Balancer but DNS Failover (Round Robin with Health Check)

  2. Load Balancer + DNS Failover or Virtual IP technique

To find out more about DNS and LB check the most recent discussion from here: Is it possible to use multiple load balancers to redirect traffic to my application servers?

Anatoly
  • 556
  • 3
  • 16