如何将clojure Web应用程序部署到Amazon EC2(AWS Elastic Beanstalk + Leiningen + Compojure + Ring + Tomcat)

use*_*652 7 deployment clojure amazon-ec2 compojure amazon-elastic-beanstalk

AS标题,
我的IDE是intellij idea 12.1.4,
我需要什么工具包或插件才能将clojure Web应用程序部署到Amazon EC2?

是否有任何链接或参考或逐步解决方案?谢谢

Art*_*ldt 13

如果您只是部署一个没有其他自定义基础结构的war文件,那么直接使用EC2就是过度杀伤,而弹性beanstalk将更容易地完成您的需要.如果你正在发展更大的东西,并希望一键部署,那么托盘是一个很好的工具.

Pallet有很多东西,它是一个很棒的库,可以编写非常小的程序来完成这类工作(还有更多).花一些时间来理解"节点"组"融合"等的托盘概念,并给自己足够的耐心.一旦你开始使用托盘,感觉就像魔术一样.

开始的地方是托盘入门指南.通过hello world示例,确保您的aws帐户已设置,密钥是他们需要的位置.然后你可以使用一些clojure代码来创建一个带有最新版webapp的实例.

你会需要:

  • 托盘0.8+
  • 托盘java箱子
  • 一个安装java并将war文件复制过来的组规范.
  • 托盘lein插件很不错,但不是必需的
  • 有很多耐心去做事情.

这个组规范的粗略轮廓看起来有点像

(def java-server
  (java/server-spec
   {:vendor :oracle
    :components #{:jdk}
    :version [7]})) 

(def webserver
 (node-spec
   :image {:os-family :ubuntu} 
   :hardware {:min-cores 1 :min-ram (* 2 1024)}
   :phases {:configure
            (plan-fn
               (package-manager :update)
               (package "tomcat7")
            (remote-file "/var/lib/tomcat7/webapps/myapp.war"
               :local-file "target/myApp.war"
               :owner "tomcat7"
               :group "tomcat7"
               :mode 755))

(def web-group
 (group-spec
   "my-websertvers"
   webserver
   :extends [java-server]))
Run Code Online (Sandbox Code Playgroud)

然后converge,您将与web-group 通话以创建或更新您的服务器.

并请跳上#pallet freenode上,友好的人们(包括〜10之间我的自我:00〜18:00美国西部)的热心帮助.