如何在AWS Elastic Beanstalk

时间:2015-07-08 08:14:22

标签: amazon-web-services amazon-ec2 elastic-beanstalk

仅供参考......这里的背景是AWS Elastic Beanstalk。我正在尝试在64位Amazon Linux 2015.03 v1.4.3上安装audiowaveform程序(客户AMI ID为ami-6b50291c)。跑这个......

$ sudo yum install git cmake libmad-devel libsndfile-devel gd-devel boost-devel

...成功安装除libmad-devellibsndfile-devel以外的所有套餐。以下是相关输出......

Failed to set locale, defaulting to C
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/2015.03                                                        | 2.1 kB     00:00     
amzn-updates/2015.03                                                     | 2.3 kB     00:00     
Package git-2.1.0-1.38.amzn1.x86_64 already installed and latest version
Package cmake-2.8.12-2.20.amzn1.x86_64 already installed and latest version
No package libmad-devel available.
No package libsndfile-devel available.
Package gd-devel-2.0.35-11.10.amzn1.x86_64 already installed and latest version
Package boost-devel-1.53.0-14.21.amzn1.x86_64 already installed and latest version
Nothing to do

这是说,这不符合audiowaveform问题......所有这一切意味着,亚马逊的Linux AMI的启用仓库没有libmad-devellibsndfile-devel默认。我想我可能只需要添加自己的源代码。

另外需要注意的是yum不存在audio waveform个包,所以我必须手动构建它。

获取来源......

$ git clone https://github.com/bbcrd/audiowaveform.git
$ cd audio waveform

然后构建并安装......

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

问题1

在AWS EB上...... EC2实例配置为使用没有上述软件包的Amazon资源,即libmad-devellibsndfile-devel。添加这些软件包的推荐方法是什么,以便yum可以使用它们?

我强调推荐,因为我觉得改变亚马逊的来源不是最好的方法。也没有添加可能与亚马逊的软件包......等等冲突的其他来源......

问题2

假设我可以安装libmad-devellibsndfile-devel。我仍然需要手动构建它,因为没有audiowaveform的包。在AWS EB上,我可以编写一个脚本来实现这个,因为每个实例都被实例化了......但我觉得这不是理想的,慢的,有点容易出错。有人建议如何做得更好吗?

可能准备一个基于ami-6b50291c的已建成的AMI。想法?

核心目标

我不必使用audiowaveform ...我的目标实际上是提取某些音频(MP3)的峰值点。我将把它设置为一个单独的问题。

2 个答案:

答案 0 :(得分:1)

Amazon Elastic Beanstalk在您可以安装的软件方面受到很大限制。我通过dockerizing我的应用程序环境解决了它。现在即使在Elastic Beanstalk上也可以。

Learn more about Elastic Beanstalk's support for Docker ...

  

AWS Elastic Beanstalk使您可以轻松部署和管理   AWS云中的应用程序。上传您的申请后,   Elastic Beanstalk将提供,监控和扩展容量(亚马逊   EC2实例),同时还负载平衡所有的传入请求   健康的例子。

     

Docker以自动形式自动部署应用程序   轻便,便携,自给自足的容器,可以在一个   各种环境。可以从预先构建容器填充容器   Docker镜像或称为Dockerfile的简单配方。

     

Docker的基于容器的模型非常灵活。例如,你可以   在本地构建和测试容器,然后将其上载到AWS Cloud   用于部署和可扩展性。 Docker的自动部署模型   确保始终为您的应用程序提供运行时环境   无论您在何处决定,都要正确安装和配置   主持申请。

这样......您可以在容器中执行任何操作,并且该容器将在Amazon Linux AMI实例提供的内核上运行(显然完全隔离)。

答案 1 :(得分:0)

我也在某种程度上很难让yum在Amazon Linux AMI(RedHat 7.4)上找到libsndfile。我添加到yum的存储库似乎从未包含它。 (如何添加新的回购is described here

最后我直接下载并安装了rpms:

wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libsndfile-1.0.28-alt1.x86_64.rpm
wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libsndfile-devel-1.0.28-alt1.x86_64.rpm

sudo yum localinstall libsndfile-devel-1.0.28-alt1.x86_64.rpm

这样我最终得到了PySoundfile。

相关问题