Pull to refresh

Derby.js deploy на Amazon EC2

Reading time2 min
Views4.6K
Интенсивное развитие облачных сервисов не оставляет равнодушным. Нашe внимание остановилось на сервисе Amazon — Elasctic Cloud Compute. Возникла задача развернуть проект node.js использующий Derby. Amazon Elastic Beanstalk так же поддерживает node.js, однако мы ограничимся только сервисом Amazon EC2. Кроме того «из коробки» Amazon Elastic Beanstalk предлагают Amazon Linux с предуставновленным node.js + nginx. В нашем случае Amazon Linux не подходит, версия node.js и связка node.js+nginx также.,

Создание инстанса и коннект к EC2 серверу


Предполагается, что вы зарегистрированы в AWS, и имеете доступ в AWS Managment Console.
Запускаем EC2 Instance:
  1. Заходим в AWS Managment Console
  2. Выбираем регион (в нашем случае US East (N.Virginia) )
  3. Переходим Services -> Compute & Nerworking -> EC2
  4. Launch Instance: Выбираем Ubuntu Server 13.04 x64, настраиваем ключи, и другие необходимые параметры, в т.ч. Instance Type (в нашем случае t1.micro)
  5. После создание в списке инстансов наблюдаем как наш сервер получит state running
  6. Соединяемся с сервером по ssh: для этого в списке инстансов нажимаем правой кнопкой на нужном, выбираем Connect -> Connect with a standalone SSH Client
    Будет что-то типа:
    $ ssh -i yourkey.pem ubuntu@ec2-184-119-234-139.us-east-1.compute.amazonaws.com
    
  7. Коннектимся к серверу по параметрам полученым в пункте 6.

Мы будем использовать такую связку: node.js+derby+redis+mongodb
Последовательно установим нужные пакеты.

Устанавливаем Node.js.


Для Derby.js будем использовать версию node.js 0.10.17
  1. Качаем исходники:
    $ wget http://nodejs.org/dist/v0.10.17/node-v0.10.17.tar.gz
    
  2. Распаковываем:
    $ tar -xvf node-v0.10.17.tar.gz
    $ cd  node-v0.10.17
    
  3. Устанавливаем:
    	$ sudo apt-get -y install checkinstall
    	$ checkinstall -D --install=no --nodoc --pkgversion=0.10.17 --pkgname="Node.js 0.10.17"
    	$ sudo dpkg -i node*.deb
    	
  4. Устанавливаем DerbyJS:
    $ sudo npm install -g derby
    


Устанавливаем Redis 2.6.16


  1. Скачиваем:
    $ wget http://download.redis.io/releases/redis-2.6.16.tar.gz
    
  2. Распаковываем:
    $ tar -xvf redis-2.6.16.tar.gz
    $ cd redis-2.6.16
    
  3. Устанавливаем:
    $ sudo checkinstall -D --install=no --nodoc --pkgversion=2.6.16 --pkgname="Redis 2.6.16"
    $ sudo dpkg -i redis*.deb
    
  4. Настраиваем
    $ sudo mkdir /etc/redis
    $ sudo mkdir /var/redis
    $ sudo cp utils/redis_init_script /etc/init.d/redis
    $ sudo cp redis.conf /etc/redis/6379.conf
    $ sudo vi /etc/redis/6379.conf
    
    указываем параметры
    daemonize yes
    logfile /var/log/redis.log
    dir /var/redis/
    
    сохраняем файл
  5. Запускаем сервис:
    $ sudo service redis start
    
  6. Добавляем в автозагрузку:
    $ sudo update-rc.d redis defaults
    
  7. Проверяем:
    $ redis-cli
    redis 127.0.0.1:6379> ping
    PONG
    redis 127.0.0.1:6379> exit
    


Устанавливаем MongoDB


  1. Установка:
    sudo apt-get -y install mongodb
    
  2. Проверяем статус:
    $ service mongodb status
    
    Пример ответа:
    mongodb start/running, process 24815

Создаем приложение Derby


  1. Создание
    $ mkdir ~/www
    $ cd ~/www
    $ derby new myapp
    $ cd myapp
    
  2. Проверяем запуск:
    $ nmp start
    


Запускаем как демон


Пожалуй один из простых способов:
$ cd ~/www/myapp
$ nohup node server.js &
Также можно воспользоваться supervisord или другой тулзой.

Ссылки / источники


Tags:
Hubs:
+8
Comments10

Articles