概要
LAMP環境は現在でも多くの企業で利用していますがオワコンです。
LAMP環境はもちろん使っていますがそれだけではなく、さらに多くのシステムを使うことでより最適化できるようになっています。それに伴いサーバーやプログラミング言語、データベースの構成が大きく変わりました。そして、新しい時代にあった構成の環境を学ぶ必要があります。
どこがどのように変わったのか、それと今後何を勉強すればいいか、そしてどう活かせばいいのか説明していきます。
目次
LAMP環境とは
まず、LAMP環境とは以下の4つのシステムの頭文字をとって命名されています。
- L → Linux
- A → Apache
- M → MySQL
- P → PHP
Linux
OSです。WindowsやMACのようにオペレーティングシステムでサーバーによく使われているOSです。
Apache
Webサーバーです。Webページを表示するためには必要です。
MySQL
データーベースです。データを格納することのできるソフトウェアです。
PHP
プログラミング言語です。お問い合わせフォームや検索機能等様々なシステムの機能を作成できます。
過去と現在のLAMP環境サーバー構成
過去のLAMP環境サーバー構成
現在のLAMP環境サーバー構成
最近では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も動かせるが性能が追いつかない場合がある |
GMOクラウドのVPSは 使いやすいVPSサーバーです。最新版Pleskでコントロールパネルの迷いはない。
世界中で最も多いWebサイトがWordPressです。WordPressはほとんどLAMP環境です。WordPressで複雑なことを動きをすることに向いていないのでハイスペックのサーバー環境は必要ありません。
そのため小規模のシステムとしては非常に適しています。そしてWordPressの案件や仕事があるので、WordPressの代名詞としてLAMP環境があるので、もうオワコンと思っている人も多いと思いますがそんなことはありません。LAMP環境は幅広いのでWordPressだけがLAMP環境ではありません。
また、LAMP環境の仕事はLancersにも常駐案件やクラウドソーシング系の仕事も多数あります。こちらで検索するとまだまだ多数出てきます。
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 |
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環境は続いていきます。