LoginSignup
2
3

More than 5 years have passed since last update.

Lightsailでnodejs+Expressでサーバーを公開するまで

Last updated at Posted at 2018-10-13

Lightsailで気軽にサーバー公開

Lightsail+nodejs+Expressでサーバー公開。開発環境はCloud9を使用。
ご丁寧に、Amazonがチュートリアルを用意しているのでそれを活用する
https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/lightsail-instances.html

※Cloud9はブラウザで開発出来るとっても便利なIDE。もうVimを弄ったりする必要は無いのです。いい時代になったものですね。

IDEとしてCloud9を使用する場合にはリージョンで日本を選択出来ませんので、シンガポールでインスタンスを作成。
その他はチュートリアル通りに進めればCloud9で開発出来る環境が整うはず。

追記:STEP3で、Cloud9を開く際にこのようなエラーが発生しました。
awserror.png

既にPythonは環境にインストールされているように見えるのですがなぜ怒られるのか分かりません。以下を実行する事で解決します。
sudo apt-get install python

この後はCloud9でhello worldコードを作成

hello.js
var http = require('http');
var server = http.createServer();
server.on('request', function(req, res){
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('hello world');
    res.end();
});
server.listen(3000, '127.0.0.1');
console.log("server listening ...");

Lynx等でターミナルから127.0.0.1:3000でhello worldが表示されるのを確認(心配性なので)その後ソースをserver.listen(3000, '0.0.0.0');に書き換え
Lightsailの設定でポート3000を開いておく
lightsail.png

これで、ブラウザでアクセスすればhello worldが表示されるはず。
http://IPアドレス:3000

しかし毎回:3000でアクセスするのはかっこ悪いので、
ターミナルでsudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000で、ポート80にリダイレクトしておくと:3000を付けなくても良い。

続いてExpressをインストールし、サンプルアプリ(ひな形)をインストール

sudo npm install express -g (グローバル環境にexpressをインストール)
sudo apt install node-express-generator(generatorをインストール)
express test-dev(test-dev以下のディレクトリにサンプルアプリをインストール)
cd test-dev(test-devに移動)
npm install(依存するモジュールをインストール)
node app(アプリケーションを実行)

Lightsailは定額なのでテスト環境を気軽に構築するのに向いていると思います。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3