在AWS上部署一个网站

简介: 在AWS上部署一个网站

AWS上部署一个网站

使用Elastic Beanstalk,用户就不必操心自己的操作系统或虚拟服务器,因为它在它们之上加了一个抽象层。

前言

Elastic Beanstalk帮助用户处理下面反复发生的任务。

为网站应用(PHP、Java等)提供一个运行环境。

自动安装并更新网站应用。

配置网站应用及其环境。

调整网站应用规模来负载均衡。

监控和调试网站应用。

一、Elastic Beanstalk是什么?

Elastic Beanstalk的不同组成部分有助于了解它的功能。应用是一个逻辑上的容器。它包含了版本、环境和配置。如果用户在一个区域开始使用Elastic Beanstalk,首先需要创建一个应用。版本包含用户的应用的指定版本。要创建一个新版本,用户必须上传自己的可执行文件到用来存储静态文件的Amazon S3服务。版本是一个指向这个可执行文件的压缩文档的指针。配置模板包含默认配置。用户可以通过自定义的配置模板管理自己的应用的配置以及环境配置。环境是Elastic Beanstalk执行应用的地方。它由版本和配置构成。用户可以通过多次使用版本和配置为一个应用运行多个环境。

二、使用步骤

1.部署一个Node.js

Etherpad是一个开源的在线编辑器,它让许多人可以同时编辑一份文档。我们将通过以下3个步骤在Elastic Beanstalk的帮助下部署这个基于Node.js的应用。

(1)创建应用:逻辑上的容器。

(2)创建版本:指向特定Etherpad版本的指针。

(3)创建环境:Etherpad运行的地方。


打开命令行并且执行下面的命令来为Elastic Beanstalk服务创建一个应用:

$ aws elasticbeanstalk create-application --application-name etherpad

2.用Elastic Beanstalk创建一个环境来执行Etherpad

要使用Elastic Beanstalk部署Etherpad,需要基于Amazon Linux及Etherpad的版本为Node.js创建一个环境。要获取最新的Node.js环境版本,列出包含它的解决方案堆栈名(solution stack name),运行下面的命令:

$ aws elasticbeanstalk list-available-solution-stacks --output text \
--query "SolutionStacks[?contains(@, 'running Node.js')] | [0]"\
64bit Amazon Linux 2015.03 v1.4.6 running Node.js

选项EnvironmentType = SingleInstance自动启动一个不可变规模且无负载均衡的单台虚拟服务器。使用从前一个命令得到的输出替换$SolutionStackName:

$ aws elasticbeanstalk create-environment --environment-name etherpad \
--application-name etherpad \
--option-settings Namespace=aws:elasticbeanstalk:environment,\
OptionName=EnvironmentType,Value=SingleInstance \
--solution-stack-name "$SolutionStackName" \
--version-label 1.5.2

上传了一个包含了Etherpad版本1.5.2的zip压缩文档。如果想部署另一个应用,可以上传自己的应用的静态文件至AWS S3服务。

总结

在将浏览器指向我们的Etherpad安装前,需要花费几分钟用下面的命令来跟踪Etherpad环境的状态:

$ aws elasticbeanstalk describe-environments --environment-names etherpad

如果Status变为Ready,并且Health变成Green,说明已经准备好了,可以创建我们的第一个Etherpad文档了。命令describe的输出应该与以下的例子类似。

{
 "Environments": [{
  "ApplicationName": "etherpad",
  "EnvironmentName": "etherpad",
  "VersionLabel": "1",
  "Status": "Ready",     ←--等待Status 变为Ready
  "EnvironmentId": "e-pwbfmgrsjp",
  "EndpointURL": "23.23.223.115",
  "SolutionStackName": "64bit Amazon Linux 2015.03 v1.4.6 running Node.js",
  "CNAME": "etherpad-cxzshvfjzu.elasticbeanstalk.com",     ←--环境的DNS 记录(例如,要从浏览器打开)
  "Health": "Green",     ←--等待Health变为Ready
  "Tier": {
   "Version": " ",
   "Type": "Standard",
   "Name": "WebServer"
  },
  "DateUpdated": "2015-04-07T08:45:07.658Z",
  "DateCreated": "2015-04-07T08:40:21.698Z"
 }]
}

我们已经利用3个命令在AWS上部署了一个Node.js网站应用。现在把浏览器指向CNAME中的URL,并输入一个新文档名,点击OK按钮来打开一个新文档。

目录
相关文章
|
6月前
|
存储 安全 关系型数据库
AWS介绍
AWS介绍
149 0
|
6月前
|
存储 API 云计算
AWS基础
AWS基础
98 2
|
6月前
|
存储 人工智能 大数据
云计算平台:AWS、Azure和Google Cloud的比较与选择
在当今数字化时代,云计算平台成为了企业和个人的首选。本文将重点比较三大主流云计算平台:AWS、Azure和Google Cloud,从性能、功能、可用性以及定价等方面进行综合评估,帮助读者更好地选择适合自己需求的云计算平台。
|
6月前
|
Kubernetes 监控 云计算
Docker与云计算平台集成:AWS、Azure、GCP完全指南
Docker和云计算平台的结合,如AWS(Amazon Web Services)、Azure(Microsoft Azure)和GCP(Google Cloud Platform),为现代应用的构建和部署提供了巨大的便利性。本文将深入研究如何与这些主要云计算平台集成Docker,提供更多示例代码和详细指南,帮助大家更全面地利用这些强大的工具。
|
云安全 存储 安全
云服务提供商的安全实践:构建可信赖的AWS、Azure和GCP云环境
本篇详细探讨了三家主要云服务提供商,即Amazon Web Services(AWS)、Microsoft Azure和Google Cloud Platform(GCP)的安全实践。我们介绍了每个平台的关键安全功能和工具,以帮助读者构建可信赖的云环境。
318 1
云服务提供商的安全实践:构建可信赖的AWS、Azure和GCP云环境
|
2天前
|
存储 测试技术 C#
Azure 云服务与 C# 集成浅谈
本文介绍了 Azure 云服务与 C# 的集成方法,涵盖基础概念、资源创建、SDK 使用、常见问题解决及单元测试等内容,通过代码示例详细说明了如何在 C# 中调用 Azure 服务,帮助开发者提高开发效率和代码质量。
20 8
|
3月前
|
存储 网络安全 Windows
【Azure 云服务】为Azure云服务配置上自签名的SSL证书步骤
【Azure 云服务】为Azure云服务配置上自签名的SSL证书步骤
|
SQL Cloud Native Go
云服务部署:AWS、Azure和GCP比较
云服务部署:AWS、Azure和GCP比较
463 0
|
存储 数据库 开发工具
「技术选型」AWS 和 AZURE的全面比较
「技术选型」AWS 和 AZURE的全面比较