- PVSM.RU - https://www.pvsm.ru -

Derby.js deploy на Amazon EC2

Интенсивное развитие облачных сервисов не оставляет равнодушным. Нашe внимание остановилось на сервисе Amazon — Elasctic Cloud Compute. Возникла задача развернуть проект node.js использующий Derby [1]. 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 [2].
Запускаем 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 [3] или другой тулзой.

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

Автор: sfxws2006

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/44640

Ссылки в тексте:

[1] Derby: http://derbyjs.com/

[2] AWS Managment Console: https://console.aws.amazon.com/

[3] supervisord: http://supervisord.org/

[4] nodejs.org/: http://nodejs.org/

[5] derbyjs.com/#create_an_app: http://derbyjs.com/#create_an_app

[6] stackoverflow.com/questions/4018154/node-js-as-a-background-service: http://stackoverflow.com/questions/4018154/node-js-as-a-background-service

[7] redis.io/topics/quickstart: http://redis.io/topics/quickstart

[8] docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html

[9] Источник: http://habrahabr.ru/post/195812/