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.
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." * –
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