Javenue logo

Javenue

Программирование на Java

Информационные технологии

Запускаем Java приложение на Amazon хостинге - Туториал

Многие наверное удивились, что это с Javenue произошло, куда делся Wordpress? Все просто - я переписал блог на Java и переехал на Amazon хостинг. Если у вас тоже есть небольшой проект, то скорее всего вы сможете бесплатно разместить его на Амазоне на целый год.

Смело регистрируйтесь, а я пошагово расскажу как запустить свой первый инстанс.

1. После регистрации выберите регион. Я выбрал Frankfurt, так как он территориально ближе к моей целевой аудитории, чем Америка, Австралия или Восточная Азия. Но учтите, что в целом его обслуживание обходится чуть дороже.

2. В левом верхнем углу выберите сервис EC2 - Virtual Servers in the Cloud. В центре страницы будет надпись, что у вас нет серверов в этом регионе. А большая синяя кнопка предложит вам запустить новый инстанс - "Launch Instance".

3. Далее нужно выбрать AMI - Amazon Machine Image. Смело выбирайте Amazon Linux AMI.

Amazon Linux AMI

4. Выбираем тип инстанса. Единственный бесплатный тип на данный момент - это t2.micro. Грубо говоря, это компьютер с одним процессором с тактовой частотой порядка 3GHz и 1Gb оперативной памяти. Пропускная способность сети не очень высокая, но мне пока что хватает. Продвинутыми настройками заниматься пока что не будем. Нажимайте "Review and Launch".

5. Теперь вам будет предложено сгенерировать ключи для доступа к серверу. Сохраните их в надежном месте, так как больше возможности сгенерировать ключи не будет.

Поздравляю, вы запустили свой первый Amazon инстанс:

Your instances are now launching

Для того, чтобы зайти на свой сервер по SSH, нужно выполнить в консоли следующие команды:

    sudo ssh-add ~/.ssh/javenue.pem
    ssh ec2-user@50.50.50.50

Здесь ~/.ssh/javenue.pem это путь к сохраненным нами ранее ключам. ec2-user - это пользователь по-умолчанию для амазоновских серверов. Вместо 50.50.50.50 напишите IP-адрес своего сервера.

Теперь вы можете скопировать на сервер свое Java приложение и запустить его. Но дело в том, что по-умолчанию практически все порты на вашем сервере закрыты. Для того, чтобы открыть необходимые порты нужно зайти в Security Groups и добавить HTTP inbound правило:

HTTP inbound rule

Если же ваше веб-приложение работает на другом порту (у меня, например, на 8088), то вам придется установить Apache или NGinx. Я воспользовался nginx - как-то он поприятнее будет в плане настройки.

    sudo yum install nginx
    sudo /etc/init.d/nginx start

Теперь на 80 порту вы будете видеть страницу nginx.

Наконец, нам нужно настроить upstream для того, чтобы при заходе на 80 порт наши запросы редиректились на порт нашего приложения.

Для этого нужно открыть конфигурацию /etc/nginx/nginx.conf под sudo и добавить следующие записи:

upstream javenue {
  server localhost:8088 weight=10 max_fails=2 fail_timeout=20s;
}

server {
    listen	 80;
    server_name  javenue.info;
    return	 301 http://www.javenue.info$request_uri;
}

server {
    listen 80;
    server_name www.javenue.info;
    access_log j-access.log;
    charset utf-8;
    location / {
        proxy_pass http://javenue;
    }
}

Если название у upstream javenue, то proxy_pass должен быть http://javenue. Так же обратите внимание на то, что я добавил две конфигурации сервера. Первая конфигурация будет делать 301 редирект для запросов c javenue.info на www.javenue.info.

Не забудьте сделать перезагрузку nginx для того, чтобы изменения конфигурации вступили в силу:

    sudo service nginx restart

Ну вот и все. Надеюсь, ничего существенного не упустил. Если будут вопросы - пишите мне на glad2cu[at]gmail.



Комментариев: 2

  Выйти

  * для публикации комментариев нужно  

Dmytro Pastovenskyi:

Чем вордпрес так был тебе плох? Или свое всегда лучше?

Konstantin Chapiuk:

Помнишь историю про владельца кофейной компании, который поетрял крупного клиента из-за того, что на встрече с ним пил чай? А если честно, то тренируюсь перед стартом своего нового проекта )