AWS CodeDeploy

更新 發佈閱讀 6 分鐘

AWS CodeDeploy 是 AWS 提供的全受管 「自動化程式碼部署服務」

它的核心任務很簡單:「把你的應用程式(程式碼),自動安裝並啟動到伺服器(EC2、地端)或無伺服器環境(Lambda、ECS)上。」

它是 AWS CI/CD 工具鏈

CodeCommit → CodeBuild → CodeDeploy → CodePipeline

中的「部署」環節。

以下是 CodeDeploy 的重點整理,特別針對考試與實務操作:


1. 核心功能與支援平台

CodeDeploy 的最大特色是通用性,它支援部署到以下三種運算環境:

  1. EC2 / 地端伺服器 (On-Premises):需要在機器上安裝 CodeDeploy Agent。可以更新現有的實例,或配合 Auto Scaling Group 自動部署新機器。
  2. AWS Lambda:負責管理流量轉移(Traffic Shifting),例如將 10% 流量導向新版本函式。
  3. Amazon ECS (容器):負責更新容器定義,並執行藍綠部署 (Blue/Green) 來切換流量。

2. 靈魂核心:AppSpec File (appspec.yml)

這是 CodeDeploy 最重要的設定檔。如果沒有這個檔案,CodeDeploy 不知道要做什麼。

  • 位置:必須放在程式碼儲存庫(如 GitHub 或 S3 zip 檔)的根目錄。
  • 格式:YAML 或 JSON。
  • 內容:定義了兩個重點:Files:把哪些檔案從來源複製到伺服器的哪個路徑。Hooks (生命週期):在部署的各個階段要執行什麼 Shell Script(例如:安裝相依套件、重啟 Nginx)。

3. 部署策略 (Deployment Strategies)

這是考試最常考的觀念,區分 In-place 與 Blue/Green

A. 就地部署 (In-place Deployment)

  • 適用:EC2、地端伺服器。
  • 運作:停止伺服器上的應用程式 →→ 更新程式碼 →→ 重新啟動應用程式。
  • 缺點:會有短暫的服務中斷(Downtime),除非你有設 Load Balancer 並且一次只更新部分機器。
  • 回滾 (Rollback):需要重新部署舊版本,速度較慢。

B. 藍綠部署 (Blue/Green Deployment)

  • 適用:EC2、Lambda、ECS。
  • 運作:Blue (舊環境):正在服務使用者的環境。Green (新環境):CodeDeploy 建立一套全新的環境(或新版本 Lambda)。等待新環境測試通過後,切換 Load Balancer 的流量指向 Green。
  • 優點:零停機時間,且如果有問題可以瞬間切回舊環境(快速回滾)。

4. 生命週期鉤子 (Lifecycle Event Hooks)

在 appspec.yml 中,你可以控制部署流程的順序。常見的順序如下(EC2 為例):

  1. ApplicationStop:優雅地停止目前的應用程式。
  2. DownloadBundle:下載新程式碼(系統自動執行)。
  3. BeforeInstall:備份舊檔、清理目錄。
  4. Install:複製檔案(系統自動執行)。
  5. AfterInstall:修改檔案權限、配置設定檔。
  6. ApplicationStart:啟動服務(如 service httpd start)。
  7. ValidateService:最重要的步驟!執行測試腳本(如 curl localhost)確保服務真的活著。如果這步失敗,CodeDeploy 會判定部署失敗並自動回滾。

5. 比較:CodeDeploy vs. CloudFormation

這兩者很容易混淆,因為它們都在「建立/修改」東西。

特性AWS CloudFormationAWS CodeDeploy類別Infrastructure as Code (IaC)Application Deployment主要功能建立 基礎設施 (VPC, EC2, RDS, S3)更新 應用程式碼 (Java, Python, Node.js)比喻營造廠 (把房子蓋好)搬家公司/裝潢 (把家具搬進去、擺好)運作層級AWS 資源層級作業系統 / 程式碼層級

6. 考試關鍵字 (Keywords)

  • appspec.yml (看到這個必選 CodeDeploy)。
  • Blue/Green Deployment for EC2/Lambda/ECS (最安全的部署方式)。
  • Minimize downtime (減少停機時間 →→ 選 Blue/Green)。
  • Traffic Shifting / Canary / Linear (針對 Lambda 的漸進式部署)。
  • CodeDeploy Agent (部署到 EC2 或 On-prem 必須安裝的東西)。
留言
avatar-img
郝信華 iPAS AI應用規劃師 學習筆記
44會員
572內容數
現職 : 富邦建設資訊副理 證照:經濟部 iPAS AI應用規劃師 初級+中級(數據分析) AWS AIF-C01 AWS CLF-C02 Microsoft AI-900 其他:富邦美術館志工
你可能也想看
Thumbnail
由於客戶需要透過  Cost Explorer 來監控 ECS Fargate tasks 成本,ECS 設置需要的 Tag 標籤, AWS Billing (Cost allocation tags)啟用 Tag 後,還是沒出現。 原因是,ECS Cluster 本生沒有產生費用,故才未
Thumbnail
由於客戶需要透過  Cost Explorer 來監控 ECS Fargate tasks 成本,ECS 設置需要的 Tag 標籤, AWS Billing (Cost allocation tags)啟用 Tag 後,還是沒出現。 原因是,ECS Cluster 本生沒有產生費用,故才未
Thumbnail
如何查詢 CloudTrail Event history 使用 Event name 篩選 RequestSpotFleet CloudTrail Event history 使用 Resource name 篩選,該 Request ID (提提知道ID) 使用上述查詢,目的是為了
Thumbnail
如何查詢 CloudTrail Event history 使用 Event name 篩選 RequestSpotFleet CloudTrail Event history 使用 Resource name 篩選,該 Request ID (提提知道ID) 使用上述查詢,目的是為了
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
以下是限制 S3 bucket 訪問 HTTPS 的方法 測試 S3 存儲桶訪問 S3 bucket 通常允許 HTTP 和 HTTPS 訪問 AWS CLI 預設通常使用 HTTPS 向 AWS 服務發送請求 https://docs.aws.amazon.com/zh_tw/cli/l
Thumbnail
以下是限制 S3 bucket 訪問 HTTPS 的方法 測試 S3 存儲桶訪問 S3 bucket 通常允許 HTTP 和 HTTPS 訪問 AWS CLI 預設通常使用 HTTPS 向 AWS 服務發送請求 https://docs.aws.amazon.com/zh_tw/cli/l
Thumbnail
有這一篇原因是工作上,建立 OU 時,會自動新增額外的 FullAWSAccess 規則,但原本就會有預設Root OU繼承的FullAWSAccess,等於會有兩組一樣的規則,故所以詢問了AWS Support。 先謝謝 AWS 技術支援工程師 George 細心說明~ SCP很重要的
Thumbnail
有這一篇原因是工作上,建立 OU 時,會自動新增額外的 FullAWSAccess 規則,但原本就會有預設Root OU繼承的FullAWSAccess,等於會有兩組一樣的規則,故所以詢問了AWS Support。 先謝謝 AWS 技術支援工程師 George 細心說明~ SCP很重要的
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
Fleet Manager (AWS Systems Manager 的功能) 是統一的使用者界面 (UI) 體驗,可助您遠端管理在 AWS 或內部部署上執行的受管節點 利用 Fleet Manager,您可以從單一主控台檢視整個伺服器機群的運作狀態和效能狀態 Fleet Manager 有哪些
Thumbnail
Fleet Manager (AWS Systems Manager 的功能) 是統一的使用者界面 (UI) 體驗,可助您遠端管理在 AWS 或內部部署上執行的受管節點 利用 Fleet Manager,您可以從單一主控台檢視整個伺服器機群的運作狀態和效能狀態 Fleet Manager 有哪些
Thumbnail
每個 AWS 帳戶所對應的Availability Zones會有所不同,查看方式可以至EC2 Console 中的EC2 Dashboard。
Thumbnail
每個 AWS 帳戶所對應的Availability Zones會有所不同,查看方式可以至EC2 Console 中的EC2 Dashboard。
Thumbnail
可以分析源代碼並檢查在遷移到 AWS Graviton 時需要更改的過時運行library 優化 aws 成本的方法之一是遷移到並採用具有高性價比的AWS Graviton 推薦使用AWS Graviton,從可持續性的角度來看,它有很好的表現 但有需要注意的地方: 不適用於所有操作系統和實
Thumbnail
可以分析源代碼並檢查在遷移到 AWS Graviton 時需要更改的過時運行library 優化 aws 成本的方法之一是遷移到並採用具有高性價比的AWS Graviton 推薦使用AWS Graviton,從可持續性的角度來看,它有很好的表現 但有需要注意的地方: 不適用於所有操作系統和實
Thumbnail
1.首先 這是 “AWS 上的工作負載發現” 的解決方案,我嘗試了一下,覺得很方便,所以介紹一下~ https://aws.amazon.com/tw/solutions/implementations/workload-discovery-on-aws/ 2. 部署 官方提供 CloudF
Thumbnail
1.首先 這是 “AWS 上的工作負載發現” 的解決方案,我嘗試了一下,覺得很方便,所以介紹一下~ https://aws.amazon.com/tw/solutions/implementations/workload-discovery-on-aws/ 2. 部署 官方提供 CloudF
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News