Webアプリケーション開発において、これまでよく使われてきたLAMPに代わって注目されているのが「MEANスタック」です。この記事では多くの企業が採用しているMEANスタックとは何かや、MEANスタックを構成する要素、主な特徴について解説しています。あわせてインストール方法も解説しているので、これからMEANスタックを学習されようとしている方は是非参考にして下さい。
目次
MEANスタックとは
MEANスタックとは、Webアプリケーションを開発するときに使う以下オープンソースの組合せを指します。
M:MongoDB
E:Express
A:Angular
N:Node.js
ご覧のように、各オープンソースの頭文字をとって「MEANスタック」と呼ばれています。従来、Webアプリケーションを開発するオープンソースの組合せとして「LAMP」がよく使われていました。昨今ではMEANスタックが、LAMPに代わる構成として注目されています。
MEANスタックを構成する4つの要素
前述の通り、MEANスタックは4つの要素によって構成されています。以下、それぞれどんな特徴があるかみていきましょう。
【M】:「MongoDB」 – ドキュメント指向のデータベース
MongoDBとは、ドキュメント指向型データベースの1つです。代表的なNoSQL(非SQLデータベースの総称)としても知られており、世界中で多くの企業が採用しています。
MongoDBはJSON※に似た形式でデータを保存するため、外部システムとの連携が容易です。その他、インメモリで動作するため処理速度が速いことや、負荷分散や冗長化の機能をもつことなどがメリットとしてあげられます。
JSONとは「JavaScript Object Notation」を略した言葉で、JavaScriptでデータを扱うときのフォーマットです。JavaScriptがいろいろなシステムで採用されていることから、JSON形式でデータを保存するシステムも多くなっています。
MongoDBの詳細については、以下記事も参照ください。
【初心者向け】MongoDBとは?メリット・基本をわかりやすく解説
従来、データベースと言えばわかりやすい表形式でデータを管理できるRDB(リレーショナルデータベース)が最もよく使われていました。現在でもRDBの採用率が高いことは変わりませんが、データベースに求められる役割が増えたことでRDBが適さないシーンも多くなっています。 MongoDBは、そのようなRDBが対応できないシーンで特によく使われるデータベースの1つです。この記事ではMongoDBの概要や主な特…
【E】:「Express」 – サーバーサイドのJavaScriptフレームワーク
Expressは数あるサーバーサイド向けJavaScriptフレームワークのなかでも、特に高い人気を誇ります。Expressは高速かつ軽量な上に、機能や拡張モジュールが豊富です。またサーバーを制御するのに必要な記述が少なくてすむことから、複雑なシステムでも比較的容易に拡張できます。その他、多くのユーザーに採用されていることから、日本語のドキュメントが豊富で、学習しやすいのもメリットです。
【A】:「Angular」 – フロントエンドのJavaScriptフレームワーク
AngularはGoogle社が個人・企業によって構成されるコミュニティと共に開発を進めている、オープンソースのJavaScriptフレームワークです。ExpressがWebアプリケーションのなかでもサーバーサイドの開発を担当するのに対し、Angularはフロントエンドを担当します。
AngularはMVCというパターンを採用しているため、アプリケーション開発をスムーズに進めることが可能です。また双方向データバインディング機能により、ソースコードの記述を減らせる点もメリットとしてあげられます。 Angularの詳細については、以下記事も参照ください。
【初心者向け】Angular とは?メリット・基本をわかりやすく解説
SPAをはじめとするWebアプリケーションの開発において、昨今ではJavaScriptのフレームワークやライブラリが注目されています。Google社が開発に携わったAngularは、その中でも特によく使われているJavaScriptフレームワークです。 この記事では、Angularの特徴や利用時の注意点についてわかりやすく解説しています。その上でAngularのインストール方法や学習方法も解説して…
【N】:「Node.js」 – サーバーサイドのJavaScript実行環境
Node.jsとは従来Webページ作成などの際に使われていたJavaScriptを、サーバー側で動作させるためのプラットフォームです。ノンブロッキングI/O方式を採用しているため大量のアクセスにも強いこと、リアルタイム処理が可能なことなどがメリットとしてあげられます。
Node.jsの詳細については、以下記事も参照ください。
【入門】Node.jsとは?利用シーンやメリットなどをわかりやすく解説
「Nods.js」はWebアプリケーションやスマートフォンアプリ、IoT関連の開発に適した技術として昨今注目を集めています。Nods.jsは、多くのサーバー管理者を悩ませている「C10K問題」の解決策としても有効です。この記事ではNods.jsとは何かといった基本からメリット、利用シーン、インストール方法までわかりやすく解説しています。 Node.jsとは Node.jsとはWebページ作成などの…
MEANスタックの主な特徴
MEANスタックの構成要素についてみてきました。それではMEANスタックとして4つの要素が集まったときには、どのような特徴があるのでしょうか。以下、主な特徴をみていきましょう。
JavaScriptだけでWebアプリを開発できる
MEANスタックを採用することで、フロントエンドからサーバーサイドまでJavaScriptだけで開発できます。サーバーサイド・フロントエンドそれぞれのルールがあるので全く同じわけではないものの、JavaScriptで統一できるのは大きなメリットです。
クライアントからサーバーまでJSONで通信が可能
MEANスタックではフロントエンドからサーバーサイドまで、データの受け渡しをJSONで統一可能です。またMongoDBをデータベースとして採用しているため、JSONフォーマットを利用できます。
少ないメモリで高速に動作する
MEANスタックでサーバーの役割を担うNode.jsは、前述のとおりノンブロッキングI/O 採用により少ないメモリで高速に動作します。大量のアクセスが発生しても、Node.jsであれば対応可能です。
MEANスタックのインストール方法
ここではUbuntuにMEANスタックをインストールする手順を紹介します。
※以下の記事で、Windows上にUbuntu環境を構築する方法を紹介しています。手元にUbuntuの環境がない方はあわせて参照ください。
WindowsでWSL2を使って「完全なLinux」環境を作ろう!
WSLとは、Windows上でLinuxを動作させるための実行環境です。新しいバージョンである「WSL2」ではWindows上で「完全なLinux」が動かせるようになり、できることが大幅に増えました。この記事ではWSL(WSL2)とは何かや、WSL1・WSL2の違い、WSL2を使ってLinux環境を構築する方法について解説します。 Windows上でLinuxを動かせる「WSL」とは? 「WSL(…
日額20円(月額550円)から使えるカゴヤのVPSサービス「KAGOYA CLOUD」でも、Ubuntu環境を用意することは可能です。興味があれば以下公式サイトを確認下さい。
1.パッケージを更新します。
sudo apt update
2.依存関係を管理するため、NPM(パッケージ管理ツール)をインストールします
sudo apt -y install npm
3.MongoDBをインストールします。
sudo apt install -y mongodb
4. cURL※をインストールします。
sudo apt -y install curl
※インターネット上から、これからインストールするプログラムをダウンロードするためのツールです。
5. 公式のnodesourceスクリプト※を使い、最新版のNode.jsを取得します。
curl -sL https://deb.nodesource.com/setup_*** | sudo -E bash -
※参照元:GitHub – nodesource/distributions: NodeSource Node.js Binary Distributions
※「***」の部分にはNode.jsのバージョン番号(最新のもの)を入力します。バージョン番号については参照元で確認可能です。
6. Node.jsとgit※のインストールを行います。
sudo apt install -y nodejs gcc g++ make git
※バージョン管理を行うシステムです。
7. yarnをインストールします。
sudo npm install -g yarn
※yarnとはJavaScriptで開発されたモジュールを管理するためのNode.js用パッケージマネージャーです。
8. gulpをインストールします。
sudo npm install -g gulp
※gulpとは、Node.js用のタスク自動化ツールです。
9. MEAN スタックパッケージのクローンを作成します。
git clone https://github.com/linnovate/mean
10. mean.jsのディレクトリに移動します。
cd mean
11.meanディレクトリに必要なファイルをコピーします。
cp .env.example .env /mean
12.yarnコマンドを実行します。
yarn
以上で環境の構築は完了です。
まとめ
MEANスタックとは、Webアプリケーション開発の際に使われるオープンソースの組合せの1つです。MEANスタックを使うと、WebアプリケーションのフロントエンドからサーバーサイドまでJavaScriptで開発できます。またクライアントからサーバーまでJSONで通信できる点もメリットです。その上でサーバーの役割を担うNode.jsがノンブロッキングI/Oを採用していることから、少ないメモリで高速に動作します。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。