Eric lippert - Amazon Web Services
Eric lippert - Amazon Web Services
Eric lippert - Amazon Web Services
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