はじめに
実務で、AWSに触れる時イベントベースとポーリングベースのCodePipelineの違いがよくわからなかったので、まとめていきます。
ポーリングベースとは
Codepipelineの設定。定期的にソースリポジトリをチェックして変更を検出してくれる。
イベントベースとは
Codepipelineの設定。Amazon EventBridgeを使用して、ソースリポジトリの変更を即時に検出してくれる。
どっちが推奨されているのか
AWSでは、イベントベースのCodepipelineの設定が推奨されている。ポーリングベースのCodepipelineは以下の理由でAWS公式も推奨をしていない。
AWS CodePipelineチームは、2023年5月25日より、非アクティブなパイプラインでのポーリングを無効にします。非アクティブなパイプラインとは、過去30日間にパイプラインの実行が開始されていないパイプラインと定義されます。Amazon EventBridgeルール、AWS CodeStar接続、またはウェブフックのみを使用してパイプラインをトリガーする非アクティブなパイプラインは影響を受けません。また、アクティブなパイプラインも影響を受けません。
30日以上利用されていないポーリングベースのパイプラインを無効化してしまう。
CICDパイプラインの意義からどっちがいいか考える
そもそもCICDパイプラインの存在意義とはなんなのか?
同じ品質で "早く" "安全に" "効率的に" 届けることです。
人間が手動でデプロイすると、何か間違えることもあるし、そもそも人間が足りてないとデプロイすらできないですよね笑
その前提を踏まえると、何かのイベントが発生したら自動で動くように設定するイベントベースが好まれるかと思います。
おわりに
Codepipelineのイベントベースとポーリングベースの違いをまとめてみました。
スピードが勝負のIT業界ならなおさら、イベントベースで使っていきたいですし、承認や許可がいくつも大断してとらないといけない場合は、なおさらデプロイのスピードが落ちてきそうです。
とはいえ、どちらも良し悪しがあると思うので開発の現場に合わせて使っていきたいですね。
参考にしたサイト