プログラミング ITインフラ 新技術 設計

LAMP環境はオワコン? 今後のインフラ技術と何を勉強するか

lamp developer

概要

フリーランスエンジニア スリーネクスト

LAMP環境は現在でも多くの企業で利用していますがオワコンです。

LAMP環境はもちろん使っていますがそれだけではなく、さらに多くのシステムを使うことでより最適化できるようになっています。それに伴いサーバーやプログラミング言語、データベースの構成が大きく変わりました。そして、新しい時代にあった構成の環境を学ぶ必要があります。

どこがどのように変わったのか、それと今後何を勉強すればいいか、そしてどう活かせばいいのか説明していきます。

LAMP環境とは

まず、LAMP環境とは以下の4つのシステムの頭文字をとって命名されています。

  • L → Linux
  • A → Apache
  • M → MySQL
  • P → PHP

Linux

OSです。WindowsやMACのようにオペレーティングシステムでサーバーによく使われているOSです。

Apache

Webサーバーです。Webページを表示するためには必要です。

MySQL

データーベースです。データを格納することのできるソフトウェアです。

PHP

プログラミング言語です。お問い合わせフォームや検索機能等様々なシステムの機能を作成できます。

頭文字をとっているのですが、プログラミング言語の部分はよく変わっています。最初はPerlだったのがPHPに変わりました。下記にも記載しますが、最近ではPythonのPにも置き換わっています。。

過去と現在のLAMP環境サーバー構成

過去のLAMP環境サーバー構成

昔のサーバー環境
アクセスがあった時はロードバランサーでどこのWebサーバーに配分するのか決めてWebサーバーから一つのDBを見にいく構成になっていました。

現在のLAMP環境サーバー構成

新サーバー環境
KubernetesでロードバランサーからどこのPodで見るのか割り当てます。用途に合わせてDBが複数あります。そこから様々なデバイスにデータを送る仕組みになっています。ここでは表現されていませんがAPI通信をしてデータの受け渡しをします。

最近ではDockerでApacheやNginxを立ち上げるようにしプロセス単位で起動します。それをkubernetesというオーケストレーションツールでdockerをコントロールします。

kubernetesでdockerをコントロールすることで簡単にロードバランスの制御ができたり、ローリングアップデートすることでダウンタイム0で再起動させることができます。
パッチの適用やシステム更新による再起動もダウンタイムは0でできるようになります。

また、全てがクラウド化しておりIoTやロボット、AIとの相性も良くなっています。
どこからでもロボットに信号を送ったりAIの判断も全てクラウドで保持することができる時代になってきました。

次世代環境はLAMP環境から大きな変化はないですが、セキュリティの強化と、ビッグデータに対応したデータの保持が可能となりました。

過去現在のLAMP環境比較表

過去 現在
OS CentOS6、Solaris、AIX AmazonLinux、CentOS8,Devian,Ubuntu
ネットワーク・サーバ環境 オンプレミス、レンタルサーバー AWS Kubernetes、 GCP Kubernetes
開発環境 XAMPP、MAMPP、vagrant docker-compose、minikube
過去 現在
Webサーバー httpd NGINX、言語やフレームワーク付属のWebサーバ
ログイン認証 セッション JWT(ジョット)、Firebase Authentication、 Auth0
その他 Excelマクロ Firebase プッシュ通知

大・中企業と小規模・零細企業のLAMP環境の違いとコスト感

大企業や中堅企業の場合だとサーバー環境が大きくなり月々のコストが数百万円かかる場合があります。

AWSやGCPを使った環境ではコストが高いです。小規模零細企業で毎月数百万払えるかというとむずかしいです。代わりにコストの低いレンタルサーバーを利用しています。WordPressを立ち上げるに年間で1万円程度で済みます。価格と性能表はこちらの表でご確認ください。

価格 性能
AWSやGCP 年間1000万円〜 セキュリティや専門的技術は非常に高い
レンタルサーバ 年間1万円〜 サーバーにroot権限がないので制限がきついしWebを掲載するぐらいの機能しかない
VPS 年間5万円〜 root権限があるがサーバーの性能は高くないdockerも動かせるが性能が追いつかない場合がある
ConoHa WINGはレンタルサーバーでWordpressの設置に向いているレンタルサーバーです。

