Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
AWS Automation Cookbook

You're reading from   AWS Automation Cookbook Continuous Integration and Continuous Deployment using AWS services

Arrow left icon
Product type Paperback
Published in Nov 2017
Publisher Packt
ISBN-13 9781788394925
Length 388 pages
Edition 1st Edition
Tools
Arrow right icon
Author (1):
Arrow left icon
 Swaraj Swaraj
Author Profile Icon Swaraj
Swaraj
Arrow right icon
View More author details
Toc

Table of Contents (19) Chapters Close

Title Page
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
1. Using AWS CodeCommit FREE CHAPTER 2. Building an Application using CodeBuild 3. Deploying Application using CodeDeploy & CodePipeline 4. Building Scalable and Fault-Tolerant CI/CD Pipeline 5. Understanding Microservices and ECS 6. Continuous Deployment to ECS Using Developer Tools and CloudFormation 7. IaC Using CloudFormation and Ansible 8. Automating AWS Resource Control Using AWS Lambda 9. Microservice Applications in Kubernetes Using Jenkins Pipeline 2.0 10. Best Practices and Troubleshooting Tips Index

Index

A

  • Amazon EC2 Container Registry (Amazon ECR)
    • about / Setting up AWS ECR and pushing an image into it
    • setting up / Setting up AWS ECR and pushing an image into it
    • image, pushing / Setting up AWS ECR and pushing an image into it, Pushing the image to ECR
    • components / Setting up AWS ECR and pushing an image into it
    • working with / Getting ready
    • repository, creating / How to do it...
    • used, for authenticating Docker client / To authenticate Docker client with ECR
    • Docker Image, tagging with repository details / Tagging your Docker Image with the repository details
  • Amazon EC2 Container Service (ECS)
    • about / Understanding ECS and writing task definitions and services
    • task definitions, writing / Understanding ECS and writing task definitions and services
    • services, writing / Understanding ECS and writing task definitions and services
    • core components / Understanding ECS and writing task definitions and services
    • steps, for deploying static application in ECS cluster / Getting ready, How to do it...
    • containers, verifying inside Container instance / Verifying containers inside the Container instance
  • AMI
    • creating, of EC2 Instance with AWS Lambda / Creating an AMIs of the EC2 instance using AWS lambda and CloudWatch, How to do it...
    • creating, of EC2 Instance with CloudWatch / Creating an AMIs of the EC2 instance using AWS lambda and CloudWatch, How to do it...
  • Ansible
    • about / Automation with Ansible
    • automation / Automation with Ansible
    • features / Automation with Ansible
    • workflow / Workflow
    • installation / Installation
    • file structure / File structure and syntax
    • syntax / File structure and syntax
    • used, for deploying web server / Deploying a web server using Ansible
  • Ansible EC2 dynamic inventory
    • used, for creating AWS infrastructure / Creating an AWS infrastructure using the Ansible EC2 dynamic inventory, How to do it...
  • Ansible playbook
    • used, for deploying multinode clusters / Deploying multinode clusters on AWS using the Ansible playbook, How to do it...
  • application
    • writing / Writing an application-specific file, How to do it...
    • deploying, on kubernetes / Deploying a sample application on Kubernetes
    • configuration file / Configuration file
    • deployment configuration file / Deployment configuration file
    • service configuration file / Service configuration file
    • deploying, with Jenkinsfile / Application deployment using Jenkinsfile
  • automated deployment
    • benefits / Introduction
  • Auto Scaling
    • creating / Creating the launch configuration and Auto Scaling group, How to do it...
    • used, for creating AWS CodeDeploy application / Creating AWS CodeDeploy application using the Auto Scaling group
  • AWS CLI
    • used, for setting up AWS CodeCommit / Setting up CodeCommit for SSH users using AWS CLI, How to do it...
  • AWS CloudFormation
    • about / AWS CloudFormation and writing the CloudFormation template
    • CloudFormation template, writing / AWS CloudFormation and writing the CloudFormation template
    • concepts / Terms and concepts related to AWS CloudFormation
  • AWS CloudTrail logs, with Kibana
    • Lambda, used for streaming / Streaming and visualizing AWS CloudTrail logs in real time using Lambda with Kibana
    • Lambda, used for visualizing / Streaming and visualizing AWS CloudTrail logs in real time using Lambda with Kibana
    • workflow / Workflow
    • enabling / Enabling CloudTrail logs
    • CloudWatch, configuring / Configuring CloudWatch
    • Elasticsearch, creating / Creating Elasticsearch
    • CloudWatch logs, streaming in Elasticsearch / Enabling the streaming of CloudWatch logs in Elasticsearch
    • Kibana, configuring to visualize data / Configuring Kibana to visualize your data
  • AWS CodeBuild
    • implementing / Introducing AWS CodeBuild, How to do it...
    • pricing / Pricing
    • used, for building NodeJS application via Buildspec.yml / Building a sample NodeJS application using AWS CodeBuild via Buildspec.yml, Getting ready, How to do it...
  • AWS CodeBuild console
    • used, for building Maven application / Building a Maven application using AWS CodeBuild console, How it works...
  • AWS CodeCommit
    • about / Introducing AWS CodeCommit - Amazon managed SaaS Git, How to do it...
    • benefits / Introducing AWS CodeCommit - Amazon managed SaaS Git
    • using, for HTTP users / Getting started with CodeCommit for HTTP users
    • URL / How to do it...
    • setting up, for SSH users with AWS CLI / Setting up CodeCommit for SSH users using AWS CLI, How to do it...
    • Git repository, migrating / Migrating a Git repository to AWS CodeCommit, How to do it...      
    • setting up / Setting up AWS CodeCommit, How to do it...
    • best practices / Best practices with AWS CodeCommit
    • troubleshooting with / Troubleshooting with CodeCommit
  • AWS CodeDeploy
    • about / Introduction
    • benefits / Introduction
    • components / Introduction
    • deployment strategy / The Deployment strategy in AWS CodeDeploy, How to do it...
    • used, for deploying static application in EC2 instance / Deploying a static application in an EC2 instance from the S3 Bucket using AWS CodeDeploy, How to do it..., How it works...
    • creating, with Auto Scaling / Creating AWS CodeDeploy application using the Auto Scaling group
  • AWS CodePipeline
    • about / Introducing AWS CodePipeline and its working, How to do it...
    • working / How it works...
    • used, for Continuous Deployment of static application / Continuous Deployment of static application to AWS S3 using AWS CodePipeline , How to do it...
  • AWS Config
    • used, for sending notifications through SNS / Sending notifications through SNS using Config and Lambda
    • about / Getting ready
    • configuring, for AWS resources / Configuring the AWS Config service for AWS resources
  • AWS developers tools
    • Jenkins, integrating / Integrating Jenkins with all of the AWS developers tools, How to do it...
  • AWS IAM
    • URL / How to do it...
  • AWS infrastructure
    • creating, with Ansible EC2 dynamic inventory / Creating an AWS infrastructure using the Ansible EC2 dynamic inventory, How to do it...
  • AWS Lambda
    • about / Introduction
    • used, for creating AMI of EC2 Instance / Creating an AMIs of the EC2 instance using AWS lambda and CloudWatch, How to do it...
    • used, for sending notifications through SNS / Sending notifications through SNS using Config and Lambda
    • function, creating / Creating a Lambda function
    • trigger, creating / Creating a trigger
  • AWS resources
    • AWS Config service, configuring / Configuring the AWS Config service for AWS resources
    • using, in Kubernetes / Working with Kubernetes on AWS using AWS resources
    • persistent volume claim, creating / Creating a persistent volume claim
    • deployment configuration file / Deployment configuration file (includes ECR image and PVC )
    • service configuration file / Service configuration file (type Loadbalancer)

