LoginSignup
0
0

More than 3 years have passed since last update.

CodePipelineでpush順にデプロイしたい

Posted at

CodePipelineでデプロイすることに取り組んできましたが、リリースがたまると不都合が発生してきたので、その課題と回避策をまとめてみます。

現在の流れ

Commit -> Build -> マニュアル承認 -> Deploy

  • CodePipelineは、main(master)ブランチをトリガーに動く
  • CodeBuildでDockerイメージを作って、latestタグを付与している
  • CodeBuildまで成功したら、マニュアル承認でデプロイを制御する
  • CodeDeployで実行するスクリプトはlatestのイメージを使っている

課題:ブランチが複数回更新されると、更新順通りの最新(latest)がデプロイできない

  • 1回目の更新で動くCodePipelineでデプロイのマニュアル承認前に、2回目のブランチ更新が来ると
  • 2回目の更新に連動して、CodeBuildが動くので、latestイメージが更新される(ここが問題)
  • この状態で、1回目のマニュアル承認すると、latestがデプロイされるので、1回目の更新に関するデプロイができない

回避策

Commit -> マニュアル承認 -> Build -> Deploy

  • CodeCommitの次に承認を入れインバウンド実行を利用して、CodeBuildをシーケンシャルにさせることでlatestを保護し順番通りのデプロイを可能にする

image.png

考察

そもそも、「デプロイスクリプト、方針、設計がよろしくない」部分もありますが、運用に入るとすぐに変更できない都合もあり、回避策の一つとして参考になれば幸いです

0
0
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
0
0