7
3

More than 1 year has passed since last update.

Codedeploy の 概要や appspec.yaml

Posted at

EC2/オンプレミスへのデプロイ

概要

  • CodeDeploy Agentが導入されたEC2またはオンプレミスインスタンスが必要。
  • デプロイタイプ:インプレース / Blue/Green ※オンプレミスはインプレースのみ。
  • デプロイグループに、Auto Scaling グループ を指定することで、スケールアウト時に最新のリビジョンが自動でデプロイされる。
  • ライフサイクルイベントへHookを指定し、スクリプトを実行することが可能。

リビジョンの構成

  • フォルダ構成

    • appspec.yaml
    • ビルド済みの成果物
    • その他の配布物
    • Hookスクリプト
  • リビジョンタイプ

    • S3
    • GitHub

appspec.yaml(EC2)

セクション 説明
version 現在は 0.0 のみ
OS linux もしくは Windows
files アプリケーションや設定ファイルをディレクトリへコピー
permission 特定のディレクトリとファイルのアクセス許可を設定
hooks インストール前後の処理。アプリケーションの処理。アプリケーションの開始。デプロイ成功の確認。
version: 0.0
os: operating-system-name
files:
  source-destination-files-mappings
permissions:
  permissions-specifications
hooks:
  deployment-lifecycle-event-mappings

hooks(EC2)

  • インプレースデプロイとBlue/Green デプロイによりhookを実行可能な箇所が異なる。

Lambda へのデプロイ

概要

  • Lambdaの関数重み付けエイリアスを利用したトラフィックのシフト
  • カナリアデプロイ/リニアデプロイを選択。
  • Validation HookでLambda関数を実行してテストすることが可能。

appspec.yaml(Lambda)

セクション 説明
version 現在は 0.0 のみ
resources Lambda関数に関する情報を指定
hooks hook用Lambdaの指定
version: 0.0
resources: 
  lambda-function-specifications
hooks: 
  deployment-lifecycle-event-mappings

hooks(Lambda)

  • BeforeAllowTraffic および AfterAllowTraffic のみ。

ECS へのデプロイ

概要

  • Greenタスクをプロビジョニングし、ロードバランサーのトラフィックで切り替える。
  • 検証Hookによって各ステージのデプロイメントでテストを実行することが可能。

appspec.yaml(ECS)

セクション 説明
version 現在は 0.0 のみ
resources デプロイする Amazon ECS アプリケーションに関する情報を指定する
hooks hook用Lambdaの指定
version: 0.0
resources: 
  ecs-service-specifications
hooks: 
  deployment-lifecycle-event-mappings

hooks(ECS)

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3