Amazon LinuxでNode.jsをインストールする
Amazon LinuxでNode.jsをyumでインストールする方法
Node.jsは、JavaScriptのランタイム環境で、サーバーサイド開発やフロントエンド開発に広く使われています。Amazon Linuxは、Amazon Web Services (AWS)で提供されるLinuxディストリビューションです。このガイドでは、Amazon Linux上でNode.jsをyumパッケージマネージャーを使ってインストールする方法を説明します。
yumパッケージリポジトリの更新
まずは、yumパッケージマネージャーのキャッシュを更新します。
sudo yum update
Node.jsパッケージのインストール
Node.jsは、デフォルトではAmazon Linuxの公式リポジトリには含まれていません。そのため、NodeSourceというサードパーティのリポジトリを追加する必要があります。
sudo curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo -E bash -
sudo yum install -y nodejs
このコマンドは、Node.jsのバージョン18.xをインストールします。必要なバージョンに合わせて、18.x
の部分を変更してください。
インストールの確認
インストールが完了したら、Node.jsとnpm (Node Package Manager)のバージョンを確認します。
node -v
npm -v
これで、Amazon Linux上でNode.jsが正常にインストールされました。
Node.jsの使用
Node.jsを使ってJavaScriptのプログラムを実行するには、以下のようにします。
node your_script.js
your_script.js
は、作成したJavaScriptファイルの名前です。
npmを使ってNode.jsのパッケージを管理することもできます。例えば、Expressフレームワークをインストールするには、以下のようにします。
npm install express
これで、Expressフレームワークがプロジェクトにインストールされます。
Amazon LinuxでNode.jsをインストールし、簡単なWebサーバーを立てる例
Node.jsとExpressのインストール
先ほど解説した手順でNode.jsをインストールした後、Expressフレームワークをインストールします。Expressは、Node.jsでWebアプリケーションを簡単に作成するためのフレームワークです。
npm install express
簡単なWebサーバーの作成
以下のコードをapp.js
という名前で保存します。
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(port, () => {
console.log(`Example app listening on port ${p ort}`);
});
サーバーの起動
保存したapp.js
を実行します。
node app.js
これで、http://localhost:3000/ にアクセスすると、「Hello, World!」と表示されます。
コード解説
app.listen(port, () => { ... });
: 指定したポートでサーバーを起動します。app.get('/', (req, res) => { ... });
: ルート(http://localhost:3000/)へのGETリクエストに対する処理を定義します。res.send()
でレスポンスを送信します。const port = 3000;
: サーバーが使用するポート番号を指定します。const app = express();
: Expressアプリケーションを作成します。const express = require('express');
: Expressモジュールをインポートします。
AWS上で実行する場合
AWSのEC2インスタンスで上記の手順を実行した場合、インスタンスの公開IPアドレスにアクセスすることで、外部からWebサーバーにアクセスできます。
- データベース: MongoDB、MySQLなど、様々なデータベースと連携できます。
- デプロイ: AWS Elastic BeanstalkやAWS EC2 Container Serviceなど、様々な方法でNode.jsアプリケーションをデプロイできます。
- npm start: package.jsonにscriptsが定義されている場合、
npm start
でアプリケーションを起動できます。
より高度な開発
- テンプレートエンジン: Pug、EJSなど、テンプレートエンジンを使って動的なWebページを作成できます。
- ミドルウェア: Expressは、リクエストとレスポンスを処理するためのミドルウェア機能を提供します。
- フレームワーク: Express以外にも、Koa.js、NestJSなど、様々なNode.jsフレームワークがあります。
注意
- パフォーマンス: 大規模なアプリケーションでは、パフォーマンスチューニングが必要になる場合があります。
- セキュリティ: Node.jsアプリケーションのセキュリティには注意が必要です。脆弱性対策や認証・認可の仕組みを適切に実装しましょう。
この例は、Node.jsとExpressを使って簡単なWebサーバーを作成する方法を示しています。Node.jsは、サーバーサイド開発だけでなく、フロントエンド開発やIoTなど、幅広い分野で活用されています。
より詳しく学びたい場合
- Progate: Node.jsの基礎を学ぶことができるオンライン学習サービスです。
- npmパッケージ: npmには、Node.js開発に必要な様々なパッケージが公開されています。npm searchでパッケージを検索することができます。
- AWS環境でのNode.js開発: AWSには、Node.jsアプリケーションの開発を支援する様々なサービスがあります。例えば、AWS Lambdaは、サーバーレス環境でNode.jsコードを実行することができます。
Node Version Manager (nvm) を利用したインストール
nvmは、複数のNode.jsバージョンを並行して管理できるツールです。システムに影響を与えることなく、任意のバージョンを簡単に切り替えることができます。
メリット
- グローバルなインストールとローカルなインストールを切り替えられる
- システムに影響を与えにくい
- 複数のNode.jsバージョンを管理できる
- 初期設定が必要
- 別途ツールをインストールする必要がある
インストール手順
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
インストール後、新しいターミナルを開き、以下のコマンドでNode.jsをインストールします。
nvm install 18 # 例: Node.jsのバージョン18をインストール
ソースコードからビルド
Node.jsのソースコードをダウンロードして、自分でビルドすることも可能です。
- カスタマイズできる
- 最新の機能を利用できる
- 一般ユーザーにはあまり推奨されない
- ビルド環境の準備が必要
- ビルドに時間がかかる
インストール手順
Node.jsの公式サイトからソースコードをダウンロードし、以下のコマンドを実行します。
./configure
make
sudo make install
パッケージマネージャー (apt, dnf) を利用したインストール (一部のディストリビューション)
Amazon Linux以外のディストリビューションでは、apt (Debian/Ubuntu) や dnf (Fedora) などのパッケージマネージャーでNode.jsをインストールできる場合があります。
- システムのパッケージ管理と統一できる
- パッケージのバージョンが古かったり、利用できない場合がある
Dockerを利用した環境構築
Dockerを利用すれば、Node.jsの環境をコンテナとして構築し、手軽に利用することができます。
- 異なるプロジェクトで異なるNode.jsのバージョンを利用できる
- 環境を再現しやすい
- コンテナの管理が必要
- Dockerの知識が必要
どの方法を選ぶべきか?
- 環境を再現したい、手軽に始めたい
Docker - 他のパッケージと一貫性を持たせたい
パッケージマネージャー - 最新版を使いたい、カスタマイズしたい
ソースコードからビルド - 複数のNode.jsバージョンを管理したい
nvm
Amazon LinuxでNode.jsをインストールする方法は、yum以外にも様々な方法があります。それぞれの方法に特徴やメリット・デメリットがあるので、自分の開発環境や目的に合わせて最適な方法を選択してください。
- AWS Elastic Beanstalk
Node.jsアプリケーションを簡単にデプロイしたい場合は、AWS Elastic Beanstalkがおすすめです。 - AWS Lambda
サーバーレス環境でNode.jsを実行したい場合は、AWS Lambdaが便利です。
node.js amazon-web-services npm