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

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

最近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的设置上是最佳实践,解决了安全问题。

 

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 227 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 316 关注
  • Redis

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

    286 引用 • 248 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 80 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 247 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    175 引用 • 3857 回帖
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 4 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • DevOps

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

    59 引用 • 25 回帖 • 3 关注
  • 反馈

    Communication channel for makers and users.

    121 引用 • 907 回帖 • 273 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    67 引用 • 114 回帖 • 193 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 2 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    56 引用 • 85 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖 • 7 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • 导航

    各种网址链接、内容导航。

    44 引用 • 177 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    63 引用 • 289 回帖
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 28 回帖 • 2 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 29 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 614 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 447 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 53 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 142 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 277 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 2 关注