Topics 58
Amazon API Gateway Amazon Athena Amazon CloudFront & Content Delivery Amazon DynamoDB Amazon ECS (Elastic Container Service) Amazon EFS (Elastic File System) Amazon EKS (Elastic Kubernetes Service) Amazon ElastiCache (Redis & Memcached) Amazon EventBridge Amazon Kinesis & Data Streaming Amazon QuickSight & Business Intelligence Amazon Redshift & Data Warehousing Amazon Route 53 & DNS Management Amazon SageMaker & Machine Learning on AWS Amazon SNS (Simple Notification Service) Amazon SQS (Simple Queue Service) Auto Scaling Groups AWS AI Services (Rekognition, Polly, Lex & Comprehend) AWS Backup & Disaster Recovery AWS Batch AWS Certificate Manager (ACM) AWS Certification Paths & Career Roadmap AWS CLI & SDKs AWS CloudTrail & Auditing AWS CodePipeline, CodeBuild & CodeDeploy (CI/CD) AWS Config AWS Cost Management & Billing AWS Database Migration Service & Application Migration AWS Direct Connect & Hybrid Connectivity AWS Elastic Beanstalk AWS Fargate AWS Free Tier & Account Setup AWS Global Infrastructure (Regions, AZs & Edge Locations) AWS Glue & ETL AWS KMS & Data Encryption AWS Organizations & Multi Account Strategy AWS Outposts & Hybrid Cloud AWS Secrets Manager & Parameter Store AWS Security Hub & GuardDuty AWS Serverless Application Model (SAM) AWS Step Functions AWS Storage Gateway AWS Systems Manager AWS Trusted Advisor AWS WAF & Shield Core Services Overview EC2 & Compute Elastic Container Registry (ECR) Elastic Load Balancing (ALB, NLB & CLB) IaC (CloudFormation) IAM Lambda & Serverless Monitoring (CloudWatch) RDS & Databases S3 & Storage Tagging Strategies & Resource Management VPC & Networking Well-Architected Framework

AWS CodePipeline, CodeBuild & CodeDeploy (CI/CD)

7 questions found

What are AWS CodePipeline, CodeBuild, and CodeDeploy, and how do they work together to form a CI/CD pipeline?

Beginner
AWS CodePipeline orchestrates the overall release process by defining a series of stages such as source, build, test, and deploy, CodeBuild compiles source code, runs tests, and produces deployable build artifacts, and CodeDeploy automates the actual deployment of those artifacts to compute targets like EC2 instances, ECS services, or Lambda functions, together forming a complete continuous integration and continuous delivery pipeline from code commit to production deployment.
aws codepipeline create-pipeline --pipeline file://pipeline-definition.json
Real-world example A development team sets up a pipeline where every code push to their main branch automatically triggers CodePipeline, which runs CodeBuild to compile and test the code, then uses CodeDeploy to roll the new version out to production servers.

Common follow-ups: How does this trio compare to using a third party CI/CD tool like Jenkins or GitHub Actions?;Can CodePipeline integrate with source repositories outside of AWS, like GitHub?

AWS CLI & SDKs;Elastic Container Registry (ECR)

What is a buildspec file in AWS CodeBuild, and what does it control?

Beginner
A buildspec file is a YAML formatted configuration file that tells CodeBuild exactly what commands to run during each phase of the build process, including installing dependencies, running tests, compiling code, and specifying which files should be included in the final build artifact, giving you complete control over your build process as code stored alongside your application.
version: 0.2
phases:
  install:
    commands:
      - npm install
  build:
    commands:
      - npm run build
artifacts:
  files:
    - '**/*'
Real-world example A web development team defines a buildspec file that installs npm dependencies, runs the project's test suite, and then builds a production optimized bundle, ensuring every build in CodeBuild follows exactly the same repeatable steps.

Common follow-ups: What are the different phases available in a buildspec file?;Can a buildspec file be embedded directly in CodePipeline instead of using a separate file?

AWS CLI & SDKs;Amazon ECS (Elastic Container Service)

What deployment strategies does AWS CodeDeploy support, such as in place and blue green deployments?

Intermediate
CodeDeploy supports in place deployments, where the new application version is installed directly onto existing instances one batch at a time, briefly taking each batch out of service during the update, and blue green deployments, where an entirely new set of instances is provisioned with the new version, traffic is shifted over once the new environment is verified healthy, and the old instances are terminated afterward, offering safer rollback capability at the cost of temporarily running duplicate infrastructure.
aws deploy create-deployment --application-name my-app --deployment-group-name my-deployment-group --deployment-config-name CodeDeployDefault.AllAtOnce
Real-world example An online banking application uses blue green deployments through CodeDeploy for its critical transaction processing service, ensuring that if any issue is detected with the new version, traffic can be instantly shifted back to the still running old environment.

