Скачать книгу

which fall into the free tier of services. The instance types define things like the number of CPUs, amount of memory, and type of storage supplied for your virtual server. You also need to consider the operating system, which means selecting between a Windows or Linux version, in this case.

      INSTANCE TYPES VERSUS PHYSICAL HARDWARE

      An instance type differs from having real hardware in an important way. If you find that your real hardware isn’t supporting a need, you have to buy more physical hardware. Likewise, when the rush is over, you need to get rid of excess hardware. Using a virtual server means that you can change the configuration as needed, including the operating system used. Instead of having to physically reconfigure a setup, you simply define new characteristics for the setup, and AWS takes care of the low-level details for you.

      The trade-off can come in the form of cost. When reconfiguration becomes too easy and people find that they can access nearly infinite resources, they tend to waste resources, and applications become less robust and efficient (good for Amazon; bad for your organization). In addition, the ease of changing a configuration can lead to all sorts of design issues and even infighting in the various developer groups. The rest of the book deals with other issues that crop up when using AWS for development; just be aware for now that you can’t always directly equate your localized or web-based development environment with the cloud-based development environment.

Choosing an appropriate platform for your needs

      By now, you should have the idea that creating an appropriate platform isn’t a matter of finding a set of AWS features to meet your app needs. What it comes down to is finding the set of features that helps you code

      ❯❯ With the least effort

      ❯❯ In the shortest time

      ❯❯ For the least amount of money

      The whole issue of cost can become significant with AWS because you quickly find yourself paying all sorts of hidden fees for things that you didn’t know you needed or thought would be free. Although Chapters 2 and 3 do help with the cost considerations, this book doesn’t provide the full treatment of the topic that you can find in AWS For Admins For Dummies, by John Paul Mueller (Wiley 2016). However, you do get enough information to make smart decisions about building a development environment and using that environment to create applications (which obviously is the purpose of this book).

The best way to find an appropriate platform for your development needs is to start slowly, using one of the services at a time and adding services only as you need them, rather than trying to build a complete development environment at the outset. If you attempt to create a complete development environment, you’re almost certain to make serious mistakes with so many different services providing such a great amount of overlapping functionality. As previously mentioned, most developers start with an EC2 setup and possibly add the Lambda service to it to begin experimenting with AWS as a coding platform. AWS also provides access to the developer tools shown in Figure 1-3. The AWS Command Line Interface can prove extremely helpful in getting started with AWS because you get a feel for how things work in an interactive environment.

       FIGURE 1-3: Amazon provides a wealth of developer tools to provide development support at a variety of levels.

      

Use the free-tier services (as outlined in Chapters 2 and 3) as much as possible at the beginning to reduce the cost of experimentation. Only when you see an actual need to modify your configuration to use paid services should you make the change. Relying on this approach will give you a better feel as to how to make your setup efficient and what you can actually expect in the way of performance using less capable setups.

Chapter 2

      Obtaining Development Access to Amazon Web Services

      IN THIS CHAPTER

      ❯❯ Considering the limits of the free services of AWS

      ❯❯ Knowing what hardware you need to work with AWS

      ❯❯ Obtaining your AWS developer account

      ❯❯ Checking your setup

      As a developer, you need some knowledge of administration tasks on Amazon Web Services (AWS) before you can do much else. The reason is that you need to set up and configure some test scenarios to work with when performing development tasks. Obviously, you don’t want to ruin a perfectly good production setup by using untested code. Discovering how AWS works is much easier if you have your own account and resources to work with. Of course, you don’t want to have to pay for the learning time, which is why the first section of this chapter discusses the free services that AWS has to offer, and there are a lot of them. Unfortunately, free resources don’t always remain free, and sometimes free is an illusion, so the chapter discusses these issues as well.

      Development also means having some amount of hardware available for the task. In this case, you actually need several levels of hardware:

      ❯❯ User: To even start working with your computer, you have basic user needs to meet. This chapter assumes that you have the hardware required to run the user environment for your system. Because you could end up simulating more than one user, you may want to ensure that your system well exceeds the requirements for a single user, even when you plan to perform simulations through task switching (placing one user in hibernation while you act as another).

      ❯❯ Network: You require a connection to the Internet and any local network resources needed to develop your application. This chapter doesn’t cover any of these requirements. However, given that you plan to perform development tasks over the network, you may need to talk with your network administrator to ensure that you have proper rights and any additional hardware required to allow the bandwidth required to work with AWS.

      ❯❯ Development: The programming language you choose will have certain hardware requirements, as will any developer add-ons you require. This chapter assumes that you know what these requirements are for your particular setup. You must plan this hardware in addition to any other hardware required for other purposes.

      ❯❯ AWS: Interestingly enough, your AWS setup also requires hardware. This chapter discusses the hardware you typically want to have to ensure that AWS works properly. This hardware is in addition to the hardware you need to run your user, networking, and development environment.

      To work as an AWS developer, you actually need two levels of AWS access. The first level of access provides an account that you use to set up and configure services such as Amazon Simple Storage Service (S3). The second level of access is your developer account, which includes obtaining a development key that you use to access AWS through code. This chapter helps you obtain both levels of access.

      The final section of the chapter helps you test your setup. You perform the same tasks that you perform when developing an application, but a short version of them. In this case, you perform a quick S3 setup, test it, and then access it using scripted code. The idea is to ensure that you actually can access AWS as you work through the examples later in the book.

      Discovering the Limits of Free Services

      Amazon does provide the means for using many of its cloud services for free. In fact, you can see some of these services at http://aws.amazon.com/free/. However, as you look through the list of services, you see that some expire but others don’t. In addition, some have limits and others don’t. Those that do have limits don’t have the same limits, so you need to watch usage carefully. It’s really quite confusing. The following sections help clarify what Amazon actually means by saying some services

Скачать книгу