张丹张丹,《R的极客理想》系列图书作者,民生银行金融大数据分析师,前况客创始人兼CTO.
12年IT编程背景,4年量化投资经验,金融大数据专家.
精通R,Java,Nodejs编程语言,曾获得10项SUN及IBM技术认证.
丰富的互联网应用开发架构经验,掌握大数据处理、数据挖掘机器学习等核心技术,熟悉金融二级市场、交易规则和投研体系.
博客http://fens.
me,Alexa全球排名70k.
作者介绍《R的极客理想》系列图书3Shiny是R语言中一个神级的应用,唯一的缺点就是不支持并发.
我们很多时候都是做本地Shiny应用,用于展示各种报表的效果.
但有时候也需要把报表上传到互联网上,其他人也能看到.
这样就需要一个互联网的解决方案,刚好AWS有了免费的服务器支持.
简直是完美!
!
前言在AWS上部署免费的Shiny应用41.
Shiny是什么2.
本地开发一个Shiny小应用3.
申请AWS免费服务器4.
在AWS上安装R语言环境5.
在AWS上安装ShinyServer6.
在AWS上部署自己的Shiny应用7.
番外篇目录在AWS上部署免费的Shiny应用5Shiny是RStudio公司开发的,一个用于R语言的Web应用程序框架,可以轻松开发交互式web应用,不需要了解HTML,CSS,JS等前端知识.
Shiny构建出应用的惊艳程度,远远超过了说明的文字.
一定要学学,下面是一个Shiny小程序的截图.
1.
Shiny是什么在AWS上部署免费的Shiny应用61.
Shiny是什么在AWS上部署免费的Shiny应用7Shiny的主页:http://shiny.
rstudio.
com/我们安装Shiny可以直接从CRAN获取,通过一行R程序就可以安装了.
1.
Shiny是什么在AWS上部署免费的Shiny应用81.
Shiny是什么2.
本地开发一个Shiny小应用3.
申请AWS免费服务器4.
在AWS上安装R语言环境5.
在AWS上安装ShinyServer6.
在AWS上部署自己的Shiny应用目录在AWS上部署免费的Shiny应用9下面我们用Shiny开发一个小应用的实例,主要是为介绍Shiny的用法,包括网页的界面UI和后端程序,数据源使用R语言自带的一个数据集.
数据集是faithful,统计的是美国黄石国家公园的泉水(OldFaithfulgeyser)喷发的持续时间和喷发等待时间.
2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用10数据集包括2列eruptions为喷发持续时间waiting为喷发的等待时间.
2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用11Shiny应用,分为定义了客户端程序ui.
R,和服务器端程序server.
R,这2个文件默认要求放同一个目录中.
另外,我们还需要一个启动文件run.
R,用于启动Shiny的应用.
当然,如果在RStudio中开发,就不需要run.
R的文件,直接点Shiny应用的启动按钮就行了.
2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用12目录结构如下:2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用13编辑文件:server.
R2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用14编辑文件:ui.
R2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用15编辑文件:run.
R2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用16启动Shiny应用时,本地的3840端口,就被打开了.
2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用17我们可以用浏览器,来访问本地的服务http://127.
0.
0.
1:3840.
2.
本地开发一个Shiny小应用在AWS上部署免费的Shiny应用181.
Shiny是什么2.
本地开发一个Shiny小应用3.
申请AWS免费服务器4.
在AWS上安装R语言环境5.
在AWS上安装ShinyServer6.
在AWS上部署自己的Shiny应用目录在AWS上部署免费的Shiny应用19AWS是Amazon提供的一个云服务平台,软件开发人员可以轻松购买计算、存储、数据库和其他基于Internet的服务来支持其应用程序.
免费的套餐,让互联网用户可以免费的使用他的资源,包括了服务器,数据库,CDN,负载均衡等服务.
首先,你需要注册一个AWS账号,然后登录进去,选择地区,申请免费的服务器.
目前免费开放的区域不包括中国区,我选择了一个日本东京的服务器,UbuntuLinux64bit.
3.
申请AWS免费服务器在AWS上部署免费的Shiny应用203.
申请AWS免费服务器在AWS上部署免费的Shiny应用213.
申请AWS免费服务器在AWS上部署免费的Shiny应用免费的资源,有一些限制,只能1核心CPU,1G内存,最大30G存储等.
22大概等3分钟,服务器启动完成,然后就可以通过SSH进行访问了.
3.
申请AWS免费服务器在AWS上部署免费的Shiny应用23AWS为了保证安全性,建议使用秘钥访问,所以你需要创建一个秘钥对,下载一个xx.
pem的私钥,然后配到Putty或XShell等用于远程登录的客户端里.
3.
申请AWS免费服务器在AWS上部署免费的Shiny应用241.
Shiny是什么2.
本地开发一个Shiny小应用3.
申请AWS免费服务器4.
在AWS上安装R语言环境5.
在AWS上安装ShinyServer6.
在AWS上部署自己的Shiny应用目录在AWS上部署免费的Shiny应用25登录后,我们就可以安装R语言的环境了.
安装过程比较简单,默认版本的R语言环境,直接使用是apt-get命令就是最方便的.
服务器所使用的系统环境LinuxUbuntu16.
04.
2LTS64-bitR:3.
2.
3x86_64-pc-linux-gnu(64-bit)4.
安装R语言环境在AWS上部署免费的Shiny应用26我们先更新apt的软件源,安装必备的系统软件,包括r-base和git,以及的Shiny应用的依赖库libcurl4-openssl-dev,libxml2-dev.
如果你忘了装了,后面再装也都不影响.
4.
安装R语言环境在AWS上部署免费的Shiny应用27接下来,让我们安装R语言的依赖包.
这里有一个小技巧,就是在R语言的环境中安装第三方R包,并切换成root用户.
4.
安装R语言环境在AWS上部署免费的Shiny应用28我们需要预装的包,主要就是shiny,当然如果你还有依赖其他的包,需要一块安装.
安装时,R会让我们选择软件源,如果用https协议的镜像列表,你需要配置一下curl进行下载.
你依然可以选择用http协议的镜像列表,选61之后,会出现http的镜像列表.
4.
安装R语言环境在AWS上部署免费的Shiny应用291.
Shiny是什么2.
本地开发一个Shiny小应用3.
申请AWS免费服务器4.
在AWS上安装R语言环境5.
在AWS上安装ShinyServer6.
在AWS上部署自己的Shiny应用目录在AWS上部署免费的Shiny应用30在开发时,我们其实只是用到了shiny的R语言第三方包,可以在本地的开发环境,运行Shiny的程序.
那么,如果把一个Shiny放到公司内网或外网给其他人用呢这时就是需要ShinyServer了.
顺利安装完R的依赖包,接下来就是要安装ShinyServer了.
ShinyServer是一个单独的软件,目前还不支持通过apt-get或R本身进行安装,需要下载安装.
5.
安装ShinyServer在AWS上部署免费的Shiny应用31ShinyServer提供一个稳定的Shiny应用在线的运行环境,ShinyServer分成开源版本和企业版本.
开源版本,提供了基本的Shiny功能,数据、可视化、运行环境,对于个人来说已经足够用了,而且非常友好.
企业版本,提供安全和管理功能添加到基本的开源版本中.
RStudio公司出品,必属精品!
!
ShinyServer是一个单独的软件,我们需要下载进行安装,下载地址:https://www.
rstudio.
com/products/shiny/shiny-server/5.
安装ShinyServer在AWS上部署免费的Shiny应用32在Ubuntu的环境中,我们可以通过下面的命令,进行下载和安装.
5.
安装ShinyServer在AWS上部署免费的Shiny应用33运行完安装的命令,默认情况ShinyServer会被直接启动起来,其中3838的端口被打开.
检查启动端口5.
安装ShinyServer在AWS上部署免费的Shiny应用34我们可以通过浏览器,直接基于IP和端口进行ShinyServer的访问了.
5.
安装ShinyServer在AWS上部署免费的Shiny应用35打开的页面是默认的ShinyServer的网页,如果和上面的截图一样,说明你的ShinyServer安装成功了.
提醒一下,AWS的EC2的主机,一定要配置网络访问策略,打开3838端口,允许外部访问,不然一直都是无法访问此网站的错误.
5.
安装ShinyServer在AWS上部署免费的Shiny应用361.
Shiny是什么2.
本地开发一个Shiny小应用3.
申请AWS免费服务器4.
在AWS上安装R语言环境5.
在AWS上安装ShinyServer6.
在AWS上部署自己的Shiny应用目录在AWS上部署免费的Shiny应用37最后一步,把我们自己开发的Shiny应用,部署到AWS的EC2上面.
代码上传的过程,我们可以基于github来完成.
1.
在github上面,新建一个项目,名为shiny-demo.
2.
把本地开发的代码,上传到github的shiny-demo项目中.
3.
在AWS的EC2上,从github的shiny-demo项目中,下载代码.
4.
在AWS的EC2上,修改ShinyServer的配置,加载项目代码.
5.
在AWS的EC2上,重启ShinyServer,发现错误.
6.
在AWS的EC2上,查看日志修复错误.
7.
在浏览器上访问,自己的Shiny应用.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用386.
1.
在github上面创建项目,名为shiny-demo.
github操作过程省略.
项目地址https://github.
com/bsspirit/shiny-demo.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用396.
2把本地开发的代码,上传到github的shiny-demo项目中.
切换到本地开发的环境.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用406.
3在AWS的EC2上,从github的shiny-demo项目中,下载代码.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用416.
4在AWS的EC2上,修改ShinyServer的配置,加载项目代码.
编辑shiny-server的配置文件shiny-server.
conf.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用426.
5在AWS的EC2上,重启ShinyServer,发现错误.
重启ShinyServer,虽然只是重启,但经常出现错误.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用43重启后,就可以在浏览器上,访问自己的Shiny应用了.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用446.
6在AWS的EC2上,查看日志,修复错误.
主要的调试的方法,就是检查ShinyServer的日志.
日志在设置上,有一个很大的坑,我也是在挠头搞了3个小时后才发现的.
由于ShinyServer为了保证性能,所以非敏感性的错误日志被设置了自动清除,每当你出现了错误,要去看日志定位问题的时候,这个日志就刚好被自动清除了.
坑很大!
!
都开始怀疑人生了.
所以,你在调试时需要修改一个参数,保证日志不会被自动清除.
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用45发现问题,检查日志,我们对应日志的解决问题.
很多情况下,诡异的错误都是缺少第三方包造成的,当你程序中使用了第三包的时候,一直要记得在Shiny的服务器上面安装好.
记得用root用户!
!
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用46总结一下,我们利用免费的AWS的EC2服务器资源,发布了自己的Shiny应用,是多么的开心啊!
这样以后就可以大胆地去开发自己喜欢的Shiny应用了,当然不只是Shiny应用,你可以利用AWS的免费资源,做更多的事情.
老司机,都明白的!
!
6.
部署自己的Shiny应用在AWS上部署免费的Shiny应用47原本是准备把一个基于赌场原型的Shiny应用放到互联网,考虑服务器位置和选型的问题,无意中发现了AWS的免费资源,这样就有了这样的一篇Shiny与AWS结合的文章.
要不要分析一下赌场的模型呢.
番外篇在AWS上部署免费的Shiny应用48把中国金融二级市场,在游戏里重新实现.
参与者可以扮演下面的角色:中央银行,商业银行,交易所,券商,证监会,银监会,散户,私募,做市商,配资机构,保险机构….
使用市场的规则,用模型改进交易策略,让游戏平衡,增加博弈的维度.
番外篇在AWS上部署免费的Shiny应用49番外篇在AWS上部署免费的Shiny应用新书《R的极客理想-量化投资篇》,将在2017年8月由机械工业出版社出版.
欧路云(oulucloud) 商家在前面的文章中也有陆续介绍过几次,这不今天有看到商家新增加美国Cera线路的VPS主机,而且有提供全场八折优惠。按照最低套餐最低配置的折扣,月付VPS主机低至22元,还是比较便宜的。不过我们需要注意的是,欧路云是一家2021年新成立的国人主机商,据说是由深圳和香港的几名大佬创建。如果我们有介意新商家的话,选择的时候谨慎且月付即可,注意数据备份。商家目前主营高防VP...
WebHorizon是一家去年成立的国外VPS主机商,印度注册,提供虚拟主机和VPS产品,其中VPS包括OpenVZ和KVM架构,有独立IP也有共享IP,数据中心包括美国、波兰、日本、新加坡等(共享IP主机可选机房更多)。目前商家对日本VPS提供一个8折优惠码,优惠后最低款OpenVZ套餐年付10.56美元起。OpenVZCPU:1core内存:256MB硬盘:5G NVMe流量:200GB/1G...
创梦网络怎么样,创梦网络公司位于四川省达州市,属于四川本地企业,资质齐全,IDC/ISP均有,从创梦网络这边租的服务器均可以****,属于一手资源,高防机柜、大带宽、高防IP业务,另外创梦网络近期还会上线四川眉山联通、广东优化线路高防机柜,CN2专线相关业务。广东电信大带宽近期可以预约机柜了,成都优化线路,机柜租用、服务器云服务器租用,适合建站做游戏,不须要在套CDN,全国访问快,直连省骨干,大网...