すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Node.js環境を手動でデプロイする

最終更新日:Jan 20, 2025

このトピックでは、開発者がNode.js開発環境またはランタイム環境を迅速かつスムーズに構築できるように、Node.js環境をElastic Compute Service (ECS) インスタンスに手動でデプロイする手順と注意事項について説明します。

前提条件

重要

Alibaba Cloud Linux 2およびCentOS 7.xは、Node.js 17.x以前のバージョンのデプロイのみをサポートしています。

ECSインスタンスが作成され、次の要件を満たしています。

  • インスタンスには、システムによってパブリックIPアドレスが割り当てられるか、EIP (elastic IP address) に関連付けられます。 詳細については、「パブリック帯域幅の有効化」をご参照ください。

  • オペレーティングシステムは、Alibaba Cloud Linux 3、Alibaba Cloud Linux 2、CentOS 7.x、Ubuntu 18.x以降、Debian 10.x以降、またはWindowsです。

  • インスタンスが属するセキュリティグループにインバウンドルールが追加され、リモートログオンとリモートデスクトップ接続をサポートするために、オープンポート22 (SSH) とポート3389 (RDP) が使用されます。 セキュリティを強化するために、アクセスするCIDRブロックのみを許可し、すべてのIPv4アドレス (0.0.0.0/0) にアクセス権限を付与しないことを推奨します。 セキュリティグループルールの追加方法については、「セキュリティグループルールの追加」をご参照ください。

Linux

Node.jsをLinuxにデプロイします。 この例では、ノード・バージョン・マネージャ (NVM) が使用される。 パッケージマネージャのインストールと比較して、NVMは、最新のNode.jsバージョンが得られることを保証するために、リポジトリバージョンによって制限されない。 プリコンパイルされたバイナリパッケージをダウンロードする方法と比較して、NVMは環境変数設定を必要としない。 ソースコードからコンパイルおよびインストールする方法と比較して、NVMはインストール時間を大幅に短縮し、ユーザーのコンパイルスキルを必要としません。 さらに、NVMはマルチバージョン管理をサポートしてバージョン切り替えを容易にし、インストールするNode.jsはsudo権限なしでホームディレクトリに配置され、セキュリティリスクを効果的に軽減します。

Node.jsのインストール

  1. Node.jsをインストールするインスタンスに接続します。 詳細については、「ワークベンチを使用したSSH経由のLinuxインスタンスへのログイン」をご参照ください。

  2. 分散バージョン管理システムGitをインストールします。

    • Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、またはCentOS 7.x

      sudo yum install git -y
    • Ubuntu 18.x以降またはDebian 10.x以降

      sudo apt update
      sudo apt install git -y
  3. Gitを使用してNVMのソースコードをオンプレミスの ~/.nvmディレクトリに複製し、最新のアップデートを確認します。

    説明

    NVMのソースコードは、ネットワークの問題のために複製できないことがある。 障害が発生した場合は、ソースコードを再複製することを推奨します。

    git clone https://gitee.com/mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
  4. 次のコマンドを順番に実行して、NVMの環境変数を設定します。

    sudo sh -c 'echo ". ~/.nvm/nvm.sh" >> /etc/profile'
    source /etc/profile
  5. 次のコマンドを実行してnpmイメージリポジトリをAlibaba Cloudイメージリポジトリに設定し、Node.jsのダウンロードを高速化します。

    export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
  6. 次のコマンドを実行して、Node.jsのバージョンを確認します。

    nvm list-remote
  7. 複数のNode.jsバージョンをインストールします。

    重要

    Alibaba Cloud Linux 2およびCentOS 7.xは、Node.js 7.x以降のみをサポートしています。 次のコマンドのバージョンをNode.js 17.x以降に置き換えます。 たとえば、Node.js 17.9.1をインストールするには、nvm install v17.9.1コマンドを実行します。

    1. Node.js 23.3.0をインストールします。

      nvm install v23.3.0
    2. Node.js 22.11.0をインストールします。

      nvm install v22.11.0
  8. 次のコマンドを実行して、インストールされているNode.jsのバージョンを確認します。

    nvm ls

    次のサンプルコマンド出力が返された場合、v22.11.0とv23.3.0がインストールされ、v22.11.0が使用されています。

    image

    説明

    nvm use <Version number> コマンドを実行して、Node.jsのバージョンを切り替えることができます。 たとえば、Node.js 23.3.0に切り替えるには、nvm use v23.3.0コマンドを実行します。

テストプロジェクトのデプロイ

  1. example.jsという名前のテストプロジェクトファイルを作成します。

    1. 次のコマンドを実行して、ホームディレクトリに戻ります。

      cd
    2. 次のコマンドを実行して、example.jsテストプロジェクトファイルを作成します。

      touch example.js
  2. example.jsプロジェクトファイルを変更します。

    1. 次のコマンドを実行して、example.jsファイルを開きます。

      vim example.js
    2. を押してください。私はキーを押して挿入モードに入り、次のコンテンツをexample.jsファイルを作成します。

      この例では、ポート3000はプロジェクトによって占有され、コマンド出力はHello Worldです。 ビジネス要件に基づいて、プロジェクトのコンテンツ (res.end) とポート番号 (const port) を設定できます。

      const http = require('http');
      const hostname = '0.0.0.0';
      const port = 3000;
      const server = http.createServer((req, res) => { 
          res.statusCode = 200;
          res.setHeader('Content-Type', 'text/plain');
          res.end('Hello World\n');
      }); 
      
      server.listen(port, hostname, () => { 
          console.log(`Server running at http://${hostname}:${port}/`);
      });
    3. 上記のコンテンツを追加した後、Escキーを押して挿入モードを終了します。 :wqと入力し、Enterキーを押してファイルを保存して閉じます。

  3. 次のコマンドを実行してプロジェクトを実行し、プロジェクトのポート番号を取得します。

    node ~/example.js &
  4. 次のコマンドを実行して、システムがリッスンしているポートを一覧表示します。

    netstat -tpln

    この例では、コマンド出力にポート3000が表示されます。これは、プロジェクトが期待どおりに実行されていることを示します。

  5. ECSインスタンスのセキュリティグループにインバウンドルールを追加して、指定されたポートを開きます。

    この例では、ポート3000が使用される。 セキュリティグループにルールを追加する方法については、「セキュリティグループルールの追加」をご参照ください。

    image

  6. WindowsコンピューターまたはインターネットにアクセスできるWindowsコンピューターで、ブラウザーを開き、アドレスバーにhttp:// <ECSインスタンスのパブリックIPアドレス >:< ポート番号> と入力します。

    この例では、<ポート番号> が3000に設定されています。 プロジェクトにアクセスすると、次のページが表示されます。

