一般

問:什麼是 AWS OpsWorks Stacks?

AWS OpsWorks Stacks 讓您在 AWS 和現場部署管理應用程式與伺服器。有了 OpsWorks Stacks,您可以將應用程式製作成包含不同層 (如負載平衡、資料庫和應用程式伺服器) 的堆疊模型。您可以在每一層部署和設定 Amazon EC2 執行個體,或連接其他資源 (例如 Amazon RDS 資料庫)。OpsWorks Stacks 讓您可以根據預設時間表或回應變動的流量程度,為伺服器設定自動化擴展,而且它使用生命週期勾點在您的環境擴展時協調變更。使用 Chef Solo 來執行 Chef 方法,讓您可以將各種任務自動化,例如安裝套件與程式設計語言或框架、設定軟體等等。

問:AWS OpsWorks Stacks 與 AWS OpsWorks for Chef Automate 有何不同?

OpsWorks for Chef Automate 是一種組態管理服務,協助您立即佈建 Chef 伺服器並讓服務操作它,包括執行備份和軟體升級。這個服務提供與 Chef Supermarket 逐步指南與方法的完整相容性。它支援原生 Chef 工具,如 TestKitchen 和 Knife。OpsWorks Stacks 服務使用代您安裝在 Amazon EC2 執行個體上的內嵌 Chef 單一用戶端,協助您在 AWS 上塑造、佈建及管理應用程式。

問:哪些人應該使用 AWS OpsWorks Stacks?

正在尋找強大的端對端組態管理解決方案的系統管理員和具有 Ops 理念的開發人員應該考慮採用 AWS OpsWorks Stacks。AWS OpsWorks Stacks 的目標使用者是需要更強管理能力和自動化工具來協助他們自訂並控制環境的 DevOps 使用者。AWS OpsWorks Stacks 使用者一般會獲得以下價值:

控制​。您可以使用 AWS OpsWorks Stacks 輕鬆地為應用程式的所有元件建立模型,然後設定應用程式及其支援基礎設施的各個方面。利用在應用程式生命週期的定義階段使用 Chef 方法 (請到這裡進一步了解) 支援以指令碼編寫的變更,就能對應用程式及其與相關元件的互動有更精確的控制。方法可與原始程式碼存放在一起,以便追蹤變更。從一次性部署到自動擴展式成長,您的應用程式會透過完整的生命週期來反映您做的設定。

自動化​。您只要指定如何擴展、維護和部署應用程式,AWS OpsWorks Stacks 就會為您執行這些任務,無須任何手動操作步驟。例如,AWS OpsWorks Stacks 可以根據您指定的確切組態 (要部署的程式碼等) 設定執行個體來託管應用程式,使用以負載或時間為基礎的自動擴展功能來擴展您的應用程式,並透過偵測並替換故障執行個體來維護應用程式,使其正常執行。AWS OpsWorks Stacks 使用 Chef 方法來啟動新應用程式伺服器執行個體、設定應用程式伺服器軟體以及部署應用程式。您也可以套用自己的 Chef 方法來變更資料庫和監控基礎設施。

問:使用者可以利用 AWS OpsWorks Stacks 執行哪些之前無法進行的操作?

AWS OpsWorks Stacks 提供的解決方案讓您能夠:

為任何應用程式建立模型並提供支援。您可以在 Amazon Linux、Ubuntu、RHEL 和 Windows 上使用自選的組態來部署應用程式。AWS OpsWorks Stacks 可讓您使用 Layer 建立應用程式的模型。Layer 定義如何設定一組集中受管理的資源。例如,您可以為應用程式定義由 Amazon EC2 執行個體、Amazon EBS 磁碟區以及彈性 IP 地址組成的 Web Layer。您也可以為每個 Layer 定義軟體組態,包括安裝指令碼和初始任務。將執行個體加入 Layer 後,AWS OpsWorks Stacks 會自動套用指定的組態。因為 AWS OpsWorks Stacks 支援 Chef 方法 (請瀏覽這裡了解詳細資訊),所以您可以利用數百種社群建立的組態,如 PostgreSQL、Nginx 和 Solr。例如,您可以建立一個由多個 Python 應用程式組成的應用程式,它們安裝在已連接 CouchDB 資料庫的 Django 上。