GMOクラウドのVPSは 使いやすいVPSサーバーです。最新版Pleskでコントロールパネルの迷いはない。

世界中で最も多いWebサイトがWordPressです。WordPressはほとんどLAMP環境です。WordPressで複雑なことを動きをすることに向いていないのでハイスペックのサーバー環境は必要ありません。

そのため小規模のシステムとしては非常に適しています。そしてWordPressの案件や仕事があるので、WordPressの代名詞としてLAMP環境があるので、もうオワコンと思っている人も多いと思いますがそんなことはありません。LAMP環境は幅広いのでWordPressだけがLAMP環境ではありません。

また、LAMP環境の仕事はLancersにも常駐案件やクラウドソーシング系の仕事も多数あります。こちらで検索するとまだまだ多数出てきます。

Lamp環境のPHP案件

WordPressの仕事もありますが他にもLaravelの案件も多数あるのでPHP案件で探すとLAMP環境の開発が多いことが確認できます。

また、比較的大手以上の規模の会社は新しいテクノロジーをどんどん取り入れているのでシンプルなLAMP環境の仕事は減少していきますが、小企業はまだまだこれからもシンプルなLAMP環境で仕事は増加していきます。

なぜならば、サーバー構築運営費用は圧倒的にLAMP環境で使うレンタルサーバ系が安く、お金のない小規模企業にとっては選択肢として有力になるからです。

LAMP環境のプログラミングとデータフロー

過去のサーバーサイドレンダリング

Webページの構成はWebフロント画面からボタンをクリックするとコントロラークラスへ移動し、DB層にデータを渡し、データベースから情報を取得し画面に反映するという処理の流れができていました。

現在のAPIを利用したマルチデバイス送受信

最近のWebでは画面でボタンを押すと一旦APIに送信しサーバー側でAPIデータを取得しそれをDB層にデータを渡し、データベースの情報を取得し、APIのレスポンスに答えてフロントエンド側で画面に反映させる手順に変わりました。

手間がかかるだけだと思った人かもしれませんがスマホやIoTの媒体などに送受信する方法と同じです。動作を統一することでわかりやすいホームページになりました。

枯れたフロントエンド技術

jQueryは本当にオワコンに近い状態です。大企業ではもう使ってはいけないというお達しもあります。2019年5月に更新されているのでjQuery自身は成長していますがエンジニアの中では人気が無くなってきています。

トレンドがReact、Vue、Angularの3つが主流となってきているのでjQueryの利用者が激減しました。

実際にビッグデータナビレバテックフリーランスの案件でもフロントエンドエンジニアの仕事はReact、Vue、Angularが多く、最近ではVueの発展でNuxtJSの導入が増えてきました。

過去と現在のプログラミング言語比較表

また、プログラミング言語がPHPやPerlという選択肢だけで無く、PythonやGo言語、Rubyを利用する人が増えました。具体的にどうなってるのか説明していきます。

PHP → Go言語、Python、PHP、Rubyと多様化

過去 現在
バックエンド JAVA、PHP、Perl Python、JAVA、PHP、Ruby、Go言語
フロントエンド Bootstrap、jQuery Vue.js(Nuxt.js)、Angular.js、React.js
テックブースト プログラミングスクール(就職サポートあり)RubyやPHP Laravelを使ったサーバーサイド言語とDBの基礎やLinuxの基礎の習得 

KENスクール サーバーサイドプログラミング・ネットワーク に強く、最新のサーバーサイドの知識を得ることができます。学習後に就職サポートを受け就職へ!!就職率95%以上!!

LAMP環境のデータベース

過去のLAMP環境 MySQLによるデータ管理

以前はWebサイトはキャッシュもセッションもログデータもすべてRDBであるMySQLに格納していました。MySQLはスケールできないのでDBサーバーに256GBのメモリを積んだりものすごく高価なサーバーを作る必要がありました。

