14.01.2015 Views

Eric lippert - Amazon Web Services

Eric lippert - Amazon Web Services

Eric lippert - Amazon Web Services

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Highlights from this architecture:<br />

• Both servers are Windows 2008 R2 web/standard editions to<br />

save cost.<br />

• Both servers have SQL Server <strong>Web</strong> Edition installed provided<br />

by hosting company. If you want to buy your own servers, then<br />

you have to purchase Standard Edition.<br />

• One server is called Primary Database Server that has the<br />

databases on it.<br />

• The other standby server has standby copies of the databases<br />

configured through SQL Server’s Log Shipping feature.<br />

• Both servers have IIS and web app is running on both.<br />

• Both servers have Windows Network Load Balancing<br />

configured to load-balance the web traffic between both<br />

servers. NLB is configured on port 80 to distribute web traffic<br />

equally on both servers. Alternatively, you can ask your hosting<br />

provider to give you two load balanced ports on their firewall<br />

or load balancer.<br />

• Both servers have two disks and Windows Disk Mirroring is<br />

configured to provide a software RAID1 solution. This way, both<br />

disks have the exact same data. Even if one disk fails, there will<br />

be no disruption.<br />

This configuration gives you pretty decent reliability. If one<br />

server fails, the web traffic will be automatically diverted to the<br />

other server. But the SQL Server Standby databases have to be<br />

manually brought online and you need to change the<br />

web.config on the surviving server, to point to the surviving<br />

SQL Server.<br />

However, you should go with this super cheap<br />

configuration only if you are a garage Startup and you are<br />

funding from your own pocket. If you want decent reliability<br />

with high performance and availability too, you need to go for<br />

the next architecture.<br />

02<br />

Decent production architecture for 99% availability<br />

The first thing you need to do is<br />

separate out the databases into their<br />

own servers. Whenever you put SQL<br />

Server on a server, you will see all<br />

your RAM gets consumed too quickly.<br />

It is designed to allocate all available<br />

memory.<br />

So, IIS and SQL Server will be<br />

fighting for RAM unless you go to the<br />

SQL Server Management Studio and<br />

fix the maximum memory limit. But<br />

you shouldn’t do that unless you are<br />

desperate. You should put SQL Server<br />

on its own server with as much RAM as possible. The best thing would be to<br />

have the same amount of RAM as the size of data in your database. But RAM is<br />

expensive!<br />

DNcmagazine www.dotnetcurry.com | 5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!