B

  • BitKeeper / What is Git?
  • blue-green deployment / Blue-green deployment
  • BlueOcean
    • pipeline, creating / Create a pipeline in the BlueOcean
  • build spec / Buildspec.yml
  • Buildspec.yml
    • sample NodeJS application, building with AWS CodeBuild / Building a sample NodeJS application using AWS CodeBuild via Buildspec.yml, Getting ready, How to do it...
    • about / Buildspec.yml
    • syntax / Syntax
  • Build Specification / How it works...

C

  • CC-AWSSTAR-APP
    • URL / Getting ready
  • CI/CD pipeline
    • about / Introduction
    • benefits /  Benefits of using the CI/CD pipeline
    • benefits, achieving / How to achieve the benefits?
    • scenario / The scenario
    • challenges / The challenges
    • workflow / CI/CD pipeline workflow
  • CloudFormation
    • production-ready web application infrastructure, creating / Creating a production-ready web application infrastructure using CloudFormation
    • used, for creating production-ready web application infrastructure / How to do it...
  • CloudFormation repository
    • URL / Getting ready
  • CloudFormation template
    • about / Terms and concepts related to AWS CloudFormation
    • writing, for YAML / For JSON
    • writing, for JSON / For JSON
    • writing / Writing a CF template, Using parameters
    • used, for creating stack / Creating stack using the CF template
    • URL / Creating stack using the CF template
  • CloudWatch
    • used, for creating AMI of EC2 Instance / Creating an AMIs of the EC2 instance using AWS lambda and CloudWatch, How to do it...
    • logs streaming / Enabling the streaming of CloudWatch logs in Elasticsearch
    • logs streaming, in Elasticsearch / Enabling the streaming of CloudWatch logs in Elasticsearch
  • cluster / Understanding ECS and writing task definitions and services
  • CodeBuild
    • creating, for build stage / Creating a CodeBuild project for the build stage, How to do it...
    • troubleshooting with / Troubleshooting with CodeBuild
  • CodeCommit
    • setting up, for application source / Setting Up CodeCommit for our application source
  • CodePipeline
    • creating, with CodeCommit / Creating a CodePipeline using CodeCommit, CodeBuild, and CloudFormation, How to do it...
    • creating, with CloudFormation / Creating a CodePipeline using CodeCommit, CodeBuild, and CloudFormation, How to do it...
    • creating, with CodeBuild / Creating a CodePipeline using CodeCommit, CodeBuild, and CloudFormation, How to do it...
  • components, AWS ECR
    • registry / Setting up AWS ECR and pushing an image into it
    • authorization token / Setting up AWS ECR and pushing an image into it
    • repository / Setting up AWS ECR and pushing an image into it
    • repository policy / Setting up AWS ECR and pushing an image into it
    • image / Setting up AWS ECR and pushing an image into it
  • components, AWS ECS
    • container instance / Understanding ECS and writing task definitions and services
    • cluster / Understanding ECS and writing task definitions and services
    • task definitions / Understanding ECS and writing task definitions and services
    • service / Understanding ECS and writing task definitions and services
  • containers / Containers
  • Continuous Deployment
    • of static application, with AWS CodePipeline / Continuous Deployment of static application to AWS S3 using AWS CodePipeline , How to do it...
  • continuous integration (CI) / Jenkins pipeline 2.0 (Pipeline as Code) using Jenkinsfile

