2013-06-10 6 views
7

AS Titel einzusetzen,
Meine IDE ist IntelliJ IDEA 12.1.4,
Welche Toolkit oder Plugin muss ich in der Lage zu clojure Web-Anwendung auf Amazon EC2 zu implementieren?Wie eine clojure Web-Anwendung auf Amazon EC2 (AWS Elastic Beanstalk + Leiningen + Compojure + Ring + Tomcat)

Gibt es eine Verknüpfung oder Referenz oder Schritt für Schritt Lösung? Danke

+2

Vielleicht möchten Sie einen Blick auf [** Pallet **] (http://palletops.com/doc/first-steps/) werfen, es unterstützt AWS EC2. * "Pallet ist Plattform für agile und programmatische Automatisierung von Infrastruktur in der Cloud, auf Serverracks oder direkt auf virtuellen Maschinen." * –

+0

Auch Sie müssen sich https://github.com/weavejester/lein-beanstalk ansehen. Es ist eine großartige Bibliothek, die Ihnen einen Ein-Klick-Bereitstellungsprozess bietet, wenn Sie AWS Elastic Beanstalk verwenden. – hsestupin

Antwort

13

Wenn Sie nur eine WAR-Datei mit keiner anderen benutzerdefinierten Infrastruktur bereitstellen, dann ist die Verwendung von EC2 direkt Overkill und elastische Bohnenstange wird tun, was Sie viel einfacher brauchen. Wenn Sie etwas größer wachsen und ein Klick-Deployment möchten, dann ist die Palette ein großartiges Werkzeug.

Es gibt eine Menge zu Pallet und es ist eine großartige Bibliothek für das Schreiben erstaunlich kleine Programme für diese Art von Dingen (und vieles mehr). Nehmen Sie sich etwas Zeit, um die Palettenkonzepte von 'Knoten' 'Gruppe' 'Konvergenz' usw. zu verstehen, und geben Sie sich viel Geduld. Sobald Sie mit der Palette beginnen, fühlt es sich wie Magie an.

Der Ort zum Starten ist mit der Palette beginnen Führer. Gehen Sie durch das Beispiel "Hallo Welt", das sicherstellt, dass Ihr aws-Konto eingerichtet ist und die Schlüssel dort sind, wo sie sein müssen. Dann können Sie etwas Clojure-Code eingeben, der eine Instanz mit der neuesten Version Ihrer Webanwendung erstellt.

Sie benötigen:

  • Palette 0.8+
  • die Palette java Kiste
  • eine Gruppe spec, dass der Krieg Datei über Java und Kopien installiert.
  • die Palette lein Plugin ist nett, aber nicht erforderlich
  • viel Geduld, um Dinge zum Laufen zu bringen.

Eine grobe Skizze einer Gruppe spec hierfür wäre ein bisschen wie

(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])) 

schauen Sie dann converge mit web-Gruppe Ihre Server anrufen würde entweder erstellen oder aktualisieren.

und bitte hüpfen Sie auf #Pallet auf freenode, wo die freundlichen Leute (meine selbst enthalten zwischen ~ 10: 00 und ~ 18: 00 US-West) sind eifrig zu helfen.

Verwandte Themen