You are previewing Learning AWS.
O'Reilly logo
Learning AWS

Book Description

Design, build, and deploy responsive applications using AWS cloud components

In Detail

With the increasing global interest in leveraging cloud infrastructure, AWS Cloud from Amazon offers a cutting-edge platform for architecting, building, and deploying web-scale cloud applications. The variety of features available within AWS can reduce overall infrastructure costs and accelerate the development process for both large enterprises and startups alike.

Beginning with basic cloud concepts, you'll learn about the various cloud services models and the design implications of multi-tenant applications. You'll then design, implement, and deploy a multi-tier, scalable, highly-available and secure application on the AWS platform. At every step, we explain the key guiding principles driving real-world production-ready application architectures. Finally, you will learn how to automate your cloud infrastructure, set up operations, application monitoring, and DevOps pipeline.

What You Will Learn

  • Multi-tenant design approaches for SaaS applications

  • Planning dev, test, staging, and production environments

  • Design considerations for scalability and high-availability

  • Planning for DR

  • The security considerations and implementation of AWS applications

  • Production deployment processes and tools

  • Monitoring AWS applications using CloudWatch

  • Automating infrastructure using CloudFormation

  • 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 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.

    Table of Contents

    1. Learning AWS
      1. Table of Contents
      2. Learning AWS
      3. Credits
      4. About the Authors
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
          3. Instant updates on new Packt books
      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. Errata
          2. Piracy
          3. Questions
      8. 1. Cloud 101 – Understanding the Basics
        1. What is cloud computing?
        2. Public, private, and hybrid clouds
        3. Cloud service models – IaaS, PaaS, and SaaS
        4. Setting up your AWS account
        5. The AWS management console
        6. Summary
      9. 2. Designing Cloud Applications – An Architect's Perspective
        1. Multi-tier architecture
        2. Designing for multi-tenancy
          1. Data security
          2. Data extensibility
          3. Application multi-tenancy
        3. Designing for scale
        4. Automating infrastructure
        5. Designing for failure
        6. Designing for parallel processing
        7. Designing for performance
        8. Designing for eventual consistency
        9. Estimating your cloud computing costs
        10. A typical e-commerce web application
        11. Setting up our development environment
          1. Running the application
          2. Building a WAR file for deployment
        12. Summary
      10. 3. AWS Components, Cost Model, and Application Development Environments
        1. AWS components
          1. Amazon Elastic Compute Cloud (EC2)
          2. Amazon S3
          3. Amazon EBS
          4. Amazon CloudFront
          5. Amazon Glacier
          6. Amazon RDS
          7. Amazon DynamoDB
          8. Amazon ElastiCache
          9. Amazon Simple Queue Service
          10. Amazon Simple Notification Service
          11. Amazon Virtual Private Cloud
          12. Amazon Route 53
          13. AWS Identity and Access Management
          14. Amazon CloudWatch
          15. Other AWS services
        2. Optimizing cloud infrastructure costs
          1. Choosing the right EC2 instance
          2. Turn-off unused instances
          3. Use auto scaling
          4. Use reserved instances
          5. Use spot instances
          6. Use Amazon S3 storage classes
          7. Reducing database costs
          8. Using AWS services
          9. Cost monitoring and analysis
        3. Application development environments
          1. Development environments
          2. QA/Test environment
          3. Staging environment
          4. Production environment
        4. Setting up the AWS infrastructure
          1. The AWS cloud deployment architecture
          2. AWS cloud construction
            1. Creating security groups
            2. Creating EC2 instance key pairs
            3. Creating Roles
            4. Creating an EC2 Instance
            5. Elastic IPs (EIP)
            6. Amazon Relational Database Service
            7. Software stack installation
        5. Summary
      11. 4. Designing for and Implementing Scalability
        1. Defining scalability objectives
        2. Designing scalable application architectures
          1. Using AWS services for out-of-the-box scalability
          2. Using a scale-out approach
          3. Implement loosely coupled components
          4. Implement asynchronous processing
        3. Leveraging AWS infrastructure services for scalability
          1. Using AWS CloudFront to distribute content
          2. Using AWS ELB to scale without service interruptions
          3. Implementing auto scaling using AWS CloudWatch
          4. Scaling data services
          5. Scaling proactively
        4. Setting up auto scaling
          1. AWS auto scaling construction
            1. Creating an AMI
            2. Creating Elastic Load Balancer
            3. Creating a launch configuration
            4. Creating an auto scaling group
            5. Testing auto scaling group
          2. Scripting auto scaling
            1. Creating an AMI
            2. Creating an Elastic Load Balancer
            3. Creating launch configuration
            4. Creating an auto scaling group
        5. Summary
      12. 5. Designing for and Implementing High Availability
        1. Defining availability objectives
        2. The nature of failures
          1. Setting up VPC for high availability
          2. Using ELB and Route 53 for high availability
            1. Instance availability
            2. Zonal availability or availability zone redundancy
            3. Regional availability or regional redundancy
          3. Setting up high availability for application and data layers
          4. Implementing high availability in the application
        3. Using AWS for disaster recovery
          1. Using a backup and restore DR strategy
          2. Using a Pilot Light architecture for DR
          3. Using a warm standby architecture for DR
          4. Using a multi-site architecture for DR
          5. Testing a disaster recovery strategy
        4. Setting up high availability
          1. The AWS high availability architecture
          2. HA support for auto scaling groups
          3. HA support for ELB
          4. HA support for RDS
        5. Summary
      13. 6. Designing for and Implementing Security
        1. Defining security objectives
        2. Understanding security responsibilities
        3. Best practices in implementing AWS security
          1. Implementing identity lifecycle management
          2. Tracking the AWS API activity using CloudTrail
          3. Logging for security analysis
          4. Using third-party security solutions
          5. Reviewing and auditing security configuration
        4. Setting up security
          1. AWS IAM – Securing your Infrastructure
            1. IAM roles
            2. AWS Key Management Service
              1. Creating the KMS key
            3. Using the KMS key
          2. Application security
            1. Transport security
              1. Generating self-signed certificates
              2. Configure ELB for SSL
            2. Secure data-at-rest
              1. Secure data on S3
                1. Using the S3 console for server-side encryption
                2. Using Java SDK for server-side encryption
              2. Secure data on RDS
        5. Summary
      14. 7. Deploying to Production and Going Live
        1. Managing infrastructure, deployments, and support at scale
          1. Creating and managing AWS environments using CloudFormation
          2. Creating CloudFormation templates
          3. Building a DevOps pipeline with CloudFormation
          4. Updating stacks
          5. Extending CloudFormation
        2. Using CloudWatch for monitoring
        3. Using AWS solutions for backup and archiving
        4. Planning for production go-live activities
        5. Setting up for production
          1. The AWS production deployment architecture
            1. VPC subnets
              1. Private subnet
              2. Bastion subnet
            2. Bastion host
            3. Security groups
          2. Infrastructure as code
            1. Setting up CloudFormation
            2. Executing the CloudFormation script
              1. Via the command line
              2. Via the Amazon web console
          3. Centralized logging
            1. Setting up CloudWatch
        6. Summary
      15. Index