D

  • declarative pipeline
    • URL / Sections
  • delivery and deployment (CD) / Jenkins pipeline 2.0 (Pipeline as Code) using Jenkinsfile
  • deployment / Introduction
  • deployment strategy, in AWS CodeDeploy
    • in-place deployment / In-place deployment
    • blue-green deployment / Blue-green deployment
  • Distributed version control system (DVCS) / What is Git?
  • Docker client
    • authenticating, with ECR / To authenticate Docker client with ECR
  • Docker containers
    • about / Docker
    • images / Images
    • registry / Registry
    • containers / Containers
    • Docker engine, installing / Installation of Docker engine
    • executing, as non-root user / Run Docker as a non-root user
    • working / How to do it...
    • container, executing / Running a container
    • stopped container, starting / Starting the stopped container
    • name, assigning to container / Assigning a Name to a container
    • daemonized containers, creating / Creating daemonized containers
    • ports, exposing / Exposing ports of a container
    • persistent storage, managing / Managing persistent storage with Docker
    • data volume, adding / Adding a data volume
    • customer details, obtaining / Getting details of a container
    • Dockerfile, used for containerizing application / Containerize your application using Dockerfile
    • images, pushing to Dockerhub / Push the image to Dockerhub
  • Docker Image
    • tagging, with repository details / Tagging your Docker Image with the repository details
  • DownloadBundle / How to do it...

E

  • ECR credential helper
    • URL / To authenticate Docker client with ECR, Getting ready
  • Elasticsearch
    • creating / Creating Elasticsearch
    • URL / Creating Elasticsearch
    • CloudWatch logs streaming / Enabling the streaming of CloudWatch logs in Elasticsearch

