How do I update an Amazon EC2 public AMI I created - amazon-ec2

I have a public amazon AMI that I created. I have made some changes to an instance of this AMI and would like to update the public AMI with the changes. Not sure how to go about doing this.

Please see the following question in serverfault which talks about the exact problem you have: https://serverfault.com/questions/79123/re-bundle-or-update-an-ec2-ami

Related

How to update code on multiple EC2 instances?

I created an Elastic Load Balancer in front of two EC2 instances. However, I discovered an issue that requires me to update the code on both EC2 instances.
I can access each instance individually to update code via github, or I could create an AMI to launch a new instance. It's very unfavorable.
How can I synchronize code between the two EC2 instances?
In situations like this either a code pipeline would be helpful OR better yet switch to Elastic Beanstalk.

How to create new EC2 instance with existing EC2 instance image while it is terminating?

We have used Elastic Beanstalk for creating the EC2 instances. Is it possible to screate the new EC2 instance with the existing EC2 instance image, when the existing EC2 instance is getting terminated in any case? Can we achieve this by any configuration?
I don't think this is possible.
As soon as you send a terminate request on your EC2 instance, the IP and hardware (disk and other resources) are released.
If you are trying to do this programmatically, I'd suggest you create an AMI before sending a terminate request.
You can create an AMI from the EC2 before you terminate it, and then create a new Elastic Beanstalk environment using this AMI. However, it's not advisable as you'll lose future version upgrades of that AMI as performed by Amazon.
I advise you use the .ebextensions folder mechanism supplied by Elastic Beanstalk in order to alter new instances as they are spawned (see documentation).

Amazon EC2 - Create a new EBS backed AMI with custom AMI ID

I have an EBS-backed AMI instance running in EC2. I have customized it and now want to create a new AMI from it. I will doing this at regular intervals, thereby replacing the previous AMIs created.
I followed the instructions at
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html
and everything worked perfectly.
One problem is that whenever, I create a new AMI, it gets a new AMI ID. So, when I make the AMI public whenever, I update the AMI, it's AMI ID changes. Is it possible to create a new AMI with a custom ID we can specify?
One alternative would be modify an existing AMI, so that the AMI ID remains the same. Please confirm if this is possible
Each time you create a new AMI, you will get a new id. There is unfortunately no way around this.
An alternative would be to update some of the AMI at launch, provided that it can be done relatively quickly. That way you wont need to create a new AMI every time something changes.
It is not possible to modify the contents of an AMI once you have created it such that the next time the AMI is used those changes will be present. This includes the root device and any data in EBS snapshots associated with the AMI (since it's not possible to alter the contents of an EBS snapshot, either).

Amazon EC2 cluster setup

I am working on a HDFS high availability project.
I have configured Hadoop on one Amazon EC2 instance. It is small instance (AMI: Ubuntu server)
I want to form a cluster of EC2 instances. So, i am thinking of replicating the same machine. Does anybody have a clue about how to duplicate this instance on another instance of EC2. If yes, please share.
Thanks!
If your instance is EBS backed, you can make a snapshot and then run as many instance as you want from it.

Which is better EBS or private AMIs?

I am new to Amazon web services. I need to create a server image with a few software packages pre installed on the EC2 instances.
One option I am considering is to create an EBS volume with these packages and then use them to launch EC2 instances.
The other option I am thinking of is to create a private AMI and then use them to launch the EC2 instances.
I am not sure which option is better.
One other slightly related question I have is can I create a private EBS volume and share it with some other account.
You should create your own AMI, as it's probably more efficient. In order to create an instance, you must specify an AMI. Specifying an EBS snapshot as the root device in addition to specifying the AMI (if this even works, I haven't tested it) would just result in the EC2 cloud launching your instance with the AMI, followed by overwriting it with the EBS snapshot for the root volume.
It's easy enough to keep the AMIs laying around as prototypes.

Resources