Interacting with AWS to turn system diagrams into reality
Generally speaking you can host any application on AWS. If you interact with AWS, you will always make calls to the API. The API is the interface between you and AWS as figure 1 demonstrates.
You will now get an overview of tools that are available to make calls to the AWS API. Please compare the following tools in their ability to automate your daily tasks.
Web Management Console
You can interact with AWS by using the web-based Management Console. You can manually control AWS with this convenient GUI that runs in every modern web browser (Chrome, Firefox, Safari >= 5, IE >= 9). Figure 2 shows what the Management Console looks like.
If you’re doing some experiments with AWS, the Management Console is the best place to start. It helps you to gain an overview of the different services and achieve first success quickly. The Management Console is also a good way to set up a cloud infrastructure for development and testing.
(You can read an exploration of the Management Console in section 1.7 of my book, Amazon Web Services in Action.)
Command Line Interface
You can start a virtual server, create storage, and send mails from the command line. With the Command Line Interface (CLI) you can control everything in AWS. Figure 3 shows the CLI in action.
The CLI is typically used to automate tasks on AWS. If you want to automate parts of your infrastructure with the help of a continuous integration server, like Jenkins, the CLI is the right tool for the job. The CLI offers a convenient way for accessing the API and combining multiple calls into a script.
You can even start to automate your infrastructure with scripts by chaining multiple CLI calls together. The CLI is available for Windows, Mac and Linux. There is also a PowerShell version available.
Sometimes you need to call AWS from within your application. With SDKs you can use your favorite programming language to integrate AWS into your application logic. AWS provides SDKs for:
SDKs are typically used to integrate AWS services into applications. If you are doing software development and want to integrate AWS services like a NoSQL database or a push notification service, SDKs are the right choice for the job.
Some services like queues or topics must be used with a SDK in your application.
A blueprint is a description of your system containing all services and dependencies. The blueprint does not say anything about the necessary steps or their order for achieving the described system. Figure 4 illustrates how a blueprint is transferred into a running system.
You use blueprints if you have to control many or complex environments. Blueprints help you to automate the configuration of infrastructure in the cloud. You can use blueprints to set up virtual networks and launch different servers into that network, for example.
A blueprint removes a lot of burden from you because you no longer need to worry about dependencies during system creation. A blueprint automates the whole process of system creation.
This article, excerpted from Amazon Web Services in Action.
Amazon Web Services in Action introduces you to computing, storing and networking in the AWS cloud. You’ll start with a broad overview of AWS and learn how to spin up servers manually and from the command line. Then, you’ll explore infrastructure automation with the AWS CloudFormation service, where you can describe a blueprint of your infrastructure as code. As you progress through the book, you will learn how to isolate your systems using private networks to increase security and how to use the most valuable AWS managed services available on AWS. You’ll also discover the benefits of stateless servers. In the end, you’ll look at the AWS model for high availability, scaling, decoupling with queues and load balancers, and fault tolerance.