自動執行任務。AWS OpsWorks Stacks 可讓您自動化管理動作,確保這些操作可以自動、可靠地執行。您可以受惠於自動容錯移轉、套件管理、Elastic Load Balancing 組態,以及自動化以規則或時間為基礎的執行個體擴展功能。自動為您處理一般性任務,您也可以擴展和自訂該自動化功能。AWS OpsWorks Stacks 透過生命週期事件支援持續組態,可自動更新執行個體的組態,以適應自動擴展事件之類的環境變化。使用 AWS OpsWorks Stacks,您不必登入多台電腦手動更新組態。只要環境發生變化,AWS OpsWorks Stacks 就會更新您的組態。

問:AWS OpsWorks Stacks 支援哪些類型的應用程式?

AWS OpsWorks Stacks 可支援各種應用程式架構,範圍從簡單的 Web 應用程式到高度複雜的自訂應用程式。

問:如何存取 AWS OpsWorks Stacks?

您可透過 AWS 管理主控台、AWS 開發套件和 AWS 命令列界面存取 AWS OpsWorks Stacks。

問:AWS OpsWorks Stacks 支援哪些區域?

請參閱區域性產品和服務,了解 OpsWorks Stacks 在不同區域提供狀況的詳細資訊。

問:AWS OpsWorks Stacks 與 AWS CloudFormation 有什麼區別?

AWS OpsWorks Stacks 和 AWS CloudFormation 都支援應用程式模型建立、部署、組態、管理以及相關活動。兩者都支援各種架構模式,從簡單的 Web 應用程式到高度複雜的應用程式均包含在內。AWS OpsWorks Stacks 和 AWS CloudFormation 的區別在於抽象層和重點不同。

AWS CloudFormation 是一種建立區塊服務,可讓使用者透過以 JSON 為基礎的網域專用語言來佈建和管理幾乎任何 AWS 資源。AWS CloudFormation 的重點在於為 AWS 提供全面的基礎功能,而不會針對發展與營運設定專用模型。客戶定義範本,然後用它們佈建和管理 AWS 資源、作業系統和應用程式碼。

相較下,AWS OpsWorks Stacks 是一種層級更高的服務,它著重在為 IT 管理員和具有 Ops 理念的開發人員提供高效可靠的 DevOps 體驗。為了達到此目的,AWS OpsWorks Stacks 採用 Stack、Layer 等概念的組態管理模型,並針對部署、監控、自動擴展和自動化之類的關鍵活動提供整合體驗。與 AWS CloudFormation 相比,AWS OpsWorks Stacks 支援的應用程式導向型 AWS 資源的類型範圍較窄,包括 Amazon EC2 執行個體、Amazon EBS 磁碟區、彈性 IP 和 Amazon CloudWatch 指標。

問:AWS OpsWorks Stacks 與 AWS Elastic Beanstalk 有什麼區別?

AWS OpsWorks Stacks 是組態管理平台,而 AWS Elastic Beanstalk 是應用程式管理平台。

AWS Elastic Beanstalk 是一種易於使用的服務,可部署及擴展以 Java、.NET、PHP、Node.js、Python、Ruby、Go 和 Docker 開發的 Web 應用程式與服務。客戶上傳程式碼後,Elastic Beanstalk 會自動執行剩下的操作。

AWS OpsWorks Stacks 與 AWS Elastic Beanstalk 都能自動化操作,但針對不同的需求和用途。AWS Elastic Beanstalk 是專為想要部署 Web 應用程式但不想擔心操作的開發人員而設計的。開發人員只需上傳程式碼,從容量佈建、負載平衡、自動擴展到應用程式運作狀態監控的部署,Elastic Beanstalk 都可為您自動處理。應用程式將立即備妥可用,而開發人員無須處理任何基礎設施或資源組態工作。

反之,AWS OpsWorks Stacks 則是適用於想要高度自訂和控制操作的 IT 管理員和 DevOps 工程師的整合組態管理平台。AWS OpsWorks Stacks 使用者利用 Chef 方法來自動化軟體組態、套件安裝、資料庫設置、伺服器擴展和程式碼部署等操作。

