当向开发人员介绍亚马逊云科技云服务时,通常会花一点工夫来介绍并演示 Amazon Lightsail 。它是迄今为止开始应用亚马逊云科技的最简略办法。应用它,您在几分钟内即可在本人的虚构服务器上运行您的应用程序。而后减少了在 Amazon Lightsail 上部署基于容器的工作负载的可能性。

Amazon Lightsail 是一项易于应用的云服务,可为您提供部署应用程序或网站所需的所有,从而实现经济高效且易于了解的月度打算。它是部署简略的工作负载、网站或开始应用亚马逊云科技的现实抉择。典型的 Amazon Lightsail 客户包含开发人员、小型企业或初创公司等,他们心愿疾速开始应用云和亚马逊云科技。

亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!

部署到 Amazon Lightsail 时,您能够在六种操作系统(4 个 Linux 发行版、FreeBSD 或 Windows)、七种应用程序(例如 WordPress、Drupal、Joomla、Plesk…)和七种堆栈(例如 Node.js、Lamp、GitLab、Django…)之间抉择。然而 Docker 容器呢?

Amazon Lightsail 为开发人员提供一种简略的形式来将其容器部署到云中。您只须要为您的容器提供一个 Docker 映像,亚马逊云科技将为您主动容器化该映像。Amazon Lightsail 为您提供了一个 HTTPS 终端节点,能够为在云容器中运行的应用程序提供服务。它会主动设置负载平衡的 TLS 终端节点,并解决 TLS 证书。它会为您主动替换无响应的容器,会为终端节点调配一个 DNS 名称,保护旧版本,直到新版本运行失常并筹备好上线等。

上面通过将简略的 Python Web 应用程序部署为容器来看看它是如何工作的。假如您的笔记本电脑上装置了亚马逊云科技命令行界面(CLI)和 Docker。不须要 Python,它将仅装置在容器中。

首先应用 Flask 简略应用程序框架创立一个 Python REST API。任何能够在容器内运行的编程语言和框架都能够工作。我抉择了 Python 和 Flask,因为它们简略又简洁。

您能够平安地复制/粘贴以下命令:

而后创立一个 Dockerfile,其中蕴含构建容器映像所需的步骤和信息:

当初能够构建容器了:

build 命令在构建容器时会输入许多行,它最终以以下音讯完结(理论 ID 将不同):

能够通过在笔记本电脑上启动容器来测试它:

并将浏览器连贯到 localhost:8080

当对应用程序感到称心时,会将容器推送到 Docker Hub。

当初,曾经在 Docker Hub 上筹备好容器,上面来创立 Amazon Lightsail 容器服务。将浏览器指向 Amazon Lightsail 控制台。能够看到容器服务曾经部署好,能够治理它们。为创立新服务,我点击 Create container service(创立容器服务):

在下一个屏幕上,依据可供应用程序应用的 vCPU 和内存来抉择要应用的容器大小。出于高可用性或可扩展性的起因,还抉择了心愿并行运行的容器实例的数量。能够随时更改容器实例的数量或其能力(vCPU 和 RAM),而不会中断服务。这两个参数都会影响亚马逊云科技每月收取的价格。

在屏幕略微上面的地位,抉择当初跳过部署。将服务命名为(“hello-world”)。单击 Create container service(创立容器服务)。

创立服务后,单击 Create your first deployment(创立第一个部署)以创立部署。部署指的是要在刚创立的服务上部署的特定容器映像和版本的组合。

为映像抉择一个名称,而后在 Docker Hub 上应用格局user/:tag 提供映像的地址。在这个中央,也能够输出环境变量、端口映射或启动命令。

容器在端口 TCP 8080 上提供网络服务,因而将该端口增加到部署配置中。凋谢端口配置指定哪些端口和协定对容器网络中的其余零碎凋谢。其余容器或虚拟机只能在端口在控制台中显式配置或公开在 Dockerfile 中时连贯到我的容器。这些端口都不会在公共互联网中公开。

最多能够为单个部署增加 10 个容器。筹备好后,我单击 Save and deploy(保留并部署)。

过了一段时间,部署处于活动状态,能够测试终端节点。

终端节点 DNS 地址位于控制台的右上角。如果必须的话,能够配置本人的 DNS 域名。

在浏览器中关上另一个选项卡并将它指向 https 终端节点 URL:

当必须部署新版本时,再次应用控制台来批改部署。能够省去批改利用程序代码、构建和推送新版本容器的详细信息。假如在名称 sebsto/lightsail-hello-world:v2 下有第二个容器映像版本可用。返回到 Amazon Lightsail 控制台,单击 Deployments(部署),而后单击 Modify your Deployments(批改部署)。输出容器映像新版本的残缺名称,包含标签,而后单击 Save and Deploy(保留并部署)。

过了一段时间后,部署并主动激活新版本。

在浏览器中关上一个新选项卡,而后将其指向 Amazon Lightsail 控制台右上角提供的终端节点 URI。察看到 JSON 版本不同。它当初有一个值为 2 的版本属性。

当部署过程中呈现问题时,Amazon Lightsail 会主动使上次部署放弃活动状态,以防止任何服务中断。还能够手动激活以前的部署版本以吊销任何不须要的更改。

刚从 Docker Hub 部署了第一个容器映像。还能够应用亚马逊云科技命令行界面(CLI)治理我的服务并从笔记本电脑部署本地容器映像。要间接从笔记本电脑将容器映像推送到 Amazon Lightsail 容器服务,必须装置 LightSail 控制器插件。为创立、列出或删除容器服务,键入:

还能够应用 CLI 间接从笔记本电脑部署容器映像。确保已装置 lightsailctl。

过了一会,我看到以下输入:

创立一个 lc.json 文件来保留部署配置的详细信息。它在管制台上看到的选项统一。

最初,用以下命令创立一个新的服务版本:

能够应用以下命令查问部署状态

过了一段时间后,状态变为ACTIVE(流动),能够测试我的终端节点。

如果打算稍后将容器部署到 Amazon ECS 或 Amazon Elastic Kubernetes Service,则无需进行任何更改。您能够从存储库中提取容器映像,就像应用 Amazon Lightsail 一样。

您能够在提供 Amazon Lightsail 的所有亚马逊云科技区域中将容器部署到 Lightsail 上。截止明天,已在美国东部(俄亥俄)、美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(孟买)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(伦敦)和欧洲(巴黎)区域提供。

Amazon Lightsail 在后盾由 Amazon Elastic Compute Cloud(EC2)、Amazon Relational Database Service(RDS)、Application Load Balancer 和其余亚马逊云科技服务提供反对。它提供了您冀望从亚马逊云科技取得的安全性、可靠性和可扩展性级别。

文章起源:https://dev.amazoncloud.cn/column/article/6508117ecd34151400c...