前言 當我們開發完一個WEB專案之後, 接下來要做的就是測試跟部屬, 通常在部屬的時候, 往往都是找一台機器開始灌OS, 切partition, ...OS灌完之後還要再安裝Application Server, 像Tomcat, IIS 等等 然後設定環境, 如網路,憑證,備份,,等等 最後才開始部屬WEB application, 可是到這個時候, 差不多也浪費掉了一兩天的時間 Elastic Beanstalk(簡稱EBS)是Amazon提供的PAAS服務, 開發人員不需要考慮如何配置以及維護環境, 甚至也不需要煩惱scaling的問題, 只要專心寫程式, 然後上傳到EBS上, 所有跟環境有關的工作EBS都會幫你完成 EBS會幫我們做Heath check, 程式有問題時馬上就會知道, 如果流量增加, EBS也可以幫我們做load balancing, 除此之外, 版本管控的功能也可以讓我們隨時方便的做Roll back Deployment policy EBS 提供四種部屬方式 All at once 直接部屬到所有的instance上, 在部屬期間服務會被停止, 部屬失敗的話需要額外再做Roll back Rolling 選擇這個方式, EBS會一個接著一個將程式部屬到每個instance上, 對外服務不會被停止但整體的performance會下降, 對於很吃performance的WEB APP來說並不適用, 部屬失敗時也需要額外的動作去做Roll back Rolling with additional batch policy 會額外再多建立新的instance去做部屬, 然後再一個接一個部屬下去, 好處是部屬時不會造成performance下降, 部屬失敗時也需要額外的動作去做Roll back Immutable 所有的instance會先部屬在分身上面, 當部屬成功後分身會取代本尊成為服務的提供者, 而先前的instance會被刪除(非常適合Missions critical production), 部屬失敗時影響最小, 只要砍掉分身就好 Config EBS允許我們使用特定的config檔案去客製化EBS上的環境, 例如安裝那些套件, 建立那些特定的