問:是否可以使用其他服務主控台或 CLI 來管理 AWS OpsWorks Stacks 建立的資源?

儘管可在各自的服務中看到 OpsWorks Stacks 用來建立環境所用的全部資源,但是,一般情況下,您應該只透過 OpsWorks Stacks 來管理這些資源,以避免 OpsWorks Stacks 自動化功能帶來的副作用。但是,也存在例外情況:

  • AWS OpsWorks Stacks 會根據您 Layer 中指定的組態建立和刪除執行個體的磁碟區。如果您希望在執行個體停止時拍攝磁碟區快照,或管理您選擇保留的磁碟區,可以直接透過 Amazon EC2 服務進行操作。
  • AWS OpsWorks Stacks 為 Layer 提供安全群組,以及符合該 Layer 所需連接埠的預設值。如果您要自訂安全群組或建立新安全群組,可以直接透過 EC2 服務進行操作。
  • AWS OpsWorks Stacks 使用可讓您使用 SSH 連接到執行個體的金鑰對。如果您要建立或管理金鑰對,可以直接透過 Amazon EC2 服務進行操作。
  • AWS OpsWorks Stacks 可為您新增到 Stack 的使用者建立預設 AWS IAM 政策。如果您需要更精確的許可,則需要向 IAM 中的使用者新增這些許可。
  • AWS OpsWorks Stacks 將指標從您所有的資源發送到 Amazon CloudWatch。如果您要查看這些指標或設定警示,可以直接透過 Amazon CloudWatch 進行操作。

問:AWS OpsWorks Stacks 執行個體與 Amazon EC2 執行個體是否相同?

AWS OpsWorks Stacks 執行個體定義 Amazon EC2 執行個體及其與相關資源的關係,例如可用區域、類型和相關磁碟區。AWS OpsWorks Stacks 執行個體的生命週期內,可以有許多 Amazon EC2 執行個體代表,但是一次只能是一個。這讓 AWS OpsWorks Stacks 啟動後,能夠始終將資源 (如磁碟區和彈性 IP) 與 Amazon EC2 執行個體綁定在一起。

問:AWS OpsWorks Stacks 是否有任何限制?

預設情況下,您可以建立最多 40 個 Stack,每個 Stack 最多可容納 40 個 Layer、40 個執行個體和 40 個應用程式。您還應該了解其他 AWS 限制。例如,預設 AWS 帳戶限制您最多可啟動 20 個 Amazon EC2 執行個體。如果您需要更多資源,請填寫申請表,我們會迅速評估您的申請。您也可以透過每個 OpsWorks Stacks Layer 安裝有限數量的套件。如果您要安裝大量的套件,則使用自訂逐步指南來安裝套件。

問:AWS OpsWorks Stacks 是否支援 Windows Server?

是。AWS OpsWorks Stacks 支援 Windows Server 2012 R2。

問:AWS OpsWorks Stacks 是否支援現場部署伺服器?

是。AWS OpsWorks Stacks 支援可安裝 OpsWorks Stacks 代理器的所有 Linux 機器,並且與 AWS 公有端點連接。

問:要與 AWS OpsWorks Stacks 搭配使用,我的伺服器必須滿足哪些網路要求?

您的伺服器僅需要能夠連接 AWS 公有端點

入門

問:如何註冊 AWS OpsWorks Stacks?

要註冊 AWS OpsWorks Stacks,請按一下 OpsWorks Stacks 詳細資訊頁面中的 "Sign Up Now" 按鈕。您必須擁有 Amazon Web Services 帳戶才能存取此服務;如果您還沒有帳戶,系統將在您開始 AWS OpsWorks Stacks 程序時提示您建立帳戶。

問:如何開始使用 AWS OpsWorks Stacks?

了解如何開始使用 AWS OpsWorks Stacks 的最佳方式就是仔細閱讀技術文件中的 AWS OpsWorks Stacks 入門指南 (Linux | Windows)。您可以在幾分鐘內就部署和使用應用程式。

應用程式組態和管理

問:使用 AWS OpsWorks Stacks 時可以控制應用程式的哪些元素?

