文档

§部署到 CloudCaptain 和 AWS

CloudCaptain 允许您在 AWS 上部署 Play 应用程序。它基于 3 个核心原则:不可变基础设施、最小化镜像和蓝绿部署。

CloudCaptain 提供了对 Play 应用程序的原生支持,它通过将您的 Play dist zip 转换为可以在 VirtualBox 或 AWS 上不变部署的最小 VM 镜像来工作。此镜像是在几秒钟内动态生成的,并且比常规 Linux 系统小 100 倍。它实际上只包含您的 Play 应用程序、JRE 和 Linux 内核,将安全攻击面降至最低。

CloudCaptain 与您的 AWS 帐户一起工作,并自动配置您的应用程序所需的所有必要 AWS 资源,包括 AMI、弹性 IP、弹性负载均衡器、安全组、自动扩展组和 EC2 实例。

§先决条件

注册一个免费的 CloudCaptain 帐户以及一个免费的 AWS 帐户,并 安装 CloudCaptain 命令行客户端

由于 CloudCaptain 与您的 AWS 帐户一起工作,因此它首先需要执行此操作的必要权限。因此,如果您还没有这样做,请转到 CloudCaptain 控制台并 立即连接您的 AWS 帐户

§构建您的应用程序

在您的项目目录中使用 sbt dist 命令打包您的应用程序。

§部署您的应用程序

每个新的 CloudCaptain 帐户都附带 3 个环境:devtestproddev 用于在 VirtualBox 环境中本地快速往返,而 testprod 则位于 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

§更多学习资源

下一步:计划任务


在本文档中发现错误?此页面的源代码可以在 此处 找到。阅读完 文档指南 后,请随时贡献拉取请求。有疑问或建议要分享?前往 我们的社区论坛 与社区展开对话。