Windows

Windowsでは、Node.jsデプロイメントに対応するインストールパッケージを公式Webサイトからダウンロードできます。

Node.jsのインストール

  1. Node.jsをインストールするインスタンスに接続します。 詳細については、「Workbenchを使用したRDP経由のWindowsインスタンスへの接続」をご参照ください。

  2. Node.jsの公式Webサイトにアクセスし、上部のナビゲーションバーの [ダウンロード] をクリックします。

    image

  3. インストールパッケージのダウンロード

    ダウンロードページにはさまざまなインストール方法があります。 各方法は、さまざまなニーズや好みに適しています。 この例では、Prebuilt Installerが選択されています。

    説明

    長期サポート (LTS) のラベルが付いたバージョンを選択します。これは、バージョンが長期間テストされており、比較的安定していることを示します。

    インストール方法

    説明

    パッケージマネージャ

    npm、apt、yum、brewなどのオペレーティングシステムのパッケージマネージャーを使用してNode.jsをインストールします。

    Prebuiltインストーラ

    オペレーティングシステム用に事前にコンパイルされたインストールパッケージを使用して、次のようなNode.jsをインストールします。Windows用のmsiファイルまたはa。macOS用のpkgファイル。 このようなパッケージには、Node.jsランタイムとnpmが含まれ、通常は必要な依存関係が含まれます。

    事前に構築されたバイナリ

    プラットフォーム用にコンパイルされたNode.js実行可能ファイルを使用してNode.jsをインストールします。 インストールウィザードは提供されません。 パッケージを手動で解凍し、環境変数を設定する必要があります。

    ソースコード

    ソースコードを使用してNode.jsをインストールします。 パッケージを解凍した後、特定のコマンドまたはスクリプトを使用して、Node.jsをインストールするソースコードを構成およびコンパイルする必要があります。

  4. ダウンロードしたインストールパッケージをダブルクリックし、インストールウィザードに従ってNode.jsをインストールします。

    image

  5. コマンドプロンプトまたはPowerShellを開きます。

    image

  6. コマンドプロンプトウィンドウで、node -vnpm -vと入力し、enterキーを押します。 次の図のような出力の場合、Node.jsがインストールされます。

    image

テストプロジェクトのデプロイ

  1. newfolderという名前のテストプロジェクトフォルダーとexample.txtファイルを作成します。

    image

  2. example.txtファイルをダブルクリックし、次の内容をコピーしてファイルに貼り付けます。

    この例では、ポート3000はプロジェクトによって占有され、コマンド出力はHello Worldです。 ビジネス要件に基づいて、プロジェクトのコンテンツ (res.end) とポート番号 (const port) を設定できます。

    const http = require('http');
    const hostname = '0.0.0.0';
    const port = 3000;
    const server = http.createServer((req, res) => {
        // Set the status code to 200.
        res.statusCode = 200;
        // Set the content type to plaintext.
        res.setHeader('Content-Type', 'text/plain');
        // Add the Cache-Control header to disable caching.
        res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
        // Add the Pragma header to disable caching to be compatible with the old browser.
        res.setHeader('Pragma', 'no-cache');
        // Set the Expires header to a past date, which makes the content immediately expire. Alternatively, specify a specific expiration date, such as 'Expires: Tue, 03 Jul 2001 06:00:00 GMT'.
        res.setHeader('Expires', '0'); 
        // Send the response body.
        res.end('Hello World\n');
    });
    // Listen on the specified port and hostname.
    server.listen(port, hostname, () => {
        console.log(`Server running at http://${hostname}:${port}/`);
    });
  3. example.txtファイルのサフィックスをexample.jsに変更します。 image

  4. プロジェクトディレクトリに移動し、npm initコマンドを実行してプロジェクトを初期化します。 package.jsonファイルを生成するように指示されたプロジェクト情報を入力します。image

  5. Node example.jsコマンドを実行して、node. jsプロジェクトを実行します。 Node.js環境を正常にデプロイすると、Node.jsサーバーが実行され、関連情報が表示されます。 image

  6. インバウンドセキュリティグループルールをECSインスタンスのセキュリティグループに追加して、プロジェクトで設定されたポート3000を開きます。 詳細については、「セキュリティグループルールの追加」をご参照ください。image

  7. インターネットにアクセスできるWindowsホストまたはWindowsホストで、ブラウザを開き、http:// <ECSインスタンスのパブリックIPアドレス >:< プロジェクトポート番号> を入力します。

    この例では、<ポート番号> が3000に設定されています。 プロジェクトにアクセスすると、次のページが表示されます。image