I have an EBS-backed Windows EC2 server with an additional ephemeral drive (aka "instance store") which is really fast (SSD). The instance runs an IIS website + SQL Server
What can I move to the instance-store to fasten things up?
Currently I have moved:
- "TempDB" database for SQL server
- Non-crucial (temporary) backups
- Swap-file
What else can I move to the ephemeral drive to fasten things up? Windows TEMP folder? IIS logs? Would love the ideas.
Simply put store anything that you're prepared to lose when the instance terminates and you lose the data on your ephemeral drive.
As you've already pointed out a great use case is temporary files.
I suspect most of your database and software related files need to live on an EBS backed volume.
You can increase the performance of EBS backed volumes by provisioning higher IOPS.
You should also profile your application and find out where and how it's slow. You may benefit from better CPU and more RAM.
Finally you may be able to enhance your application, for instance using indexing on your database or more efficient queries. Static files could be served out of CloudFront (CDN) for your web server.
TempDb and Swap/Page file are great options.
I wouldn't put the main IIS or App logs on instance storage. They might be needed after some issues that requires you to Force Stop the server. But if you are fine with losing it, go ahead and do it. I have put app logs for temporary checks on instance storage though. But they are enabled with a flag only and are almost never used.
ASP.NET Temp file.
I have also used it for storing temporary upload files of web application and doing some quick pre-process, before moving them to more permanent place. If any failures, the client could try to reupload. Obviously, more complex scenarios/pre-process might need a different architecture.
If using a server with instance-storage as a Build server, temporary build files could also be there.
Lastly, and I haven't tries this, if you have relatively small or readonly DBs that doesn't change much and can be safely reconstructed from a nightly backup, one could consider putting it there. But you might need good startup script.