「LAMP環境」はもう古い?今後のソフトウェア開発のトレンドについて

Webエンジニアの世界で利用される開発実行環境にLAMP環境があります。LAMP環境はWeb開発の学習をする教本などには必ずと言っていいほど利用されているもので、Web開発のデファクトスタンダードといえるような環境です。
ただ、デファクトスタンダードではあるものの、LAMP環境は利用開始から何十年も経過していて、古い技術となっているのが事実です。今回は、LAMP環境は古い技術であるのか、今後Web系のソフトウェア開発をする場合はどのような環境を利用すると良いのかについてご説明します。
そもそもLAMP環境とは

LAMP環境は古くからWeb開発の現場で利用されている開発環境です。「Linux」「Apache」「MySQL」「PHP」と4つのオープンソースを利用してWeb開発をすることを指します。どれもオープンソースとして提供されているため、無料で利用しやすいものです。まずはそれぞれがどのようなオープンソースであるのでご説明しておきます。
L:Linux
Linuxは無料で利用できるオープンソースのオペレーティングシステムです。オープンソースのオペレーティングシステムはいくつもありますが、その中でもLinuxは特に利用されています。なお、Linuxにはいくつもの種類やバージョンがありますので、ここではLinuxに分類されるものの総称を指すこととします。
LinuxはUNIX系のオペレーティングシステムで、オープンソースですのでその内容が公開されています。また、内容が公開されているだけではなく、自由にその内容を改変したり、再配布できますので、改良されたLinuxや新しいLinuxが日々生み出されている状況です。
Linuxはオープンソースで自由に開発できるため、開発に適していると考えられています。世の中にはWindowsなどメジャーなオペレーティングシステムが多数ありますが、これらは内容の改変などができません。そのため開発の利便性という観点では、オープンソースのLinuxにメリットがあると考えられているのです。
また、Linuxはオープンソースであり、無料で利用できますので、その点もLAMP環境として広まった理由となっています。日常的に利用するパソコンはWindowsやMacOSなどLinuxではないものが大半です。しかし、Web開発はエンジニアが行うもので専門知識を持っている前提ですので、高額でリッチインターフェースが充実した物よりも、ユーザーインターフェースが限られていても無料で利用できるものが普及しているのです。
A:Apache
Apacheはオープンソースで開発されているWebサーバーソフトウェアです。Webアプリを開発したり実行したりするためには、webサーバーと呼ばれるソフトウェアが必ず必要となります。Apacheはそれを実現するために導入するものです。
Webサーバーのソフトウェアは、サーバーのオペレーティングシステムに最初から組み込まれているケースがあります。また、簡単な手順で導入できるようになっている場合もあります。利用するオペレーティングシステムによりますが、ApacheなどのWebサーバーを利用する前提となっているケースは多々あります。
なお、Apacheはオープンソースで利用できるWebサーバーですので、様々なサーバー環境での導入が見られます。特にレンタルサーバーなどで最初から導入されているケースが多く、そのような状況からもLAMP環境が広がっていると言われる状況です。
ただ、Apacheは1995年に公開が開始され、アップデートを繰り返しながら使われ続けていますが、現在の開発環境にはそぐわない部分もあり、LAMP環境が古いのではないかと言われる原因にもなっています。
M:MySQL
MySQLはオープンソースで開発されている、リレーショナルデータベースです。オープンソースで開発されているデータベースはいくつもの種類がありますが、リレーショナルデータベースに分類されるものでは、MySQLが幅広く利用されています。
データベースはWebアプリケーションで利用するデータを格納するソフトウェアです。現在のWebアプリケーションは基本的にデータベースが利用されていて、どのデータベースも利用されていないWebアプリケーションはほぼないと考えて差し支えありません。
なお、データベースにはいくつかの種類があり、リレーショナルデータベースと言われるもの以外にもデータベースが存在します。ただ、Webアプリケーションを開発する場合は、データベースの特徴からリレーショナルデータベースを選択することが大半です。そのためのオープンソースで開発されているデータベースの中でも、MySQLがLAMP環境として特に幅広く利用されています。
P:PHP
PHPはWeb開発で利用されるケースの多いプログラミング言語です。プログラミング言語ですのでオープンソースのイメージはないかもしれませんが、内容は公開されていてオープンソースとして開発されているものです。
今のところPHPは幅広いWebアプリケーションで利用されています。WordPressなど世界的に利用されているアプリケーションがPHPで開発されていますので、プログラミング言語としてトレンドに取り残されているというものではありません。プログラミング言語自体のバージョンアップも進んでいて、昔から変わらずWeb開発の現場で活躍しているプログラミング言語だと言えます。
ただ、現在はPHP以外にもWebアプリケーション開発に利用できるプログラミング言語が普及してきています。そのためプログラミング言語の内容が陳腐化したのではなく、トレンドが分散している状況となってきています。PHPはまだまだ利用されているプログラミング言語ですが、他のプログラミング言語が台頭していることで、あえてLAMP環境でWebアプリケーション開発をする必要がなくなってきているのです。
LAMP環境はもう古いのか
IT業界は進化が早いですので「LAMP環境は古い」との意見が一定数あります。確かにそのような考え方もありますが、LAMP環境が一概に古いとは言い切れません。
上記でご説明したとおり、LAMP環境は「古い」と受け取られる部分はあります。ただ、事実としては、LAMP環境は非常に多くのWebアプリケーション開発で利用されています。現役のシステムもLAMP環境で動作しているものが多々あります。
そのため、「LAMP環境は古い」と決めつけて新しいトレンドだけに注目するのはよくありません。これから少しずつトレンドの変化はあると思われますが、決して陳腐化した技術ではないのです。
LAMP環境を踏まえて今後のソフトウェア開発はどうなるか