AWS OpsWorks Stack 定義整個應用程式的組態,如:負載平衡器、伺服器軟體、資料庫等。您可以透過建置 Layer 來控制 Stack 的每個部分,因為 Layer 會定義部署到執行個體的套件及其他組態詳細資訊,例如彈性 IP 與安全群組。還可以透過識別儲存庫並選擇性地使用 Chef 方法將軟體部署到 Layer 上,以便自動執行 Chef 可執行的一切操作,如建立目錄和使用者、設定資料庫等。您可以利用 OpsWorks Stacks 的內建自動化功能來擴展應用程式並自動從執行個體故障中恢復過來。您可以控制誰可以查看並管理應用程式所用的資源,包括對應用程式所用執行個體的 SSH 存取權限。

問:AWS OpsWorks Stacks 支援哪些軟體版本控制和修訂控制系統?

AWS OpsWorks Stacks 可以從常見的版本控制系統 (如 Git、Subversion、HTTP 以及私有或公有 S3 服務包) 擷取您要部署的程式碼。例如,您可以從 Git 儲存庫將版本或分支新增到 OpsWorks Stacks 應用程式定義,以部署特定版本的應用程式。也可以透過 rsync 或 scp 在任何位置使用 Chef 方法來部署應用程式。

問:AWS OpsWorks Stacks 支援哪些作業系統?

AWS OpsWorks Stacks 目前支援 Amazon Linux、Ubuntu 12.04 LTS、Ubuntu 14.04 LTS 和 Windows Server 2012 R2。

問:AWS OpsWorks Stacks 是否支援 Microsoft Windows?

是。AWS OpsWorks Stacks 支援 Windows Server 2012 R2。

問:是否可以使用 AWS OpsWorks Stacks 部署高可用性的應用程式?

是。如果您的應用程式支援水平擴展,則您可以在多個可用區域建立執行個體,且您的負載平衡器會路由執行個體間的流量。如果有任何執行個體發生故障,OpsWorks Stacks 的自動修復功能可自行替換故障執行個體。如果您的應用程式使用其他技術來達到可用性目標,例如使用帶有主動節點和被動節點的資料庫,則可以使用 Chef 方法進行設定。

問:如何在 AWS OpsWorks Stacks 中為應用程式建立模型?

AWS OpsWorks Stacks 提供三種建立應用程式模型的概念:

Stack 是最高級的管理單位。Stack 中包含一組 Amazon EC2 執行個體和執行個體藍圖,我們稱之為 Layer,用於啟動和管理這些執行個體。應用程式、使用者許可以及其他資源都是在 Stack 環境下進行審查和控制。例如,您可能會為開發 Web 應用程式建立 Stack,其中包括前端負載平衡器、PHP 伺服器、PHP 應用程式和 MySQL 資料庫。您還可以透過複製開發 Stack,為生產型 Web 應用程式建立組態相似的 Stack。

Layer 是設置和設定執行個體以及相關資源 (如磁碟區、彈性 IP) 的藍圖,並且可以自動處理如 SSL 設定之類的基礎設施組態。您也可以為每個 Layer 定義軟體組態,包括安裝指令碼、初始任務和套件。例如,如果您使用 Ruby Layer,OpsWorks Stacks 不僅可以安裝 Rails,還可以安裝應用程式所需的所有 Gems。Layers 也包含生命週期事件 (詳細資訊請參閱「什麼是生命週期事件」),讓您能夠使用 Chef 方法自動執行組態動作,以回應執行個體狀態所發生的變化 (詳細資訊請參閱「什麼是 Chef?AWS OpsWorks Stacks 如何使用 Chef?」)。Layer 可包含以時間或負載為基礎的自動擴展功能,不需手動操作就能應付需求高峰。

應用程式是從儲存庫 (例如:Git 和 S3) 下載並部署到 Layer 的軟體。您可以使用部署生命週期事件來自動執行組態步驟,例如將應用程式連接到資料庫。OpsWorks Stacks 支援在每個 Stack 和 Layer 部署多個應用程式。

問:什麼是 Chef?AWS OpsWorks Stacks 如何使用 Chef?