F

  • features, K8s
    • portable / Introduction
    • extensible / Introduction
    • self-healing / Introduction

G

  • Git
    • about / What is Git?
    • benefits / Why Git over other VCSs?
    • features / Features of Git
    • implementation, with GitHub / Installation of Git and its implementation using GitHub
    • installation / Installation of Git and its implementation using GitHub
    • reference / Installation of Git and its implementation using GitHub
  • Git repository
    • migrating, to AWS CodeCommit / Migrating a Git repository to AWS CodeCommit, How to do it...      

H

  • helper files
    • contents / Understanding the inside content of helper files (BuildSpec.yml, Dockerfile, and CF template), How to do it...

I

  • IAM role
    • URL / Getting ready
  • images / Images
  • in-place deployment / In-place deployment
  • Infrastructure as Code (IaC) / Introduction
  • inventory file / File structure and syntax

J

  • Java application
    • building, with Maven / Building a Java application using Maven, How to do it...
    • Java, installing / Install Java and verify
    • Java, verifying / Install Java and verify
    • Apache Maven, installing / Install Apache Maven and verify
    • Apache Maven, verifying / Install Apache Maven and verify
  • Jenkins
    • integrating, with developer tools / Integrating Jenkins with all of the AWS developers tools, How to do it...
  • Jenkinsfile
    • using, in Jenkins pipeline 2.0 / Jenkins pipeline 2.0 (Pipeline as Code) using Jenkinsfile
    • about / Jenkins pipeline 2.0 (Pipeline as Code) using Jenkinsfile
    • declarative pipeline / Declarative pipeline
    • agent / Sections
    • stages / Sections
    • used, for deploying application / Application deployment using Jenkinsfile
    • URL / Getting ready
    • pipeline, creating in BlueOcean / Create a pipeline in the BlueOcean
    • cleaning up / Clean Up
    • used, for creating pipeline / Creating a Pipeline using  existing Jenkinsfile
    • used, for deploying microservices application / Deploying microservices applications in Kubernetes using Jenkinsfile
    • workflow / Workflow
  • Jenkins Pipeline
    • about / Jenkins pipeline 2.0 (Pipeline as Code) using Jenkinsfile
    • advantages / Jenkins pipeline 2.0 (Pipeline as Code) using Jenkinsfile
  • Jenkins pipeline 2.0
    • Jenkinsfile, using / Jenkins pipeline 2.0 (Pipeline as Code) using Jenkinsfile
  • Jenkins Server
    • setting up / Setting up the Jenkins Server and installing the required plugins, How to do it...

K

  • Kibana
    • configuring, to visualize data / Configuring Kibana to visualize your data
    • URL / Configuring Kibana to visualize your data
  • Kubernetes (K8s)
    • about / Introduction
    • features / Introduction
    • architecture / K8s architecture
    • master components / Master components
    • node components / Node components
    • sample application, deploying / Deploying a sample application on Kubernetes
    • AWS resources, using / Working with Kubernetes on AWS using AWS resources
    • microservices application, deploying with Jenkinsfile / Deploying microservices applications in Kubernetes using Jenkinsfile
  • Kubernetes Operations (Kops)
    • about / Deploying a multinode production-ready cluster on AWS using Kops
    • used, for deploying multinode production-ready cluster on AWS / Deploying a multinode production-ready cluster on AWS using Kops
    • bucket, creating / Creating bucket
    • DNS configuration / DNS configuration
    • cluster, creating / Creating a cluster
    • Kubernetes dashboard (UI) / Kubernetes dashboard (UI)
    • cleaning up / Clean up

L

  • launch configuration
    • creating / Creating the launch configuration and Auto Scaling group, How to do it...

M

  • master components, K8s
    • about / Master components
    • API server / Master components
    • scheduler / Master components
    • controller / Master components
    • etcd / Master components
  • Maven application
    • used, for building Java application / Building a Java application using Maven, How to do it...
    • building, with AWS CodeBuild console / Building a Maven application using AWS CodeBuild console, How it works...
  • microservice-based applications
    • characteristics / Understanding microservices and their deployment
    • deploying, in kubernetes with Jenkinsfile / Deploying microservices applications in Kubernetes using Jenkinsfile
  • microservices
    • about / Introduction, Understanding microservices and their deployment
    • designing / Designing microservices
    • designing guidelines / Designing microservices
    • deployment / Deployment of microservices
  • monolithic architecture / Introduction
  • multinode clusters
    • deploying, on AWS with Ansible playbook / Deploying multinode clusters on AWS using the Ansible playbook, How to do it...
  • multinode production-ready cluster
    • deploying, on AWS with Kops / Deploying a multinode production-ready cluster on AWS using Kops

