サーバーレスってつまりサーバーがない?
当然ですが、プログラムを動かすためには、サーバー(コンピュータ)の存在が必要不可欠です。
小さなプログラムを動かすためにも、サーバーの構築や運用、保守といったアプリケーションを開発する以外の知識や労力、費用が必要です。そこで、サーバーレスが誕生しました。
サーバーレス(ServerLess)とは、”サーバー無し”という意味合いの名前ですが実際にサーバの存在自体が”無し”というわけではないです。
今回は、そのあたりについて詳しく説明していきます。
サーバーとは
サーバーレスの解説前に、まずはサーバーとは何かについて解説します。
多くの場合、開発したプログラムを実行・運用するにはサーバーが必要です。通常、開発したプログラムをインターネット環境で実行するにはサーバー、OS、ミドルウェアを用意し、プログラムを実行できる状態にしておく必要があります。これをサーバー構築といい、サーバー構築ができて初めてプログラムをインターネット上で動かすことができます。
ですが、サーバーを構築してからもシステムを安定稼働させるなど、継続的にサービス提供を行うのがサーバー運用です。
サーバー運用ができていても永久に使えるわけではありません。様々な要因で故障や不具合を起こす可能性があります。そのために、日頃から定期的に点検などを行うのがサーバー保守です。
サーバーレスとは
サーバーレスとは冒頭で説明したサーバー自体が無いという意味ではなくサーバーを管理する必要がなくなるという意味合いです。サーバーの構築や運用、保守を行うのはサーバーレスを提供しているクラウドベンダー会社です。
サーバーレスとはクラウドサービスの一種なので利用時にはクラウドサービスを提供しているクラウドベンダー会社のサーバーレスサービスにお金を支払うことでサーバーの構築や運用、保守などサーバーにおいて様々な作業を全て任せることができ、開発者はサーバーを気にすることなく開発だけに専念できるようになります。
サーバーレスのメリット
従来のサーバーではサーバー設備の購入やサーバー構築のためのソフトウェアパッケージ品の購入、サーバー運用、保守費など小さい規模でもサーバー費用だけで30万円~と開発をしたいのにサーバーだけでもかなりの費用が掛かってきました。なのでサーバーレスサービスも高いのでは?という疑問があると思いますがサーバーレスサービスは使用分だけの従量課金制です。サーバーの稼働時間やプログラムが実行されるたびに使用したCPUやメモリの量、実行時間に応じて課金が発生します。なので使用しない時は絶対に課金されません。またずっと稼働をしなければいけない場合でもオートスケールなのでサーバーの負荷の増減に合わせて自動調整してくれます。なので従来のサーバーにかかっていた「固定費」が「変動費」に変わるということです。大幅なコスト削減が見込めます。
またセキュリティ面でもクラウドサービスを利用する利点があります。なぜなら自社で購入したサーバーが乗っ取られてしまった場合、サーバーを管理しているので責任は完全にこちらにありますが、クラウドサービスを利用する場合、クラウドベンダー会社がサーバー自体のセキュリティを請け負ってくれます。クラウドベンダー会社は「不正アクセスの防止」や「アクセスログの管理」など安全性の高いセキュリティを整えているため、自社で管理をするリスクを削減できます。
また災害時にはクラウドサービスは、インターネット上でサービスが展開されているのでストレージやサーバー・ハードウェアが必要ないので、データの消失リスクを減らせます。
サーバーレスはコストパフォーマンスが良いということだけではなく、サーバー全体の手間やセキュリティ、災害時の備えまでバッチリです。そんなサーバレスを提供しているクラウドサービスとは何か解説します。
サーバーレスのデメリット
使用するサーバーレスサービスによりますが、既存のプログラムコードが使えない場合があります。その場合、そのままコードを移行することはできずある程度対応するコードに変換する必要があります。また使用できないプログラミング言語もあるため使用するサーバーレスサービスを事前に調べておく必要があります。そして一度、使用を決めたサーバレスサービスから別のサーバーレスサービスに移行しようとした場合難しい場合が多いです。最後にサービスである以上、成約があります。どのサーバーレスサービスを利用するのか、サーバーレスサービスを使用するメリット、デメリットをしっかり検討してから自らの開発に合っているか判断しましょう。
サーバーレスについて解説しました。デメリットを差し置いても利便性に長けているそんなサーバレスを提供しているクラウドサービスとは何かを次で解説します。
クラウドとサーバーレス
クラウドサービスとは、ユーザーが必要に応じて、インターネットを経由し様々なサービスを利用できます。ユーザーがインフラやソフトウェアを所持していなくても、必要に応じたクラウドサービスを利用することでこれらの問題を解決できます。
AWSやGCP、Azureなどが存在します。
サーバーレスは「インターネットを経由してサーバーレスサービスを利用する」ということになります。サーバーレス以外にもクラウドサービスには様々な種類のサービスがあります。
クラウドサービスの種類
-
IaaS
IaaS(Infrastructure as a Service)とは、仮想サーバーやストレージ、ネットワークなどのインフラの基盤を提供しているサービスです。
-
FaaS
FaaS(Function as a Service)とは、サーバーレスでアプリケーション開発ができる環境を提供するクラウドサービスです。
-
PaaS
PaaS(Platform as a Service)とは、WEBサーバーやデータベース等のインフラにおけるミドルウェアを提供するクラウドサービスです。
-
BaaS
BaaS(Banking as a Service)とは、銀行が提供しているサービスや機能を、提供するクラウドサービスです。
-
SaaS
SaaS(Software as a Service)とは、パッケージ製品のソフトウェアを提供しているクラウドサービスです。
主にサーバーレス(FaaS)を提供しているクラウドサービス
クラウドベンダー会社名 | サービス名 | 公式サイト |
---|---|---|
AWS(Amazon Web Services) | AWS Lambda | AWS公式 |
Microsoft | Azure Functions | Azure公式 |
Google Cloud Functions | Google Cloud公式 | |
Alibaba | Alibaba Cloud | アリババ公式 |
IBM(International Business Machines Corporation) | IBM Cloud Functions | IBM公式 |
まとめ
今回はサーバーレスについて詳しく説明しました。サーバーレスとはクラウドサービスの一種で利用することでサーバーに関する様々なことを任せることができます。サーバレスを理解し、クラウドサービスを必要に応じて利用することでコストの削減や開発時間の短縮といった開発においての課題や問題点を解決できる選択肢を広げることができます。
サーバーレスサービス何を使ったらいいかわからない人はサーバーレスサービスで一番人気といっても過言ではないAWSの「Lambda」を利用することをお勧めします。AWSにはLambda以外にも開発をサポートしてくれるサービスが沢山あります。無償枠といって登録してから一年間は無償で規定のAWSサービスを使用することが可能ですのでこの機会に登録だけでもするといいでしょう。AWS以外にもそういったサービスを展開しているクラウド事業はあるので上にリストがあるので比較して自らにあったサービスを選ぶといいでしょう。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.03.07
【わかりやすい】TCP/IPモデルのしくみと役割を徹底解説
こちらの記事では、TCP/IPモデルの基本的な概念と構造を解説します。また、各階層の役割や機能についても詳しく説明します。
- ネットワーク
2024.03.04
インフラエンジニアに必要な資格(CCNAについて)
こちらはEnvaderの記事になります。
- ネットワーク
- インフラエンジニア
2023.09.12
【BIND入門】BINDの基礎概念を理解しよう
BINDは、DNSサーバーのためのソフトウェアです。DNSの情報を管理することができ、クライアントからの名前解決のリクエストに応じて対応するIPアドレスを返すことができます。
- ネットワーク
- インフラエンジニア