Packt asked me to review the book “Amazon Web Services: Migrating your .NET Enterprise Application” by Derek Schwartz (http://www.packtpub.com/amazon-web-services/book) because on my Amazon Cloud Services experience.
Last year I wrote “Amazon SimpleDB Developer Guide” for Packt. My Amazon work has been in PHP and Linux but much of my corporate work is in .Net so I was interested in reading about Amazon’s support. What for me was the most valuable was the first few chapters introducing AWS (Amazon Web Services) and comparing it to other offerings. Derek brings experience with AWS to his writing and spends as much time discussing what works well at Amazon as what does not. In chapter 1 he compares AWS to Microsoft’s Azure as well as other cloud services nicely laying the groundwork. Chapter 1 concludes with a discussion on the legalities of where data is stored. While many technical developers will want to skim this chapter, I found it very informative.
Chapter 2 introduces the components of AWS: S3, EC2, Elastic IP, EBS, Security Groups, AWS console, VPC, CloudWatch, ELB, RDS and SNS. While a daunting list of pieces, Derek does a nice intro on each. I learned about pieces that I didn’t even know existed. Amazon regularly announces new capabilities and an intro like this gives a nice view of the landscape.
Chapter 3 starts into signing up, security and legal considerations. The focus is on S3 storage and EC2 virtual server. The reader is walked one step at a time through how to set up a virtual server. Cost and performance considerations are discussed.
Chapter 4 focuses on S3 storage. S3 is in my opinion one of the the most useful features of AWS. The last part of the chapter is on EBS (elastic Block Storage), the persistent storage for an EC2 server instance. After completing chapter 4 the reader has created a server instance complete with storage.
Chapter 5 introduces networking. AWS’s power is in creating multiple servers as load grows and understanding the networking is central to this. Virtual Private Clouds (VPC) and elastic load balancing (ELB) along with CloudFront are introduced to create a cluster of servers that grows/shrinks with demand. After all why pay for processing power in the middle of the night when few users are online. This approach gives you the performance you want while minimizing cost.
Chapter 6 focuses on databases and the various options including a brief intro to SimpleDB (the topic of my book). Mostly the book focuses on Microsoft SQL Server as .Net is the central theme of the book.
Chapter 7 covers data migration, setting up IIS and installing your applications. Chapter 8 introduces Simple Queue Service (SQS), a messaging system. Chapter 9 covers Autoscaling. This feature of AWS creates EC2 instances as demand grows and removes them as demand falls. As Amazon charges for usage, autoscaling is one of the key features of AWS for larger users. Chapter 10 concludes the book with testing. A nice appendix of definitions and links rounds out the book.
I was impressed with the book. If you are considering deploying a multi-server .Net configuration at Amazon, this book can help guide you in the right direction as well as avoid the common pitfalls. A very nice introduction to migrating a .Net enterprise application to Amazon AWS.