会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

CI/CDとデプロイ方式 ― CodePipeline・CodeBuild・CodeDeployとカナリア・ロールバック

目安学習時間 25分

課題

全問正解でレクチャー完了です。

【問題1】

Lambda の新しい版を、まず1割の利用者にだけ流し、5分たって問題がなければ全員に切り替えたいとき、CodeDeploy の設定として適切なものはどれですか。

[選択肢]

【問題2】

Lambda のデプロイで、新しい版に流れを切り替える前に、確かめのテストを動かしたいとき、使うフックはどれですか。

[選択肢]
会員登録すると
学習することができます。
会員登録する(無料)

学ぶ目的

CI/CD の流れ

  • CodePipeline … ソース、ビルド、テスト、デプロイの段を順に進める。リポジトリへの変更をきっかけに動き、段の間に人の承認を入れられる
  • CodeBuild … ビルドとテストを動かす。手順は buildspec.yml の install・pre_build・build・post_build の段に書く
  • CodeDeploy … EC2、オンプレミスのサーバー、Lambda、ECS へ新しい版を届ける。手順やフックは appspec.yml に書く

デプロイの方式

  • 一斉(all at once) … 全部を一度に切り替える。速いが、失敗すると全部に影響する
  • ローリング … 少しずつ順に切り替える
  • カナリア … まず一部(たとえば10%)に流し、問題がなければ残りを切り替える
  • 線形 … 決まった割合ずつ、決まった間隔で増やす
  • ブルー/グリーン … 新しい環境を別に用意し、確かめてから流れを切り替える。戻すときは流れを元に戻すだけ

CodeDeploy の Lambda 向けの設定には、CodeDeployDefault.LambdaCanary10Percent5Minutes(10% を流し、5分後に残りの90%)や LambdaLinear10PercentEvery1Minute(1分ごとに10%ずつ)があります。SAM なら、関数の AutoPublishAlias と DeploymentPreference で同じことが書けます。

フックとロールバック

Lambda のデプロイでは、流れを切り替える前と後に BeforeAllowTraffic と AfterAllowTraffic のフックで確かめの関数を動かせます。デプロイが失敗したとき、または CloudWatch のアラームが鳴ったときに、自動で前の版に戻すように設定できます。

コンテナ

コンテナのイメージは Amazon ECR に置き、版ごとのタグを付け、ライフサイクルのポリシーで古いイメージを消します。ECS へのデプロイには、ローリング更新やブルー/グリーンがあります。

このレクチャーで学ぶこと

  • CodePipeline・CodeBuild・CodeDeploy の役割
  • 一斉・ローリング・カナリア・線形・ブルー/グリーンの違い
  • CodeDeploy の設定名とフック、自動のロールバック
  • コンテナのイメージの管理とデプロイ

質問

まだ質問は投稿されていません。

質問投稿

ログイン後に質問の投稿ができます。