AWS for Backend Developers (EC2, S3, RDS, Lambda) · 강의

EC2/Lambda용 CodeDeploy

EC2 인스턴스와 Lambda 함수에 대한 코드 배포를 자동화하고 중단 시간을 최소화하며 롤백 기능을 보장합니다.

레슨 2/411개 단계

EC2/Lambda용 CodeDeploy은(는) CoddyKit의 무료 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS for Backend Developers (EC2, S3, RDS, Lambda) 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

Automating Deployments with CodeDeploy

Deploying applications can be tricky. Manual steps are error-prone and can cause downtime. AWS CodeDeploy automates this process for you!

  • It helps deploy applications to EC2 instances, AWS Lambda, and on-premises servers.
  • It minimizes downtime during deployments.
  • It provides options for easy rollbacks if something goes wrong.

CodeDeploy's Key Parts

CodeDeploy organizes your deployments using a few core components:

  • Application: A unique name to identify the application you want to deploy.
  • Deployment Group: A set of individual instances or a specific Lambda function to deploy to.
  • Revision: The source code, web pages, executables, and scripts you want to deploy, packaged into a file (e.g., zip, tar).

Deployment Strategies: In-place vs. Blue/Green

CodeDeploy supports different strategies to update your application:

  • In-place Deployment: Stops the application on each instance, deploys the new version, and restarts it. This might cause brief downtime.
  • Blue/Green Deployment: A new set of instances (Green) is provisioned with the new version. Traffic is then shifted from the old instances (Blue) to the Green ones. This minimizes downtime and risk.

Deploying to EC2 Instances

For EC2 deployments, CodeDeploy needs an agent installed on your instances. This agent handles the deployment tasks.

You define how the deployment happens using an appspec.yml file. This file tells CodeDeploy what files to copy, where to put them, and what scripts to run.

EC2 appspec.yml Structure

Here's a simple example of an appspec.yml for an EC2 deployment. It tells CodeDeploy to copy files and run a script.

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html
hooks:
  AfterInstall:
    - location: scripts/start_server.sh
      timeout: 300
      runas: root

EC2 Deployment Lifecycle Hooks

Hooks are scripts that CodeDeploy runs at specific points during a deployment to an EC2 instance. They allow you to customize the deployment process:

  • BeforeInstall: Tasks before files are copied.
  • AfterInstall: Tasks after files are copied, like dependency installation.
  • ApplicationStart: Start your application service.
  • ValidateService: Check if the deployed application is working correctly.

Deploying Lambda Functions

CodeDeploy also simplifies deployments for AWS Lambda functions. It allows you to safely shift traffic between different versions of your function.

This is especially useful for canary deployments or gradual rollouts, ensuring your new function works as expected before taking all traffic.

Lambda appspec.yml Structure

For Lambda, the appspec.yml focuses on defining the function and how traffic should be shifted. Here's a basic example:

version: 0.0
resources:
  - TargetService:
      Type: AWS::Lambda::Function
      Properties:
        Name: "my-lambda-function"
        Alias: "live"
        CurrentVersion: "my-lambda-function-old-version"
        TargetVersion: "my-lambda-function-new-version"
hooks:
  - BeforeAllowTraffic: "LambdaValidationFunction"

Handling Failures and Rollbacks

CodeDeploy automatically monitors deployments. If a deployment fails (e.g., a hook script exits with an error), it can automatically roll back to the previous stable version.

  • You can also manually initiate a rollback.
  • It integrates with CloudWatch to monitor deployment health and trigger alarms.

CodeDeploy Concepts Check

Which CodeDeploy deployment strategy involves provisioning a completely new set of instances for the new application version, then shifting traffic?

CodeDeploy Recap

Great job! You've learned about AWS CodeDeploy, a powerful service for automating application deployments.

  • It manages deployments to EC2, Lambda, and on-premises servers.
  • You can choose between in-place or blue/green strategies.
  • The appspec.yml file defines deployment steps and hooks.
  • It supports automatic rollbacks and integrates with monitoring.

CodeDeploy helps ensure your applications are updated reliably and with minimal disruption.

무료로 시작

AI 튜터와 함께 AWS for Backend Developers (EC2, S3, RDS, Lambda)을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
12
레슨
48

자주 묻는 질문

“EC2/Lambda용 CodeDeploy” 강의는 무료인가요?

네 — “EC2/Lambda용 CodeDeploy” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의 전체를 잠금 해제할 수 있습니다. AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에는 총 4개의 강의가 포함되어 있습니다.

“EC2/Lambda용 CodeDeploy”에서 뭘 배우나요?

EC2 인스턴스와 Lambda 함수에 대한 코드 배포를 자동화하고 중단 시간을 최소화하며 롤백 기능을 보장합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS for Backend Developers (EC2, S3, RDS, Lambda)을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS for Backend Developers (EC2, S3, RDS, Lambda)을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS for Backend Developers (EC2, S3, RDS, Lambda)은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“EC2/Lambda용 CodeDeploy” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS for Backend Developers (EC2, S3, RDS, Lambda) 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. CodeCommit과 CodeBuild 기초
  2. EC2/Lambda용 CodeDeploy
  3. 서버리스 애플리케이션 모델(SAM)
  4. CloudFormation을 활용한 코드형 인프라
← AWS for Backend Developers (EC2, S3, RDS, Lambda)(으)로 돌아가기