今までのトレンドではWebアプリケーション開発といえばLAMP環境でした。ただ、上記でのご説明でも触れたとおり、LAMP環境はややトレンドから外れる部分も出てきている状態です。LAMP環境を踏まえて、今後のWebアプリケーション開発はどうなるのかを予想していきます。
オペレーティングシステム
サーバーのオペレーティングシステムはLinuxを利用するトレンドが続いています。一部Windowsを利用するWebアプリケーションもありますが、全体的に見るとLinuxの利用が一般的です。
ただ、Linuxはオープンソースで開発されているオペレーティングシステムですので、非常に多くの種類があります。そのため全体としてはLinuxの利用がトレンドではあるものの、現場で利用されているLinuxの種類にはトレンドの変化があります。
例えば現在トレンドとなっているのは、Linuxの中でもクラウド環境で利用できるものです。例えばAWSではLinuxをAWSでの利用に最適化したものを提供しています。一般的なLinuxとは少々異なった知識が必要になります。
全体としてはLinuxが利用されていますので、トレンドが大きく変化している状況ではありません。ただ、Linuxにも非常に多くの種類がありますので、その時々に応じて適切なものを利用するスキルは必要とされます。
Webサーバー
Webサーバーのトレンドは変化してきていて、Apacheに対してNginxと呼ばれるものが利用されています。Webサーバーに利用しているソフトウェアを調査したところ、ApacheよりもNginxが利用されているという調査結果もあります。トレンドは変化している状況にあると認識しておいて良いでしょう。
このようにトレンドが変化しているのは、Apacheに性能面の限界があるからです。Apacheは世界的に利用されているWebサーバーではあるものの、仕様の都合で大量の同時アクセスに対応しきれない問題があります。現在は大規模アクセスを想定したWebアプリケーションを開発する必要があり、Apacheでは限界を感じてしまう場面があるのです。
Nginxは最初から大量アクセスへの対応ができるように開発されています。つまり、Apacheの問題点を解決できる仕様となっているのです。ただ、根本的にApacheとは異なりますので完全に置き換えられるわけではなく、絶対的なトレンドとなっているわけではありません。
関連記事:ApacheとNginx|概要・それぞれの違いについて解説!
データベース
データベースは無料で利用できるものを使い続けるのかどうかで環境が変化します。有料のデータベースは多くの種類が開発されていて、高機能なものも増えています。開発するWebアプリケーションの内容が高度なものになれば、オープンソースのMySQLではなく有料の製品に切り替える必要があるかもしれません。
無料のデータベース環境にこだわるのであれば、MySQLのままでも良いでしょう。一般的なWebアプリケーションを開発するのであれば、MySQLの機能で特に問題はありません。古くから利用されているため、エンジニア数も多く、安定して利用できるデータベースに分類されます。
ただ、残念ながらMySQLは大量データを取り扱うと動作が重くなる欠点があります。そのためWebアプリケーションで大量のデータを処理したいならば、データベースの見直しが必要です。例えば機械学習などを利用する場合は大量のデータを処理する可能性があり、MySQLでは対応しきれない可能性があります。
MySQLから乗り換える場合は、MairaDBやBigQueryなどがトレンドとなっています。後者は少々料金がかかってしまいますが、大量のデータをスムーズに処理できるため、LAMP環境とは大きく異なるデータベース環境の構築が可能です。
プログラミング言語
PHPはトレンドの真っ只中というわけではありませんが、昔から変わらず利用されている状況です。そのため、無理矢理Webアプリケーションの開発に利用するプログラミング言語をPHPから他のものに変更する必要はありません。
ただ、Webアプリケーション開発に利用されるプログラミング言語の種類は増えてきています。一昔前はPHP一択という状況でしたが、現在は幅広い選択肢があるのです。実際、大手企業が提供するWebアプリケーションもPython・Ruby・Goなど多くのプログラミング言語で開発されるようになってきています。
そのため今後重要となるのは、「Webアプリケーションの開発はPHP一択」との固定概念にとらわれないようにすることでしょう。確かにPHPはプログラミング言語としての実績があり、ユーザーアプリケーション開発に幅広く利用されています。ただ、現在のプログラミング言語市場を踏まえると必ずしもPHPを選ぶ必要はなく、状況に応じてLAMP環境以外で動作させるプログラミング言語も選ぶべきです。
まとめ
LAMP環境と今後の開発環境の予想についてご説明しました。LAMP環境は古くから使われていて安心の環境ではありますが、現在はトレンドが変化しています。特にクラウドでの開発なども増えたことで、必ずしもLAMP環境である必要がなくなっています。
ただ、LAMP環境が完全にトレンドから取り残されているわけではありません。基本的なWebアプリケーションの開発環境はLAMPの考え方を踏襲しています。そのため、LAMP環境を踏まえて現在のトレンドに少しずつ方向転換していくことが重要です。