Chef 是 Chef Software, Inc. 贊助的開始原始碼架構,可使用程式碼將應用程式的設定、部署和管理自動化。AWS OpsWorks Stacks 使用 Chef 方法在 Amazon EC2 執行個體上部署和設定軟體元件。Chef 擁有豐富的生態系統,其中包含可與 AWS OpsWorks Stacks 搭配使用的數百個逐步指南 (例如 PostgreSQL、Nginx 和 Solr)。

問:什麼是生命週期事件?

AWS OpsWorks Stacks 可根據生命週期階段建立事件。這些事件可用於觸發每個執行個體上的 Chef 方法,以便執行特定的組態任務。OpsWorks Stacks 利用 Chef 方法根據 Layer 類型來對每個事件執行基本管理。您也可以建立自訂方法,以針對特定的生命週期事件,編寫應用程式所需的任何組態變更指令碼。支援以下生命週期事件:

產生實體或啟動成功後,系統會將 Setup 發送到執行個體。例如,您可以為 Rails 應用程式伺服器觸發 Chef 方法,該方法會在 Rails 上安裝 Apache、Ruby、Passenger 和 Ruby 等等相依項目。

Configure 可在 Stack 的狀態發生改變時通知所有執行個體。例如,當新執行個體成功新增到應用程式伺服器 Layer 時,設定事件會觸發 Chef 方法來更新 OpsWorks Stacks Load Balancer Layer 組態,以反映新增的應用程式伺服器執行個體。

每當部署應用程式時就會觸發 Deploy。例如,您可以為 Rails 應用程式伺服器觸發 Chef 方法,該方法會執行所需的任務以檢查和下載應用程式,並通知 Passenger 重新載入該應用程式。

當您刪除應用程式時,系統會發送 Undeploy。例如,取消部署事件觸發的自訂 Chef 方法,可指定任何需要執行的清除步驟,如刪除資料庫表。

系統會在實際停止執行個體前 45 秒發送 Shutdown 通知。例如,關閉事件可觸發關閉服務的自訂 Chef 方法。

問:AWS OpsWorks Stacks 是否支援現有 Chef 逐步指南?

是。您可以使用現有的 Chef 方法。如需詳細資訊,請參閱文件

問:如何建立 Chef 逐步指南和方法?

最簡單的方法可能是使用現有的 Chef 方法。這裡有一個豐富的公有儲存庫生態系統,其包含的 Chef 逐步指南中有幾乎無須修改即可執行的方法。OpsWorks Stacks 入門指南中還包含 Chef 方法範例及其工作原理描述。

問:是否能使用自己的 AMI?

是。您可以使用自己的 AMI,也可以使用 Chef 指令碼自訂 AMI OpsWorks Stacks 支援,以安裝所需的代理器和其他軟體。目前不支援使用自己的 Windows AMI。

問:是否可使用 Amazon EC2 使用者資料來自訂執行個體設定?

不,只能透過 Chef 方法來設定執行個體設定。

問:AWS OpsWorks Stacks 支援哪些負載平衡選項?

OpsWorks Stacks 可透過使用社群 Chef 方法支援 Elastic Load Balancing、HAProxy,或使用自訂 Layer 和 Chef 方法在 EC2 執行個體上安裝您選擇的任何負載平衡器。這為您提供了豐富的自訂選項,以及對應用程式負載平衡器更精準的控制。

問:AWS OpsWorks Stacks 支援哪些自動化執行個體擴展選項?

OpsWorks Stacks 支援以時間和負載為基礎的執行個體自動擴展,以調整執行個體的數量,使之與負載相匹配。使用以負載為基礎的自動擴展功能,您可以設定 CPU、記憶體或負載的閾值,以定義何時啟動其他執行個體。當負載峰值過去且達到縮小閾值時,OpsWorks Stacks 會關閉其他執行個體。使用以時間為基礎的自動擴展功能,您可以定義執行個體在一天中的啟動和結束時間。自動擴展集區中的執行個體大小各異,可讓您逐步或快速進行擴展,而且可針對多個可用區域進行設定以提高可靠性。OpsWorks Stacks 目前不支援 EC2 Auto Scaling。

問:AWS OpsWorks Stacks 支援哪些監控與警示選項?

