会員登録すると
学習することができます。
会員登録する(無料)
学習することができます。
登録済みの方はこちら
ログイン
学ぶ目的
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 の設定名とフック、自動のロールバック
- コンテナのイメージの管理とデプロイ
質問
まだ質問は投稿されていません。
質問投稿
ログイン後に質問の投稿ができます。
#1
未完了
認証と認可 ― Cognitoのユーザープールとアイデンティティプール、APIの守り方
#2
未完了
暗号化と秘密情報 ― KMSのエンベロープ暗号化、Secrets ManagerとParameter Store
#3
未完了
AIサービスを安全に組み込む ― アクセスの管理、入力と出力の制御、エージェントとログ
#4
未完了
デプロイの準備とテスト ― SAM・CloudFormation・CDK、エイリアスと環境ごとの設定
#5
未完了
CI/CDとデプロイ方式 ― CodePipeline・CodeBuild・CodeDeployとカナリア・ロールバック
#6
未完了
監視とトラブルシューティング ― CloudWatchのログ・メトリクス・アラームとX-Rayのトレース
#7
未完了
最適化 ― キャッシュ、再試行と指数バックオフ、Lambdaのメモリと同時実行
#8
未完了