AWS CI/CD CodeDeployの実行時間の改善


AWS CodePipeline、CodeCommit、CodeBuild、CodeDeployを使用したLaravelとVueのモノリシックアプリケーションのEC2へのデプロイメント最適化について記述します。

BlockTrafficの遅延問題

ターゲットグループのヘルスチェック設定が原因でした。

解決策

  • タイムアウトと間隔を最小値に調整
  • ALBの接続ドレイニング値を300秒から30秒に変更

これにより、問題を5分以上から約30秒に短縮しました。

Install/AfterInstallの処理時間

CodeBuildで生成されたnode_modulesvendorディレクトリのコピー処理が時間を消費していました。

appspec.ymlの設定を更新してファイルの上書きを試みたところ、既存ファイルとの競合エラーが発生しました。

解決策

before_installフェーズで既存のvendornode_modulesを削除するシェルスクリプトの実行を追加しました。