OpsWorks Stacks 將您所有的執行個體和磁碟區指標發送到 CloudWatch,使您能夠輕鬆查看圖表和設定警示,以協助您排除故障並根據資源的狀態自動採取動作。您還可以在 OpsWorks Stacks Monitoring 檢視中查看 OpsWorks Stacks 從您的執行個體中收集到的十三個 1 分鐘指標 (包括 CPU、記憶體和負載)。

問:AWS OpsWorks Stacks 支援哪些資料庫?

您可以使用 AWS 服務 (如 Amazon RDS) 或使用 Chef 方法來安裝資料庫 (如 MySQL、Cassandra 或 MongoDB)。這為您提供豐富的自訂選項和對應用程式資料庫的精確控制。

問:AWS OpsWorks Stacks 是否支援標籤?

OpsWorks Stacks 會自動用關聯的 Stack 與 Layer 名稱為所有資源設置標籤。您可以將這些標籤與成本分配報告搭配使用,透過標記整理並追蹤 AWS 費用。要進一步了解更多有關成本分配和標記的資訊,請瀏覽 AWS 帳戶帳單。

安全性

問:是否能在 Amazon Virtual Private Cloud (VPC) 內執行我的應用程式?

是。如需詳細資訊請參閱 OpsWorks Stacks 文件

問:AWS Identity & Access Management (IAM) 是否可以與 AWS OpsWorks Stacks 搭配使用?

是,OpsWorks Stacks 支援 IAM 使用者、許可和角色。您可以按使用者指定許可,包括檢視、部署和管理許可。您還可以指定哪些使用者可以直接使用 SSH 連接到執行個體。OpsWorks Stacks 支援 IAM 角色,可讓您授與使用者 OpsWorks Stacks 的存取權,而無須將存取權授與 EC2 這類相依服務。例如,您可以明確地拒絕授與使用者執行 EC2 動作的權限,但是如果使用者擁有部署或管理 Stack 資源的 OpsWorks Stacks 許可,則仍然可以透過 OpsWorks Stacks 控制 EC2 執行個體。這可防止 OpsWorks Stacks 使用者無意間從 EC2 主控台停止執行個體。

問:是否能管理要在我的執行個體開啟哪個連接埠?

AWS OpsWorks Stacks 提供一套標準的內建安全群組 (一層一個),在預設情況下,每層關聯一個安全群組。而 Stack 的 Use OpsWorks Stacks 安全群組設定可讓您提供自己的自訂安全群組。使用此選項,您必須建立適當的 EC2 安全群組並將安全群組關聯到您建立的每個層。但是,您仍然可以在建立時手動將內建的安全群組關連到層;只有需要自訂設定的層才需要自訂安全群組。有關安全群組的更多資訊,請參閱 Amazon EC2 Security Groups。請注意,OpsWorks Stacks 需要從連接埠 443 連接 EC2 執行個體的傳出連接來設定您的執行個體。

問:AWS OpsWorks Stacks 在執行個體上執行哪些內容?

OpsWorks Stacks 使用執行個體上的代理器來執行組態任務,並提供活動訊號運作狀態報告。代理器是以普通使用者的身分在作業系統中執行。此外,每個執行個體還有一個用於部署的使用者。該使用者除了部署外,沒有任何登入權利或存取權利。

問:在何處可以找到有關 AWS 安全性,以及在 AWS 上執行應用程式的詳細資訊?

如需有關 AWS 安全性的詳細資訊,請參閱我們的「Amazon Web Services:安全程序概觀」文件,及瀏覽我們的安全中心

計費

問:AWS OpsWorks Stacks 的費用是多少?

請瀏覽定價頁面以了解 AWS OpsWorks Stacks 的費用。

問:如何查看應用程式已使用多少 AWS 資源並存取我的帳單?

只需登入您的 Amazon Web Services 帳戶,然後按一下您的 Web 服務帳戶下的帳戶活動,即可隨時在 Amazon Web Services 網站上查看目前帳單期間的費用。OpsWorks Stacks 會自動用關聯的 Stack 與 Layer 名稱為所有資源設置標籤。您可以將這些標籤與成本分配報告搭配使用,透過標記整理並追蹤 AWS 費用。

使用 AWS OpsWorks Stacks 開始建立

開始在 AWS 主控台進行建置
準備好開始建立?
AWS OpsWorks Stacks 入門
還有其他問題嗎?
聯絡我們