#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を開く際にこのようなエラーが発生しました。
既にPythonは環境にインストールされているように見えるのですがなぜ怒られるのか分かりません。以下を実行する事で解決します。
sudo apt-get install python
この後はCloud9でhello worldコードを作成
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を開いておく
これで、ブラウザでアクセスすれば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は定額なのでテスト環境を気軽に構築するのに向いていると思います。