Preface
Amazon Web Services is an Infrastructure as a Service (IaaS) platform in the Cloud, which businesses can take advantage of as their needs demand. The Amazon Cloud provides the enterprise with the flexibility to choose whichever solution is required to solve specific problems, ultimately reducing costs by only paying for what you use.
While enterprises understand moving their applications among infrastructure they own and manage, the differences in Amazon's infrastructure bring up specific business, legal, technical, and regulatory issues to get to grips with.
This step-by-step guide to moving your Enterprise .NET application to Amazon covers not only the concept, technical design, and strategy, but also enlightens readers about the business strategy and in-depth implementation details involved in moving an application to Amazon. You'll discover how to map your requirements against the Amazon Cloud, as well as secure and enhance your application with AWS.
This book helps readers achieve their goal of migrating a .NET Enterprise Application to the AWS cloud. It guides you through the process one step at a time with a sample enterprise application migration. After comparing the existing application with the newly migrated version, it then moves on to explain how to make the hosted application better. It covers how to leverage some of the scalability and redundancy built into the Cloud, and along the way you'll learn about all of the major AWS products like EC2, S3, and EBS.
What this book covers
Chapter 1, Understanding Amazon Web Services and Exploring Enterprise Application Models, we will look at some of the common architecture styles, and how they fit into AWS. We will also describe the sample application that we will use throughout the book to demonstrate our step-by-step migration of an enterprise .Net application to the AWS cloud. Finally, we'll take a look at some of the questions and issues that surround cloud-based offerings such as Amazon Web Services (AWS).
Chapter 2, Mapping Your Enterprise Requirements against Amazon's Offerings, we will look at each of the services in AWS in more detail, including Simple Storage Service (S3), Elastic Block Store (EBS), Elastic Compute (EC2), Virtual Private Cloud (VPC), CloudWatch, Elastic Load Balancer (ELB), and Relational Data Store (RDS).
Chapter 3, Getting Started with AWS and Amazon EC2, we'll get our hands dirty and set up an actual AWS account and start our first EC2 instance. We'll also look at using the command line as well as using the AWS Web Console.
Chapter 4, How Storage Works on Amazon, we'll learn how Amazon AWS handles storage, as well as the differences between EBS and S3. We'll look at how to manage storage from the command line as well as configure the storage for our sample application.
Chapter 5, Amazon's Approach to Networking, we'll look at how Amazon manages networking as well as how to configure a network from the ground up on Amazon AWS. We'll also look at Elastic IPs, ELBs, VPCs, and CloudFront in more detail.
Chapter 6, Putting Databases in the Cloud is one of the more detailed chapters and deals with how we manage databases in AWS. Not only will we look at SQL Server and Oracle on AWS, but we'll also take a more detailed look at RDS and Simple DB.
Chapter 7, Migrating your Data and Deploying your Code, here we'll finally put it all together and implement our sample application up on AWS. By the end of this chapter you should have a working sample application up in the Cloud in AWS!
Chapter 8, Amazon's Queuing and Notification Options, we'll look at how we can improve on our standard enterprise .Net application by adding Amazon's Simple Queue Service (SQS) and Simple Notification Service (SNS) services.
Chapter 9, Monitoring and Scaling My Application, we'll see how CloudWatch and Amazon Autoscaling combine to make our application automatically scale to handle spikes in traffic and withstand failures of individual components.
Chapter 10, Testing and Maintaining the Application, we'll look at how we support our application once it is up and running in AWS. Also, how we can use some of the features of AWS to help us manage load testing, patch management, and production releases of new versions.
Appendix A, AWS Reference, we have gathered together all of the individual bits and pieces of information, which have been mentioned throughout the book, into one location. If you need to find that download link, or look at the definition of a keyword, this is where to look.
What you need for this book
The software required for this book is stated in each chapter as it is required. Instructions are given as to where the software can be downloaded as well as how to install it when it is required. A summary of the software required is detailed in the appendix.
All of the software required for this book is free of charge to download and use.
The sample application is written using Visual Studio 2010 Express and .Net 4.0 MVC.
Who this book is for
Companies that have designed, developed, and hosted applications based on the Microsoft .NET technology stack should not miss out on this book. If you are looking to expand into using the vast array of services available on the Amazon Cloud but are unsure how to proceed, then this will help to get you on your way.
Administrators or developers managing such applications should have basic experience of the platform and the web servers that they are intending to move to Amazon. No knowledge of AWS is required.
Conventions
In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.
Code words in text are shown as follows: "The next step is to modify the web.config
file on WEB-03 and WEB-04 with the new configuration changes".
A block of code is set as follows:
<CreateQueueResponse> <CreateQueueResult> <QueueUrl> https://queue.amazonaws.com/764516644405/migrate_to_aws_queue </QueueUrl> </CreateQueueResult> <ResponseMetadata> <RequestId>9a0b110a-8cb3-4c1b-98b5-32811b19062f</RequestId> </ResponseMetadata> </CreateQueueResponse>
Any command-line input or output is written as follows:
ec2-authorize "Web Servers" -P tcp -p 80 -s 0.0.0.0/0
New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "Click Next and add the same details that you added when you created your RDS instance".
Note
Warnings or important notes appear in a box like this.
Tip
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply send an e-mail to <[email protected]>
, and mention the book title via the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail <[email protected]>
.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Downloading the example code
You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the erratasubmissionform link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <[email protected]>
with a link to the suspected pirated material.
We appreciate your help in protecting our authors, and our ability to bring you valuable content.
Questions
You can contact us at <[email protected]>
if you are having a problem with any aspect of the book, and we will do our best to address it.