2013-06-10 4 views
7

AS название,
Моя IDE является IntelliJ идея 12.1.4,
Какой инструментарий или плагин мне нужно быть в состоянии развертывать веб-приложение clojure для Amazon EC2?Как развернуть веб-приложение Clojure на Amazon EC2 (AWS Elastic Beanstalk + Leiningen + Compojure + кольцо + Tomcat)

Есть ссылки для ссылок или этапов? спасибо

+2

Возможно, вы захотите взглянуть на [** Поддон **] (http://palletops.com/doc/first-steps/), он поддерживает AWS EC2. * «Поддон - это платформа для гибкой и программной автоматизации инфраструктуры в облаке, на серверных стойках или непосредственно на виртуальных машинах». * –

+0

Также вы должны посмотреть https://github.com/weavejester/lein-beanstalk. Это отличная библиотека, которая предлагает вам процесс развертывания одним щелчком, если вы используете AWS Elastic Beanstalk. – hsestupin

ответ

13

Если вы только разворачиваете военный файл без какой-либо другой пользовательской инфраструктуры, то использование EC2 напрямую является излишним, а эластичный beanstalk будет делать то, что вам нужно гораздо легче. Если вы выращиваете нечто большее и хотите разбить один клик, то поддон - отличный инструмент.

Существует много для поддонов, и это отличная библиотека для написания удивительно маленьких программ для такого рода вещей (и многое другое). Потратьте некоторое время, чтобы понять концепции поддона «узел», «сходиться» и т. Д., И дать себе много терпения. Как только вы пойдете с поддоном, это похоже на волшебство.

Место для начала - это руководство по началу работы с поддонами. просмотрите пример приветствия, который позволит вам настроить вашу учетную запись aws, а ключи - там, где они должны быть. Затем вы можете прочесть немного кода clojure, который создает экземпляр с последней версией вашего webapp на нем.

Вам потребуется:

  • поддон 0.8+
  • поддон ява клеть
  • собой группу спецификации, которая устанавливает Java и копирует файл война закончилась.
  • плагин для поддонов легко доступен, хотя и не требуется
  • много терпения, чтобы все наладилось.

Грубый набросок группы спецификации для этого будет выглядеть немного как

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

вы бы затем вызвать converge с веб-группой, либо создать или обновить свои серверы.

и, пожалуйста, прыгайте на #pallet на freenode, где дружелюбные люди (мои лимиты, включенные между ~ 10: 00 и ~ 18: 00 US-west) готовы помочь.