Amazon Web Services - Making a running instance or service to use EBS, SSD volume
To all Amazon Web Services users, striving to improve the performance of their servers, we have a quick tip to let you leverage a new addition introduced by AWS.
Amazon EBS, the storage services acting as a building block of persistent datastore has rolled out SSD version as general purpose EBS volumes since early July this year. See Amazon EBS Product Details for more details.
(It is said that AWS has released this feature sooner after similar feature was released by Google Compute Engine )
It is known that SSD is a milestone in disk storge, considering it's significance with respect to short access time and reduced latency. So it is sane to make already running servers (aka instance in AWS parlance) to leverage the new SSD volumes to get the best of Amazon's cloud services.
Though it's not an easy thing to do, could be not sane at times to disturb the working system. But custom AMI feature is there to make the transition smoother.
To make a running instance to use SSD volume,
Stop all the running services in your instance
Make a custom AMI (on SSD volume)
Launch a new instance with your custom AMI
Do needful Elastic IPs re-assigning and start needed services, if not done automatically
See my previous blog How to move AWS EC2 Instance from one account to another? for detailed instructions on above step.
If for some reasons you think that the above solution will not work for your case. You could make at least some selected services to utilize SSD volume. For instance MySQL's data directory alone shall be moved to separate SSD volume. This will ensure, atleast the service specific read/write will happen (relatively) faster though it couldn't be leveraged entriely for OS itself.
To do so,
Create volume from AWS console (select appropriate size, zone, etc. Indeed Type should be "General purpose (SSD)" type)
Attach to your running instance
Now ssh into your server
Amount and format your volume Making an Amazon EBS Volume Available for Use
In case of MySQL. Stop the MySQL server, move data directory to newly mounted volume (simple instructions at https://stackoverflow.com/questions/1795176/how-to-change-mysql-data-directory should do it and start again
Same way for other services as needed.
Hope this will help. If you have any opinon or query, post it as comment below.