0

I want to move my instance to a micro instance to a small instance but when I try to launch a new AMI based on my Micro instance AMI it only gives me the option for 64 bit instances.

My initial ami is based off an ubuntu 10.04 image.

Is it not possible to move between 64 bit and 32 bit instance?

Would it be possible to use a load balancer to have a 32bit instance and a 64bit instance work together?

I have a website/web app that I will be uploading huge volumes of data to. I will be starting with 65gigs of images and then moving up to 100+ gigs of images.

I am not sure which instance type would be best for this. I was going to use a load balancer and auto scaling to increase the number of instance when the load is high.

Also when using a load balancer, does one of the AMI instance become the primary image and the rest act as clones of it?

Navetz
  • 103
  • 2

2 Answers2

1

According to the Amazon EC2 instance description page, the Micro instances are available in 32 and 64 bit, whereas the Small instance types are only available in 32 bit. This is the reason that you won't be hadn't been able to launch your initial 64bit AMI on the Small instance type.

  • Update: AWS has meanwhile introduced 64-bit Ubiquity, i.e. every instance type can be used with 64-bit images, which indeed will make it easier for you to scale vertically (to larger and smaller instances) without having to maintain parallel (32 and 64-bit) AMIs (see EC2 Updates: New Medium Instance, 64-bit Ubiquity, SSH Client for details).

Regarding your load balancer issues: this is highly dependant on your usage pattern - both 32 and 64bit instance types can work together behind a load balancer without any problems. However, I would suggest to stick to one intance type. In general, I think the main concern for you should be I/O and memory if you are simply doing uploads and no image processing or something like that. I would suggest to simply give it a try, use the minimal setup needed for your web app and do some load tests with both instance types.

Steffen Opel
  • 5,638
  • 37
  • 55
j0nes
  • 955
  • 1
  • 12
  • 27
1

You can only launch images on the same architecture (32bit or 64bit) that they were created on. Micro instances can be either 32bit or 64bit but if you used a 64bit image when creating then you're stuck with that. You can use a 'large' instance instead of a 'small' one if your budget will accommodate that.

It is entirely possible for you to loadbalance (either using Amazon's ELB or another instance with eg HAProxy, Squid, varnish, etc) different types of instances.

I guess your biggest problem is where you plan to store that amount of data. If you plan to have multiple instances serving the same content (and being uploaded to) then you're going to need shared storage. You can use something like GlusterFS to share the data between your instances or you can have a 'storage server' which your web instances NFS mount.

How autoscaling works is you set a 'launch image' which is the AMI id of your 'master' image. It then boots up this image in response to triggers (i.e. load being too high). It's important to think about what this means conceptually - it means that each instance booted up will be based on the original image and will not have new data or updated configs etc.

So, to summarise - if you're going to use more than one web server then you need some form of shared storage. Often this is databases (maybe on Amazon's RDS service) but it sounds like you have big 'files' you need to store rather than data so you need distributed storage or a storage server.

Rafiq Maniar
  • 1,120
  • 9
  • 15
  • Thank you this makes more sense now. For major files (images) I am using amazons s3 servers to store them. – Navetz Dec 28 '10 at 03:19
  • With autoscaling I need to launch new instances that have the same architecture as the 'master' image I will assume. Do both instances use the same "Elastic Block Store Volume" to store data? I ask because my database is stored on one of these volumes so I am wondering what would happen when multiple instances are using it. – Navetz Dec 28 '10 at 03:31
  • Yes, when autoscaling, you launch the same image with the same architecture and same instance type (i.e. m1.small). Think of an EBS volume as an actual individual disk attached to a server. It is unique to that instance. You can remove it and put it on another instance, but it's not shared between instances. It's only on one instance at any given time. So, you can't have your database on the autoscaling instances because new ones will have a new db. You can use Amazon RDS or make a seperate 'DB Server' instance. Important thing to remember - data from one instance is NOT shared with another. – Rafiq Maniar Dec 28 '10 at 04:13
  • On a general note, I spent a lot of time and money once putting into place a super scalable infrastructure in case the site I founded took off. It didn't, and there's something to be said for just getting your site out there on basic infrastructure (i.e. single server) as soon as possible. Have a plan in case it does take off though ;) – Rafiq Maniar Dec 28 '10 at 04:17
  • Thanks a lot for the advice, you have helped so much. The site is actually for a client who wants to be prepared for a huge take off. I will inform him about your advice. Thanks again. – Navetz Dec 28 '10 at 07:05