0

We have a website that is hosted in Windows Server 2008 R2, with IIS 7.5 The webserver hosts a couple of websites developed with ASP Classic and ASPX

Is there a way to host the files for the dynamic website on Amazon S3?

I know static content can be served directly from S3, but that's not the case as its a dynamic website that has to be handled by IIS.

The business case for this is to use Amazon S3 as a shared container between a farm of EC2 Webservers, which would be instantiated and terminated with CloudWatch as the servers' load spikes or slows.

Edit: There are ASP pages that create or edit other ASP pages. So they need to be shared across the web server farm (EC2 autoscale group in AWS).

2
  • How often do the asp pages change? Jan 11, 2013 at 22:47
  • Most of the ASP don't change. The less than 1/3 of the ASP build static resources (js, css, images), the rest of them are db-driven pages and support files. Jan 11, 2013 at 23:02

4 Answers 4

1

I've found some software that lets you use a S3 Bucket as a windows drive on EC2 instances. That could make possible to make a drive and use it to setup a website with shared asp files on multiple servers using IIS.

Paid

Open (not exaclty for IIS, but for *nix WebServers)

I've got yet to find an free/open alternative to mounting S3 as drives on windows.

1
  • Most of these probably won't be "strongly consistent", ie. when a write is made that change is reflected on other hosts. This could be a problem if you're "writing" an ASP file (as you've mentioned you need to do) and then attempt to execute it immediately on another host. Sticky sessions might help. Most people warn against using S3FS for scenarios like this because it can be slow and sometimes unstable, and if you're aiming to create a high performance highly available cluster these are both things you don't want.
    – thexacre
    Jul 5, 2014 at 23:46
0

Don't store your asp pages in S3.

Make an AMI that includes your asp content for auto-scaling to manage. When your asp pages change, then make a new AMI.

1
  • Making an AMI would not be viable because the files might change. There are ASP pages that create or edit other ASP pages. If i'd set an autoscale group, then some (or maybe most) requests would contain old versions of the site as they where frozen on the AMI. Jan 12, 2013 at 0:08
0

S3 is not the right tool for your job. S3 is for storing static objects that are accessed relatively infrequently by any specific host.

Better options for your needs:

  • A network file share is probably the easiest solution. Network latency won't be great for performance but it'll be better than S3. There's also potential scaling issues but local caching could help with both these issues.
  • A better alternative would be to have all your code under version control, and have an explicit deploy event when you commit changed that causes all your hosts to checkout / update their code.
  • Some hybrid between the two, perhaps use S3 to store archives of the code which each server can fetch upon deploy then store shared files (eg. uploads assuming you can't modify the application to use S3) via network file shares.

Given some of your requirements such as:

There are ASP pages that create or edit other ASP pages.

A network file share might be your only option.

-1

S3 -> SSS -> Simple Storage Service. The key word is 'Simple' aka 'Static'.

If you want run a dynamic service at Amazon then you want to look at EC2 aka Elastic Compute Cloud.

If you're interested in reducing the load on your server[s] due to repeated hits for pages that are dynamically generated, but seldom change, then I'd suggest looking into a reverse proxy like Varnish.

1
  • More than reducing server load, would be to keep at sync the ASP files. Like using S3 as a big-limitless-shared usb drive for the EC2 instances in the AutoScale Group. Jan 12, 2013 at 0:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .