Part 1
Discovering the AWS Development Environment
IN THIS PART âŠ
Get started with Amazon Web Services (AWS).
Create a good AWS development environment.
Obtain your developer key.
Understand the AWS free tier.
Consider the security issues.
Chapter 1
Starting Your AWS Adventure
IN THIS CHAPTER
Considering Infrastructure as a Service (IaaS) Defining when, why, and how to use AWS Ensuring you have a supported platform There was a time when business development meant creating software for a single machine or for a workgroup. The client-server architecture, with its emphasis on both local and centralized servers, came next. Developers eventually started creating applications for the Internet as well, enabling people to do things like work from home without losing contact with the organizationâs database. Browser-based applications actually appear on most desktops today, and you might spend much of your nondevelopment time using one.
As development has moved onward and outward, the tools, techniques, and processes for development have changed as well. Today you deal with the cloud, where the server that holds your application doesnât even reside on the premises. In many respects, everyone is a remote user today. Of course, organizations have a huge investment in existing hardware and software, so youâre actually more likely to find yourself working in a hybrid environment with one foot on local resources and the other on someone elseâs turf. Amazon Web Services (AWS) provides you with a complete development environment, but for many developers, the changes that using AWS require are significant and awkward. This chapter helps you better understand what to expect from AWS and to feel just a little less awkward about the coming changes.
You may also find yourself drowning in a sea of new abbreviations and acronyms. Of course, you can act like you know what all these terms mean, but theyâre actually important terms, and knowing what they mean gives you an edge over everyone else. This chapter also helps you understand terms like Infrastructure as a Service (IaaS) and discover just what this new term means to you as a developer. If you already work on the Internet, you could possibly skip this part of the chapter, but if youâve spent your career working with desktop applications or a local intranet, you definitely want to find out more.
Developers often find that the most frustrating part of creating an application is having the right tool. Development is more than knowing the right procedures and the right function calls â itâs a matter of knowing the most efficient manner in which to use them and determining when the tools already in use wonât do the job. This chapter closes with some essential information about the platforms that AWS supports. Reading this material will help you avoid some serious trouble later because you can avoid the most serious platform issues at the outset.
Defining the AWS Cloud
As a developer, you need to meet end-user demands with the least amount of effort and in the quickest time. Amazon Web Services (AWS) is a huge array of services that affects consumers, small to medium-sized businesses (SMB), and enterprises. Using AWS, you can do everything from creating applications for remote access to organization data to creating a full-fledged IT department in the cloud. The installed base is immense. You can find case studies of companies like Adobe and Netflix that use AWS at https://aws.amazon.com/solutions/case-studies/
. (The page also includes a link to create an account, a topic discussed in Chapter 2.) AWS use isnât just for private companies, either â even the government makes use of its services.
The technologies that make all these services possible are simple in conception. Think of a pair of tin cans attached to each other by a string. Amazon holds one tin can and you hold the other. By talking into one tin can, you can hear what is said at the other end. The implementation, however, relies on details that make communication harder than you might initially think. The following sections give you an overview on how the AWS cloud works.
Understanding service-driven application architectures
Service-driven application architectures, sometimes known as Service-Oriented Architectures (SOA), come in many forms. No matter how you view them, service-driven application architectures are extensions of the client-server technologies that you may still use when creating localized applications, in that a client makes a request that a server fulfills by performing an action or sending a response.
The request/response implementation details have changed significantly over the years, however, making modern applications far more reliable, flexible, and less reliant on a specific network configuration. The request and response process can involve multiple levels of granularity, with the term microservice applied to the smallest request and response pairs. Developers often refer to an application that relies on a service-driven application architecture as a composite application because it exists as multiple pieces glued together to form a whole. Service-driven application architectures follow many specific patterns, but in general, they use the following sequence to perform communication tasks:
- Create a request on the client using whatever message technology the server requires.
- Package the request, adding security or other information as needed.
-
Send the request using a protocol, such as Simple Object Access Protocol (SOAP), or an architecture, such as REpresentational State Transfer (REST).
No matter what programming language you use, you need to know how to communicate with web services using your programming language of choice. The â
Considering the AWS-Supported Platformsâ section of this chapter helps you make a good decision about a language choice. You can discover how SOAP works at
http://www.w3schools.com/xml/xml:soap.asp
and how REST works at
http://www.tutorialspoint.com/restful/
. Knowledge of ...