AWS(Amazon Web Services)やGCP(Google Cloud Platform)などの「サーバレス」の利用が増加傾向にあります。
サーバーレスとは一体どのようなもので、サーバーがなくて困らないのかなどの疑問についてや、サーバーレスのメリット・デメリットなどを解説します。
サーバーレスとは?
基本的にインターネット上で利用するサービスやソフトウェアを実行するためには、そのサービスやソフトウェアをサーバーに配置する必要があります。
そのための専用サーバーを自前で用意せずに、クラウド事業者が提供しているサーバー環境の一部を借りて運用する形態のことを「サーバーレス」と言います。
サーバーレスとは、サーバーレスとは言われているもののサーバー自体が存在しないわけではなく、実際にはクラウド事業者の元に存在します。
ただし、面倒なサーバー構築や保守はすべてクラウド事業者がやってくれるため、サーバー利用者側はサーバー構築も保守も行う必要がありません。
つまり、利用者側のサーバー管理が一切不要になるため、「サーバーレス」と言われています。
サーバーレスとクラウドサーバーの違い
サーバーレスはクラウドサービスのひとつです。
クラウドサーバーとは、クラウドサービス事業者がサーバーなどのインフラ部分のみを提供するInfrastructure as a Service、通称「IaaS(イアース/アイアース)」と呼ばれるサービス形態や、OSやミドルウェアなどの基盤部分を提供するPlatform as a Service、通称「PaaS(パース)」と呼ばれるサービス形態のことを指します。
一方、サーバーレスは、サーバー、ネットワーク、OSやソフトウェア環境までのすべてを提供するFunction as a Service、通称「Faas」と呼ばれるサービス形態のことです。
また、身近なクラウドサービスであるセキュアSAMBAをはじめとするオンラインストレージは、インターネット経由で提供されるソフトウェアを利用できるサービスであるSoftware as a Service、通称「Saas(サーズ/サース)」の一種になります。
サーバレスのメリット
自前でサーバーを用意する必要がないサーバーレスのメリットはどのようなものかを確認していきましょう。
セキュリティが強固
ほとんどのサーバーレス事業者は、サイバー攻撃などから利用者を守るために、クラウド上に様々なセキュリティ構築をしています。
万が一、セキュリティの脆弱性が原因で事故が起きた場合は、社会問題へと発展し会社に致命傷を与えかねないことや、セキュリティが強固であることが利用者へのアピールにも繋がるためです。
自前でセキュリティを強固にするには、それなりのスキルとコストが必要なため、強固なセキュリティを提供してくれることはかなりのメリットとなります。
管理や運用、構築の手間が不要
サーバーレス事業者が、環境の構築や運用/保守まですべて行ってくれるため、サーバー構築や保守にかかるコストが抑えられます。
たとえば、OSやミドルウェアのアップデートが不要だったり、サポート期限を気にしてバージョンアップ対応を行う必要もありません。
利用者は、ネットワークなどのインフラ知識がなくても、プログラムを送信するだけで実行することができます。
プログラム実行に必要なサーバーを意識しなくても、アプリケーションの実行をできるところがメリットとなります。
オートスケールでリソースの自動調整
オートスケールとは、「スケールアウト/スケールイン」や「スケールアップ/スケールダウン」を自動で調整してくれる機能のことを指します。
必要に応じてサーバーの台数を増減させることを「スケールアウト/スケールイン」と言い、CPUやメモリなどを交換することによってサーバーのスペックを上げたり下げたりすることを「スケールアップ/スケールダウン」と言います。
サーバーにかかる負荷を常に監視し、必要に応じてサーバーの台数の増減しれくれたり、スペックの上げ下げを自動的に行ってくれることで、想像していなかった大量アクセスなどの突発的なサーバー負荷にも耐えられるようになったりと、運用リスクや手間を軽減することが可能となります。
使用した分だけ料金が発生
サーバーレスは、利用時間や実行回数など、使用した分だけ課金される従量課金制です。
使った分だけ料金を支払えば良いため、当たり前ですが使っていない分は請求されません。
利用頻度が少ないのであればサーバーレスを利用した方がコストが軽減できるケースがあります。
障害に強い
クラウド上のサーバーに対して、物理的な自前のサーバーのことをオンプレミスサーバーと呼びますが、実際に手元にサーバーがあるため、災害発生時のインフラ整備に備える必要があります。
これは、BCP対策と呼ばれているものですが、かなりの労力やコストがかかります。
しかし、サーバーレスを利用することで、万が一の場合のBCP対策をサーバーレス事業者に任せることができます。
バックアップの仕組みもしっかりと行われているため、安心して利用することが可能となっています。
サーバーレスのデメリット
メリットが多いサーバーレスですが、デメリットもあります。
どのようなデメリットがサーバーレスにはあるのかを確認していきましょう。
サービス業者に依存する部分がある
サーバーレスの技術的な部分が、サーバーレス事業者によって全く異なる実装をしていることがあります。
このように、特定ベンダーの独自技術に依存したサービスなどをベンダーロックインと呼びます。
ベンダー毎に独自の制約があるため、その制約内容を知っておく必要があります。
サービスによって処理に時間がかかる
サーバーレスは、常にプログラムが実行されているわけではなく、ユーザーのリクエストによって色々なステップを踏んだ後に該当の処理が起動します。
この色々なステップを踏むことに時間を要することをコールドスタート遅延と呼び、それを考慮した上でシステム構築を行う必要があります。
他ベンダーのサービスへの乗り換えが難しい
あるサーバーレス環境で開発したプログラムを、他ベンダーのサーバーレスへ移行することは難しいとされています。
ベンダーロックインの問題があるため、移行するためには移行先の環境に合わせてプログラムの変更が必要になり、手間やコストがかかるためです。
最初に選択するサーバーレス事業者が重要なので慎重に選ぶ必要があります。
サーバーレスが適しているものとは?
常時起動する必要がないプログラムは、サーバーレスが適していると言えます。
特定のタイミングや特定の時間で動くプログラムのように、単発で短い時間で終わるケースにはデメリットがなく効率良く開発できるため、コスト減に繋がります。
たとえば、スマート家電などのIoTは、常時起動している必要がなく、リクエストがあったタイミングで短い時間で処理が行われるため、サーバーレスが非常に適していると言えます。
他にも、短い時間かつ単発処理である「データが二重で登録されていないかチェックする作業」をサーバーレスに任せていたという事例もあります。
サーバレスのクラウドサービスを活用しよう
サーバレスが必ずしも最適とは限りませんが、活用できた場合には運用コストを抑えつつ、プログラム開発に注力できるという大きなメリットがあります。
クラウドサービスはまだまだ発展途上であり、これからも成長していく分野です。
たとえば、クラウドサービス形態のひとつであるSaasの代表とも言えるオンラインストレージは、データ共有を容易に行うことができます。
パソコン内にデータを置かずにオンラインストレージ上にデータを保存することで、紛失や情報漏洩などのリスクが抑えられます。
オンラインストレージ「セキュアSAMBA」はアクセス経路とファイルが全て暗号化され、セキュリティも強固で安心して利用することができます。
身近なクラウドサービスであるオンラインストレージを活用することでサーバーレスのクラウドサービスをさらに身近に感じてみることも良いかもしれません。