N

  • node components
    • about / Node components
    • kubelet / Node components
    • pod / Node components
    • docker / Node components
    • kube-proxy / Node components
    • supervisord / Node components
    • fluentd / Node components
    • addons / Node components
  • NodeJS application
    • building, with yarn / Building a NodeJS application using yarn, How to do it..., How it works...
    • NodeJS, installing / Getting ready
    • NodeJS, verifying / Getting ready
    • Yarn, installing / Install Yarn and verify
    • Yarn, verifying / Install Yarn and verify
    • dependencies, installing / Installing dependencies
    • building, with AWS CodeBuild via Buildspec.yml / Building a sample NodeJS application using AWS CodeBuild via Buildspec.yml, Getting ready, How to do it...
  • notifications
    • sending, through SNS with Config / Sending notifications through SNS using Config and Lambda
    • sending, through SNS with Lambda / Sending notifications through SNS using Config and Lambda

P

  • PersistentVolumeClaim / Creating a persistent volume claim
  • pipeline
    • creating, with Jenkinsfile / Creating a Pipeline using  existing Jenkinsfile
  • playbook / File structure and syntax
  • plugins
    • installing / Setting up the Jenkins Server and installing the required plugins, How to do it...
  • Postfix Relay
    • URL / How to do it...
  • pricing / Pricing
  • production-ready web application infrastructure
    • creating, with CloudFormation / Creating a production-ready web application infrastructure using CloudFormation, How to do it...
  • Project Object Model (POM) / How to do it...

R

  • Remote Method Invocation (RMI) / Understanding microservices and their deployment
  • restrictions
    • applying / Applying security and restrictions, Getting ready, How to do it...
  • Revision control system (RCS) / Types of VCS

S

  • S3 Bucket
    • static application, deploying in EC2 instance with AWS CodeDeploy / Deploying a static application in an EC2 instance from the S3 Bucket using AWS CodeDeploy, How to do it..., How it works...
    • creating / Creating the S3 bucket and enabling versioning, How to do it...
    • versioning / Creating the S3 bucket and enabling versioning, How to do it...
  • security
    • applying / Applying security and restrictions, Getting ready, How to do it...
  • service / Understanding ECS and writing task definitions and services
  • service-oriented architecture (SOA) / Understanding microservices and their deployment
  • SSH users
    • AWS CodeCommit, setting up with AWS CLI / Setting up CodeCommit for SSH users using AWS CLI, How to do it...
  • static application
    • deploying, from S3 Bucket with AWS CodeDeploy / Deploying a static application in an EC2 instance from the S3 Bucket using AWS CodeDeploy, How to do it..., How it works...
    • Continuous Deployment, to AWS S3 with AWS CodePipeline / Continuous Deployment of static application to AWS S3 using AWS CodePipeline , How to do it...
  • Subversion (SVN) / Types of VCS

T

  • Terraform / Introduction

V

  • version control system (VCS)
    • about / What is VCS?
    • benefits / Why VCS ?
    • types / Types of VCS
    • local version control system / Types of VCS
    • centralized version control system / Types of VCS
    • distributed version control system / Types of VCS

W

  • web server infrastructure
    • architecture / Understanding the architecture and workflow
    • workflow / Understanding the architecture and workflow, How it works...
    • setting up, to host application / Setting up the infrastructure to host the application
    • ECS cluster, creating / Creating an ECS cluster
    • load balancer, creating / Creating a Load Balancer (Classic ELB)
    • Auto Scaling, registering with load balancer / Register Auto Scaling with Load Balancer
    • Amazon ECR, creating / Creating  an Amazon ECR

Y

  • yarn
    • used, for building NodeJS application / Building a NodeJS application using yarn, How to do it..., How it works...
    • installing / Install Yarn and verify
    • verifying / Install Yarn and verify
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime
Visually different images