現在の多種使い分けのデータベース管理

MySQLに格納していたデータを以下のように分散しました。

step
1
一時的なデータやキャッシュデータはRedisやmemcacheに格納する

step
2
大量データはBigQueryやRedShiftに格納する

step
3
リレーションを含む複雑なデータは今まで通りMySQLに格納する

過去現在のDBの比較表

過去 現在
RDB Oracle、MySQL、PostgreSQL、DB2、SQL Server MySQL、PostgreSQL
その他SQL なし Redis、memcache、MongoDB、BigQuery、RedShift、Cloud Spanner、CosmosDB

目的の多角化によるLAMP環境の進化

ビッグデータ時代のデータの受渡し

ビッグデータは数百億レコードのデータを送受信することになる処理のことで最近はその処理が早くなってきています。5Gになる必要なく受け渡しが可能ですが、頭を使った設計が必要になるのでテクニックが必要です。ビッグデータナビでは頭を使った設計の仕事が多くあります。

AWSのログやDynamoといった処理の限界値を取り限界ギリギリまで処理を流す方法は非常にテクニックが必要です。これが面白いと思えるのがエンジニアですけどね・・・

セキュリティ要件の大幅な上昇

ログイン状態を保持するのは昔はセッションでよくログイン情報を受け渡してきたのですが、最近ではAPIが一般化してきたのでFirebase AuthenticationやAuth0という認証サービスをJWT(ジョット)という方式で受け渡ししてログイン状態を保持するように変わりました。

IoT等によるPCやスマホ以外のデータ送受信

gPRCやGraphQLと言ったAPIを利用してデータの送受信をすることが一般的です。スピード感も求められてきているので設計が命のシステム作成が必要です。

AIの発展によるデータ送受信

KaggleやTensorFlowといったGoogleの技術だけでなくワトソン等様々なAI技術が増えてきました、それに対応できるエンジニアがまだまだ少ないのが現状です。「AIジョブカレで知識を手に入れればビッグデータナビで活躍することが可能です。

LAMP環境について何を勉強したらいいのか

サーバーサイドエンジニアを目指すなら

Python、Go言語、JAVA、Ruby、PHPどれか一つ決めて勉強することをおすすめします。

サーバーサイドエンジニアはサーバーの知識も必要になるのでアマゾンWebサービス(AWS)かグーグルクラウドプラットフォーム(GCP)の知識とkubernetesの知識、DBはMySQLとNoSQL一つずつ覚えておくことが必要です。

フロントエンドエンジニアを目指す場合

Vue.js、Angular.js、React.js + Nuxt.jsの4種類のどれか一つを極めるぐらい学べば他のどれかは似ているので使いまわせます。

レバテックフリーランスは日本最大級のフリーランスエンジニア エージェント会社になるので既存のシステムから最新のシステムまで様々あり、LAMP環境だけでなくPHP案件やPython案件が多数登録されています。フロントエンジニアとしても仕事は十分あります。もし、既にエンジニアであれば働きながら勉強することでさらに自分の価値を高めていってください。

新技術の勉強場所と働く場所

時代が変われば開発も変わっていきます。最新の開発環境を学んだり仕事を取得する場所もあるので簡単にリンクを貼っておきます。

ビッグデータナビ は時代の最先端をいく仕事が多いです。常に新しい言語やサーバー環境があるので勉強しながら働くことができます。

テックブースト プログラミングスクール(就職サポートあり)RubyやPHP Laravelを使ったサーバーサイド言語とDB経験やLinuxの基礎の習得 

KENスクール サーバーサイドプログラミング・ネットワーク に強く、最新のサーバーサイドの知識を得ることができます。学習後に就職サポートを受け就職へ!!就職率95%以上!!

まとめ

LAMP環境は古いとかオワコンだという人は多くいますが実際はサーバー環境やプログラミング、データベースの環境がものすごく進んでいるのですが結局はLAMP環境の応用的なことをしているだけに過ぎないのでLAMP環境が終わったということはありません。今後もLAMP環境は続いていきます。


-プログラミング, ITインフラ, 新技術, 設計