簡體   English   中英

帶有 ASG 和 ELB (bitbucket) 的 AWS CD/CI 管道

[英]AWS CD/CI pipeline with ASG and ELB (bitbucket)

我必須首先聲明我對 AWS 比較陌生,但發現它非常有用。 讓我描述一下我的場景......

我目前擁有的

  • 自動縮放組 (ASG)
  • 彈性負載均衡器 (ELB)
  • 使用 CodeDeploy 和 Bitbucket 的 CD/CI 管道
  • Node/Express 應用程序在 EC2 實例上提供自定義 API
  • VPC 和 su.nets 運行良好
  • 帶有我的應用程序代碼的 AMI

我的問題

當 ASG 決定使用我的啟動模板和 AMI 擴展新的 EC2 實例時,它將使用 AMI 中的應用程序代碼。 但如果我在某個時候部署到 master,我的 AMI 將不會更新,但 ASG 中的實例會更新。 確保 ASG 生成的新實例運行最新代碼版本(master)的最佳方法是什么?

我最初的想法

我想在啟動配置中包含一個 bash 腳本,它將從 Bitbucket 中提取最新代碼並運行以下任何步驟以使我的應用程序運行(例如“npm install”、“npm run start”等)。 我相信有人有更優雅的解決方案,我很想聽聽一些建議。

對於任何來到這里的人,我確實解決了我的問題。 我一開始是對的。 一旦實例啟動並運行,啟動模板中的“用戶數據”字段是引導我的應用程序的好地方。 它基本上從遠程存儲庫克隆,然后執行任何必要的步驟來啟動應用程序。

例如,在 EC2 的啟動配置中

#cloud-boothook
#!/bin/bash
git clone myremoterepo.git
cd myremoterepo
npm install
npm run start

此外,如果您運行的是經典負載均衡器,當您的 ASG 擴展 EC2 實例時,CodeDeploy 將嘗試根據您在 S3 中的最新代碼存儲庫開始部署。 所以上述解決方案將是多余的。

感謝這篇文章。 但是,如果您分享了您的 bitbucket 管道 yml 的示例,這將對我有很大幫助,因為我有一個項目可以將其遷移到帶有網絡負載均衡器的 asg 基礎架構,而且我不知道如何配置代碼部署以集成它使用 s3 和 bitbucket。 一個指南可以幫助我配置從 bitbucket 部署負載均衡器的整個過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM