ecstop:我的 CLI 工具,可輕鬆停止 ECS 資源
介紹
2024 年 12 月 20 日,我開發並發布了一個名為 ecstop 的 CLI 工具,它「快速批量停止 ECS 資源」。
https://github.com/t-kikuc/ecstop
名稱 ecstop 是 ECS Stop 的組合。我將其發音為“ee-c-stop”。
在這篇文章中,我將介紹 ecstop 的概述、理念和未來前景。
3行總結
- ecstop 可以快速批次停止 ECS 服務、任務和容器實例(EC2)。
- 主要目的是輕鬆降低開發環境的成本。
- brew install t-kikuc/tap/ecstop 後,無需任何設定檔即可立即使用。
發展背景
我經常在測試 ECS 本身或開發/測試 PipeCD 時建立 ECS 資源。
由於 ECS 對運行任務和容器實例收費,因此我想停止未使用的任務和容器實例。
由於是為了測試,我不想刪除叢集或服務。他們是免費的。
但是,由於我創建了很多資源,從AWS控制台一一停止它們很麻煩。
-
要從控制台停止某個服務,您需要進入 ECS 控制台,選擇該服務並“更新”,將每個服務的任務數設為 0 並“確認更新”。
IaC 和部署工具是為生產使用而設計的,需要仔細更改配置文件,不適合「快速停止多個資源」。
我一直使用shell腳本/Go來批次阻止它們,但我經常忘記如何呼叫它們。
因此,我決定製作一個合適的 CLI 工具。
安裝
您可以使用以下指令安裝 ecstop(自製):
$ brew install t-kikuc/tap/ecstop
要啟用自動完成功能,請參閱此處。
特徵
有關選項的詳細信息,請參閱 README。
1. 零規模服務
$ ecstop services --cluster xxx
這會將 xxx 叢集中所有服務的desiredCount設為0。這也會自動停止連結到服務的任務。
2. 停止任務
$ ecstop tasks --cluster xxx --standalone
--standalone 標誌停止未連結到服務的任務。
這適用於群組前綴不是 service 的任務:.
要停止與服務連結的任務,請使用 ecstop 服務,因為即使在 ecstop 任務停止後,服務也可以啟動新任務。
3.停止容器執行個體(EC2)
$ ecstop instances --cluster xxx
這將停止(≠終止)連結到 xxx 叢集的所有容器實例。
4.執行以上三合一命令
$ ecstop all --cluster xxx
此指令相當於:
$ brew install t-kikuc/tap/ecstop
其他有用的標誌
- --all-cluster:取代 --cluster xxx,對區域中的所有 ECS 叢集執行停止操作。
- --profile yyy:您可以指定AWS設定檔。
- --region zzz: 可以指定AWS區域。
哲學
1. 不可刪除
ecstop 不會刪除不必要的 ECR 影像或任務定義。
雖然任務和容器實例(EC2)的運作成本很高,但ECR鏡像相對便宜,而且任務定義是免費的,所以我忽略了它們。服務和叢集本身也是免費的,因此不會被刪除。
因此,我沒有在工具名稱中包含“clean”或“delete”。
如果“我想刪除它,因為它沒有被使用並且礙眼”,從 AWS 控制台選擇多個項目並在人工判斷後刪除它們會更容易。
此外,為了清理 ECR 影像,最好使用 fujiwara-san 創建的名為 ecrm 的工具。
https://github.com/fujiwara/ecrm
2. 專門針對大量操作
我已最小化「要停止哪些資源」的選擇器選項。
AWS控制台足以停止單一資源,並且在測試環境(不是登台等)中,不應該有任何「絕對不能停止」的資源。尤其是在晚上,我們要阻止它們。
前景
- 我想在 AWS 上定期執行 ecstop 作為計畫流程(例如,每天 24:00)。
- 每次AWS認證從本地呼叫都很麻煩。
- 我正在考慮為 EventBridge Lambda 建立 IaC。
- 由於是測試環境,完成通知似乎沒有必要。我不確定錯誤通知。
- 目前,我沒有任何「我想添加此選項」。
- 如果有任何要求,我會考慮。
我使用的主要工具
ecstop 是基於典型的 Go CLI 開發堆疊。
- Golang
- 眼鏡蛇
- GoReleaser
- 自製水龍頭
結論
這是我第一次發布 CLI 工具,我學到了很多東西,包括如何定義哲學。
如果您有任何回饋或要求,請透過 https://github.com/t-kikuc/ecstop 告訴我。
其實我正在開發另一個與ECS外部部署相關的CLI工具,計劃很快就會發布。
以上是ecstop:我的 CLI 工具,可輕鬆停止 ECS 資源的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

Golang在並發性上優於C ,而C 在原始速度上優於Golang。 1)Golang通過goroutine和channel實現高效並發,適合處理大量並發任務。 2)C 通過編譯器優化和標準庫,提供接近硬件的高性能,適合需要極致優化的應用。

goimpactsdevelopmentpositationality throughspeed,效率和模擬性。 1)速度:gocompilesquicklyandrunseff,IdealforlargeProjects.2)效率:效率:ITScomprehenSevestAndardArdardArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdEcceSteral Depentencies,增強的Depleflovelmentimency.3)簡單性。

goisidealforbeginnersandsubableforforcloudnetworkservicesduetoitssimplicity,效率和concurrencyFeatures.1)installgromtheofficialwebsitealwebsiteandverifywith'.2)

Golang適合快速開發和並發場景,C 適用於需要極致性能和低級控制的場景。 1)Golang通過垃圾回收和並發機制提升性能,適合高並發Web服務開發。 2)C 通過手動內存管理和編譯器優化達到極致性能,適用於嵌入式系統開發。

Golang和Python各有优势:Golang适合高性能和并发编程,Python适用于数据科学和Web开发。Golang以其并发模型和高效性能著称,Python则以简洁语法和丰富库生态系统著称。

Golang和C 在性能上的差異主要體現在內存管理、編譯優化和運行時效率等方面。 1)Golang的垃圾回收機制方便但可能影響性能,2)C 的手動內存管理和編譯器優化在遞歸計算中表現更為高效。

C 更適合需要直接控制硬件資源和高性能優化的場景,而Golang更適合需要快速開發和高並發處理的場景。 1.C 的優勢在於其接近硬件的特性和高度的優化能力,適合遊戲開發等高性能需求。 2.Golang的優勢在於其簡潔的語法和天然的並發支持,適合高並發服務開發。
