使用AWS的Elastic Beanstalk快速发布网站

本贴最后更新于 2799 天前,其中的信息可能已经时异事殊

最近AWS在中国区上架了一款新产品,Elastic Beanstalk, 是中国区第一个类似工具,并且首次和其他区域同步发布。其他区域目前已经有了Container,Lambda,Beanstalk这三款产品,都可以用来实现快速的网站发布,我认为最为容易使用,并且便于从传统部署方式转变的,还是Beanstalk。Beanstalk目前的发布速度在20秒左右,已经和Docker的秒级发布不相上下,是非常优秀的。

 

在AWS控制台,打开Elastic Beanstalk界面,如果你没有创建过application的话,会有引导界面来引导创建一个,不过这个创建的都是默认设置,如果你的网站直接发布,可以使用,但是如果你原本就有一个VPC存在,或者你需要使用数据库连接这些功能,就需要跳过自动生成,自己进行详细设置,但是也很简单,不会花费超过1分钟。

 

  • Create New Application

需要输入一个Application name, 这是你的应用的名称,如果你的网站叫做fullmoon,可以直接填full moon,但是这个名字像S3一样是所有用户唯一的,所以越早可以越好。

Description无所谓,随便填。

 

  • Create Environment

创建好Application之后,Beanstalk的界面就成了application list,在fullmoon这个application下,还什么都没有,No environments currently exist for this application,environment指的是运行网站的具体服务名字,如果你有三个微服务,那么你需要创建三个environment,如果只是一个简单的博客站,只需要一个envrionment即可。点击Create One Now。

点击之后,选择web server 还是worker,分别代表前端web服务还是后端服务,我们一般选择web服务,按照现在流行的微服务架构,一切都是web服务。

 

  • Environment Type

这里可以选择发布平台,目前支持Ruby,PHP,Tomcat,Python,Node.js,IIS,JAVA,GO,我要发布一个JAVA的博客系统,选择Tomcat,如果你用spring-boot这类JAVA工具把jar打包成了可执行文件,你可以选择JAVA平台,直接运行jar包。

Environment type是AWS云的一大重要特性,指的是你的程序跑single instance还是auto scanning。Single instance不用解释,就是在一个实例上跑你的网站,Load balance, auto scanning是发布你的网站之后,如果访问量过大,会再启动一个一摸一样的服务来缓解压力,并且自动负载均衡,如果访问量减少,又回还原到1个实例。AWS的服务都是按秒收费的,所以选择auto scanning并不会多花钱。

 

  • Application version

这一步是进行网站版本设置,可以从console界面上传文件,也可以直接填写s3地址,Sample application是不上传,先启动一个白板网站。

 

  • Environment information

填写这个微服务的名称, 并生成url,通过url开放的80或其他端口访问服务。

url也是全用户唯一,所以,早用早享受。

 

  • Additional Resources

选择是否创建RDS数据库和使用VPC,这里是创建数据库和VPC的选项,比较复杂,如果有已经有RDS和VPC了,就钩上,没有就算了,我会换一篇blog单独讲VPC和RDS的最佳实践。

 

  • Configuration Details

选择服务器的配置信息,Instance type是服务器大小配置,如果是简单个人使用的话,选择最便宜的t2.micro足够了,商业用途可以选择t2.small,搭建网站或者微服务的话,一般足够!不要选择大的类型,本来就很贵,还和我们auto scanning的思想不符合。

 

  • EC2 key pair

这个是ssh服务登录的key,如果你不准备登录这台服务器,没有key也无所谓。

下面的选项是选择磁盘类型,SSD大小,一般不会用到。

 

  • Environment Tag

tag在AWS中是非常重要的功能,这里设置的tag可以作为配置信息加载到服务器上,可以用来实现服务的环境变量配置,这里不展开讲。如果设置Name=full moon,那么beanstalk启动的服务在ec2console上显示的名字就是full moon,不设置也没关系。

 

  • Permissions

这里是AWS IAM的设置,IAM是非常复杂的系统,我会在另外的blog详细讲IAM的最佳实践。一般用户用不到,就默认选项即可。

 

  • Review Information

确认你的选项。

 

 

所有的配置都配置完之后,点击luanch,网站就启动了,只需要20秒!

在Beanstalk的application list界面,有了你的environment,点击进去,是网站运行的console。

  • DeshBoad

显示服务器监控,版本,recent log 信息

  • Configuration

可以view modify我们之前做的配置。AWS的配置可以提供非常强大功能。

  • Log

可以下载所有的服务器日志,包括系统日志。

  • Health
  • Monitoring
  • Alarms

是服务监控,比目前市面上所有的云计算厂商做的都好。

 

 

在Dashboad界面,抬头看到信息application  Environment ID: e-4mcdvvzi33, URL: application.cn-north-1.eb.amazonaws.com.cn ,其中URL即是部署为网站对外的url,如果有域名,在DNS解析配置CNAME等于URL,就可以把网址指向服务器了。

本博客就是用beanstalk的技术部署,但是在IAM,RDS,VPC的设置上是最佳实践,解决了安全问题。

 

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 685 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 6 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6551 引用 • 29424 回帖 • 246 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 2 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 443 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    103 引用 • 294 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖 • 1 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    4 引用 • 55 回帖 • 8 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    82 引用 • 122 回帖 • 621 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 42 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 71 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    40 引用 • 24 回帖
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 399 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 636 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 174 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    180 引用 • 447 回帖 • 1 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 247 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 2 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 513 关注