You are previewing Mastering AWS Development.
O'Reilly logo
Mastering AWS Development

Book Description

Develop and migrate your enterprise application to the Amazon Web Services platform

In Detail

This book is a practical guide to developing, administering, and managing applications and infrastructures with AWS. With this, you'll be able to create, design, and manage an entire application life cycle on AWS by using the AWS SDKs, APIs, and the AWS Management Console.

You'll start with the basics of the AWS development platform and look into creating stable and scalable infrastructures using EC2, EBS, and Elastic Load Balancers. You'll then deep-dive into designing and developing your own web app and learn about the alarm mechanism, disaster recovery plan, and connecting AWS services through REST-based APIs. Following this, you'll get to grips with CloudFormation, auto scaling, bootstrap AWS EC2 instances, automation and deployment with Chef, and develop your knowledge of big data and Apache Hadoop on AWS Cloud.

At the end, you'll have learned about AWS billing, cost-control architecture designs, AWS Security features and troubleshooting methods, and developed AWS-centric applications based on an underlying AWS infrastructure.

What You Will Learn

  • Get to grips with the AWS development platform to access, authenticate, and manage the identity of various applications

  • Create a scalable infrastructure using EC2, EBS, the Elastic load balancer, and auto scaling efficiently as per your web traffic requirements

  • Manage the whole storage life cycle of AWS using different services such as RDS, S3, and RedShift programmatically

  • Design and develop a web application, a batch processing system, and their required infrastructures

  • Understand the importance of APIs at the development phase with AWS and leverage the benefits of REST-based APIs call over AWS services

  • Explore troubleshooting best practices, security on AWS and disaster recovery plans

  • Bootstrap AWS EC2 instances with preconfiguration commands to set up the environment and use Chef for automation and deployment

  • Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at If you purchased this book elsewhere, you can visit and register to have the files e-mailed directly to you.

    Table of Contents

    1. Mastering AWS Development
      1. Table of Contents
      2. Mastering AWS Development
      3. Credits
      4. About the Author
      5. About the Reviewers
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Downloading the color images of this book
          3. Errata
          4. Piracy
          5. Questions
      8. 1. Architecting in the Cloud
        1. AWS services
        2. The AWS global infrastructure
        3. Regions and Availability Zones
          1. What are AWS regions?
          2. What are AWS Availability Zones?
          3. How to use AWS AZs
        4. AWS EC2 and IAM
          1. The AWS EC2 functionality
          2. Instance types and pricing
            1. Selecting an instance type
              1. Available instance types
              2. Popular use cases for instance categories
          3. AWS EC2 instance numbers and pricing
            1. Billing and pricing
        5. Ephemeral versus persistent storage
          1. What is ephemeral storage?
          2. How to use persistent storage with your instance
        6. Scalability, elasticity, and bootstrapping
          1. Bootstrap your instances
          2. Black belt booting
        7. Identity and Access Management
          1. Accessing IAM
        8. Authentication and authorization
        9. Summary
      9. 2. Elastic and Fault-tolerant Infrastructure
        1. The AWS Elastic infrastructure by Auto Scaling
          1. Working with Auto Scaling
            1. Ways to access the Auto Scaling service
        2. Installing and configuring Auto Scaling
          1. Installing Auto Scaling prerequisites
        3. Working with Auto Scaling using the CLI
          1. Getting started with Auto Scaling using AWS Management Console
        4. Summary
      10. 3. Storage Lifecycle Management
        1. Data storage scaling
        2. AWS DynamoDB
          1. DynamoDB data types
          2. Creating the first SDK project
          3. Java SDK operations
          4. The DynamoDB local
        3. AWS Simple Storage Service (S3)
        4. Amazon CloudFront
          1. Creating Amazon CloudFront Distribution
        5. Amazon RDS management with CLI
          1. Authorizing network access
        6. Summary
      11. 4. Web Application and Batch Processing Architecture
        1. Alarms with Amazon CloudWatch
          1. Creating an EC2 instance
        2. Batch processing flow
          1. Creating an IAM role
          2. Creating SQS tasks
          3. Creating S3 bucket
          4. Launching worker nodes
          5. Dispatching work and viewing results
          6. Monitoring the cluster
        3. Amazon CloudFormation
        4. Where should I start on AWS?
        5. Case study
          1. LAMP on your Amazon EC2
            1. Prerequisites
            2. Installing and starting the LAMP server
            3. File permissions
            4. Testing the LAMP web server
        6. Summary
      12. 5. High Availability, Disaster Recovery, and Amazon VPC
        1. Disaster recovery circumstances with AWS
          1. Recovery time objective and recovery point objective
          2. Backup and restore
          3. Pilot light recovery in AWS
          4. Warm standby solution
          5. Multisite solution
        2. Replication of data
        3. Architecting with Amazon VPC
          1. Launching an instance in the VPC
          2. Creating a private subnet
          3. Spinning a database instance in the private subnet
          4. Creating a Remote Access Software VPN to your VPC
          5. Launching an OpenVPN instance
          6. Downloading the OpenVPN client
          7. Configuring the OpenVPN server
        4. Summary
      13. 6. Tools for AWS and Setup Guidelines
        1. Working with AWS SDKs and IDE toolkits
        2. Working with tools and code libraries
          1. Creating an SDK project
          2. Java SDK operations
        3. DynamoDB Local
        4. Command-line interface
        5. Summary
      14. 7. Interacting with AWS Using API
        1. REST-based APIs
        2. Authenticating requests using REST APIs
          1. Getting started with API tools
          2. Installing API tools
          3. Running your first instance
            1. Example of EC2 API
        3. Data format for DynamoDB
        4. HTTP requests
          1. Request header
          2. Request body
          3. Response header
        5. Operations in DynamoDB
          1. CreateTable
          2. PutItem
          3. UpdateItem
          4. GetItem
          5. Query
          6. Scan
          7. DeleteItem
          8. DescribeTable
          9. UpdateTable
          10. DeleteTable
          11. ListTables
          12. BatchGetItem
          13. BatchWriteItem
        6. Summary
      15. 8. Amazon Beanstalk, CloudTrail, and Data Warehouse Services
        1. Application deployment using AWS Elastic Beanstalk
        2. Getting started with Amazon Redshift
          1. Configuration options
          2. Cluster configurations
        3. Interacting with AWS Trail
          1. Features and benefits
        4. Case study: migrating applications to the Cloud
        5. Summary
      16. 9. Bootstrapping and Auto-configuration
        1. Black belt booting
        2. Bootstrapping instances with AWS CloudFormation
        3. Bootstrapping Amazon instances using Chef
        4. Continuous integration and deployment
        5. Automation with Amazon SWF
          1. The workflow execution of Amazon SWF
        6. Working with AWS OpsWorks
          1. Creating an OpsWorks stack
          2. Creating the Rails App Server layer
          3. Creating the database layer
          4. Adding instances
        7. Summary
      17. 10. AWS Billing and Amazon CDN Service
        1. Programmatic AWS billing
          1. Turning on detailed billing reports
          2. Select the detailed billing reports you want to receive
          3. Referencing your detailed billing report data
        2. Cost allocation reporting
        3. Cost control architectures
          1. Controlling access to your billing report files
        4. CDN service from AWS – CloudFront
          1. How CloudFront works
          2. Getting started with CloudFront
            1. Streaming
        5. Summary
      18. 11. Analyzing Big Data with AWS
        1. Introducing Big Data and Hadoop
        2. Introducing Amazon Elastic MapReduce
          1. Provisioning a Hadoop cluster on EMR
        3. Hive structural design
          1. Metastore
          2. Compiler
          3. The execution engine
          4. Supporting apparatuses
        4. Data types
        5. Data model
          1. Indexing on Hive tables
        6. Amazon Kinesis
          1. Kinesis terminology
            1. Streams
            2. Data records
            3. Producers
            4. Consumers
            5. Shards
            6. Partition keys
            7. Amazon Kinesis Client Library
        7. Summary
      19. 12. Miscellaneous Features, AWS Security, and Troubleshooting
        1. Amazon CloudSearch
          1. Creating and configuring a search domain
          2. Uploading and indexing the data for search
          3. Searching your Amazon CloudSearch domain
        2. Amazon Mechanical Turk
        3. AWS Security best practices
          1. Understanding AWS Secure Global Infrastructure
          2. Regions, Availability Zones, and service endpoints
          3. Managing keys in the Cloud
          4. Managing patches
          5. Mitigating compromise and abuse
          6. The Trusted Advisor tool
        4. Troubleshooting practices
          1. Ephemeral disk corruption
          2. DNS concerns
          3. Resizing or emptying disks
          4. Host dispute
          5. Security group misconfiguration
        5. Summary
      20. 13. Building Applications and AWS Best Practices
        1. Application impression
        2. Tool mixture
        3. Development phase
          1. Conventions
          2. Handlers
          3. Starting with EduCloud
          4. Handling instance entreaty
          5. Instance entreaty sanction
          6. Rejecting an instance entreaty
          7. Using RDS and Elastic Beanstalk
          8. The application of superlative AWS exercises
        4. Best practices with AWS
        5. Summary
      21. Index