この記事では、Cloud Toolkitを使ってAlibaba Cloud ECSインスタンスにNode.jsアプリケーションをデプロイする方法を紹介します。
本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。
前回の記事では、Alibaba Cloud Elastic Compute Service (ECS) インスタンスに直接ローカル Java アプリケーションをデプロイする方法について説明し、読者から多くのフィードバックをいただきました。そこで、読者からの質問に答えるために、今回の記事ではさらに、Alibaba Cloud ECSインスタンスにNode.jsアプリケーションをデプロイする方法をご紹介します。
#ローカルでアプリケーションを開発する
この記事では、Webページに「Hello World」を印刷するNode.jsアプリケーションを例に、デプロイ方法を解説します。
const http = require('http');
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Alibaba Cloud Toolkit: Hello World');
});
server.listen(port, '0.0.0.0', () => {});
前述のコードは、Webページに「Hello World」という文字列を表示するための標準的なNode.jsプロジェクトです。
#プラグインのインストール
Alibaba Cloudは、開発者がローカルIDEで書かれたアプリケーションをECSインスタンスに効率的にデプロイできるようにするEclipseベースのプラグインを提供しています。
プラグインのURL: https://www.aliyun.com/product/cloudtoolkit_en
このEclipseベースのプラグインのインストール手順は、一般的なプラグインと似ているため、ここでは詳細を説明しません。
#プラグインの環境設定
プラグインをインストールしたら、選択して環境設定を行います。
トップメニュー > ウィンドウ > 環境設定 > Alibaba Cloud Toolkit > アカウント
以下のページが表示されたら、Alibaba CloudアカウントのAKとSKを設定して、環境設定の設定は完了です(RAMユーザーアカウントを使用している場合は、RAMユーザーのAKとSKを入力してください)。
#アプリケーションのデプロイ
Eclipseでプロジェクト名を右クリックし、ショートカットメニューからAlibaba Cloud > Deploy to ECSを選択します。以下のようなデプロイ画面が表示されます。
デプロイメント設定ダイアログボックスで、デプロイメントパラメータを設定し、デプロイをクリックして初期デプロイを完了します。
/root/nodejs-demo/restart.shファイルには、以下の内容が含まれています。
source ~/.bash_profile
killall node
nohup node /root/nodejs-demo/helloworld.js > nohup.log 2>&1 &
#配置パラメータの説明
- Deploy File: 2つのオプションがあります。オプションのUpload FileはNode.jsプロジェクトで使用します。
- Maven ビルド:現在のプロジェクトのビルドに Maven を使用している場合、Alibaba Cloud Toolkit を使用してアプリケーションを直接ビルドしてデプロイすることができます。
- ファイルのアップロード: 現在のプロジェクトのビルドにMavenを使用していない場合、またはローカルにパッケージ化されたデプロイファイルが既に存在する場合、ローカルのデプロイファイルを選択して直接アップロードすることができます。
- デプロイする ECSの選択:ドロップダウン リストからリージョンを選択し、そのリージョンにデプロイするECSインスタンスを選択します。
- デプロイ先の場所:ECS インスタンス上のデプロイパスを入力します。
- コマンド:アプリケーションの起動コマンドを入力します。このパラメータは、デプロイが完了した後に実行するコマンドを指定します。Node.js プログラムの場合、通常は起動コマンド node XXX.js です。
アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