Derby.js deploy на Amazon EC2

в 14:19, , рубрики: Amazon EC2, Amazon Web Services, Derbyjs, javascript, node.js, метки: , ,

Интенсивное развитие облачных сервисов не оставляет равнодушным. Наш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 или другой тулзой.

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

Автор: sfxws2006

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js