§部署到 CloudCaptain 和 AWS
CloudCaptain 讓您可以在 AWS 上部署 Play 應用程式。它基於 3 個核心原則:不可變基礎架構、最小映像和藍/綠部署。
CloudCaptain 附帶原生 Play 應用程式支援,其運作方式是將您的 Play dist zip 轉換成一個最小 VM 映像,可以在 VirtualBox 或 AWS 上不變更地部署。此映像會在幾秒內動態產生,而且比一般的 Linux 系統小約 100 倍。它實際上只包含您的 Play 應用程式、JRE 和 Linux 核心,將安全性攻擊面減至最低可能。
CloudCaptain 會與您的 AWS 帳戶搭配使用,並自動配置應用程式所需的所有必要 AWS 資源,包括 AMI、彈性 IP、彈性負載平衡器、安全群組、自動擴充群組和 EC2 執行個體。
§先決條件
註冊一個免費的 CloudCaptain 帳戶和一個免費的 AWS 帳戶,並 安裝 CloudCaptain 命令列用戶端。
由於 CloudCaptain 會使用您的 AWS 帳戶,因此它首先需要必要的權限才能執行此操作。因此,如果您尚未執行此操作,請前往 CloudCaptain 主控台,並立即連接您的 AWS 帳戶。
§建立您的應用程式
使用專案目錄中的 sbt dist
指令封裝您的應用程式。
§部署您的應用程式
每個新的 CloudCaptain 帳戶都會附帶 3 個環境:dev
、test
和 prod
。dev
用於在 VirtualBox 環境中進行快速的來回行程,而 test
和 prod
則在 AWS 上。
因此,讓我們將應用程式的新的 zip 檔案部署到 AWS 上的 prod
環境
myapp$ boxfuse run -env=prod
Fusing Image for myapp-1.0.zip ...
Image fused in 00:09.817s (75949 K) -> myuser/myapp:1.0
Pushing myuser/myapp:1.0 ...
Verifying myuser/myapp:1.0 ...
Waiting for AWS to create an AMI for myuser/myapp:1.0 in eu-central-1 (this may take up to 50 seconds) ...
AMI created in 00:34.152s in eu-central-1 -> ami-8b988be7
Creating security group boxsg-myuser-prod-myapp-1.0 ...
Launching t2.micro instance of myuser/myapp:1.0 (ami-8b988be7) in prod (eu-central-1) ...
Instance launched in 00:35.372s -> i-ebea4857
Waiting for AWS to boot Instance i-ebea4857 and Payload to start at http://52.29.129.239/ ...
Payload started in 00:50.316s -> http://52.29.129.239/
Remapping Elastic IP 52.28.107.167 to i-ebea4857 ...
Waiting 15s for AWS to complete Elastic IP Zero Downtime transition ...
Deployment completed successfully. myuser/myapp:1.0 is up and running at http://myapp-myuser.boxfuse.io/
現在,您可以透過執行以下指令來拜訪部署在 AWS 上的應用程式
myapp$ boxfuse open -env=prod
§進一步的學習資源
下一步:排程工作
在此文件發現錯誤?此頁面的原始程式碼可以在 這裡 找到。在閱讀 文件指南 後,請隨時提交拉取請求。有問題或建議要分享嗎?請前往 我們的社群論壇 與社群展開對話。