Common follow-ups: What is the difference between AllAtOnce, HalfAtATime, and OneAtATime deployment configurations?;How does CodeDeploy verify that a new deployment is healthy before proceeding?

Elastic Load Balancing (ALB NLB & CLB);Auto Scaling Groups

How do CodeDeploy lifecycle hooks defined in an appspec file control the deployment process?

Intermediate
An appspec file defines a series of lifecycle event hooks, such as BeforeInstall, AfterInstall, ApplicationStart, and ValidateService, each letting you run custom scripts at specific points during the deployment process, such as stopping a running application before installing new files, or running automated health check validation after the new version starts, giving you fine grained control over exactly how a deployment proceeds and how its success is verified.
version: 0.0
hooks:
  BeforeInstall:
    - location: scripts/stop_server.sh
  AfterInstall:
    - location: scripts/start_server.sh
  ValidateService:
    - location: scripts/health_check.sh
Real-world example A deployment pipeline uses a ValidateService hook that runs an automated health check script after each deployment, automatically triggering a rollback through CodeDeploy if the new version fails to respond correctly within a defined timeout.

Common follow-ups: What happens if a lifecycle hook script fails during deployment?;Can appspec files be used for both EC2 and Lambda deployments?

Monitoring (CloudWatch);Lambda & Serverless

How does CodePipeline support manual approval stages, and why are they useful in a CI/CD process?

Intermediate
CodePipeline supports adding a manual approval action within a pipeline stage, which pauses the pipeline's execution until a designated person or team explicitly approves or rejects the release, which is commonly used before deploying to a production environment, giving a human the opportunity to review test results, release notes, or perform final checks before changes reach real customers, combining automation speed with important human oversight.
aws codepipeline put-approval-result --pipeline-name my-pipeline --stage-name Approval --action-name ManualApproval --result 'summary=Approved,status=Approved' --token abc123
Real-world example A company's deployment pipeline pauses after successfully deploying to a staging environment, requiring a release manager to manually review and approve the change before CodePipeline proceeds to deploy the exact same build to production.

Common follow-ups: How can you set up SNS notifications when a pipeline reaches a manual approval stage?;Can approval permissions be restricted to specific IAM users or roles?

IAM;Amazon SNS (Simple Notification Service)

How can CodeDeploy support canary deployments, and how does this differ from a standard blue green deployment?

Advanced
A canary deployment gradually shifts a small percentage of traffic to the new version first, such as ten percent, monitors that subset closely for errors or performance issues over a defined interval, and only if that canary phase succeeds does it shift the remaining traffic to the new version, allowing you to detect problems affecting only a small fraction of real users before a full rollout, which offers a more gradual and cautious approach than an all at once blue green traffic shift.
aws deploy create-deployment-config --deployment-config-name Canary10Percent5Minutes --traffic-routing-config type=TimeBasedCanary,timeBasedCanary='{"canaryPercentage":10,"canaryInterval":5}'
Real-world example A high traffic e commerce platform uses a canary deployment strategy for its checkout service, routing just ten percent of live traffic to a new version for five minutes and automatically rolling back if error rates increase, before shifting the remaining ninety percent of traffic.

Common follow-ups: How does CodeDeploy automatically decide to roll back during a canary deployment?;What CloudWatch alarms are commonly used to gate a canary deployment's progression?

Monitoring (CloudWatch);Amazon ECS (Elastic Container Service)

How can you design a multi account CI/CD pipeline using CodePipeline that deploys the exact same build to separate development, staging, and production AWS accounts?

Advanced
A multi account pipeline typically builds the application artifact once in a central tooling account, then uses cross account IAM roles to grant CodePipeline and CodeDeploy permission to deploy that exact same artifact into separate development, staging, and production accounts, ensuring the identical, already tested build is what actually reaches production, rather than risking subtle differences from rebuilding the application separately for each environment.
aws sts assume-role --role-arn arn:aws:iam::PRODUCTION_ACCOUNT_ID:role/CrossAccountDeployRole --role-session-name pipeline-deploy
Real-world example A financial services company builds its application artifact once in a shared tooling account, then uses cross account roles configured in CodePipeline to deploy that identical artifact first to a staging account for validation and finally to a completely separate production account, guaranteeing consistency across environments.

Common follow-ups: How do you configure the necessary cross account trust relationships for this setup?;What are the security benefits of separating production into its own dedicated AWS account?

AWS Organizations & Multi Account Strategy;IAM