Rundevlog

小さい会社のしがないエンジニアのブログ

2023.4.22

【IT入門vol.2】サーバーレス開発とは

今回はサーバーレス開発について解説していきます。

1.サーバーレスとは

サーバーレスという文字だけを見ると、サーバーが「レス」つまり、サーバーがない開発手法を指しているように思えます。

しかしながら、WEBの開発でも解説したように、WEBではクライアントからサーバーへのリクエストとサーバーからクライアントへのレスポンスで成り立っています。

つまるところ、サーバーがないというのはWEBの仕組み上、難しいのです。

では、サーバーレスとは何を指すのでしょうか。

サーバーレスとはPaaSやFaaS、BaaSなどのクラウドサービスを利用して開発する手法になります。

サーバーのOS以下の層をクラウド業者が提供するサービスを利用することによって、実現することができます。

つまり、サーバーのOSやハードウェア、ネットワークといった部分がない(というより管理する必要がない)開発手法をサーバーレスと言います。

2.サーバーレスのメリット

通常のサーバーを一台構築するとサービスが稼働している間は、サーバーを起動している必要があります。

そのため、従量課金制度を採択しているIaaSを利用すると、サーバーを起動している間の料金が課せられてしまいます。

しかし、サーバーレスの場合は、PaaSやFaaS、BaaSといったクラウドサービスを利用しており、アクセスやスケジューリングに応じた処理が実行された分だけの課金が行われます。

また、ハードウェア、OSの管理をクラウド業者が行なっているため、インフラ面で利用者が構築する内容が必要最低限になります。

さらに、インフラ面での構築や管理を行う必要がないため、開発速度が上がるというところもメリットとしてあげられるかと思います。

また、拡張性の部分でもアクセス数などやデータ量に応じて自動で行なってくれるという部分がメリットになります。

代表的な例としては、AWSでいうと、データベースサービスであるRDSや機能を提供するLambdaなどがあげられます。

3.サーバーレスのデメリット

サーバーレス開発を行う際、クラウドサービスを利用して開発をします。

AWSやAzure、GCPなどが代表的なクラウドサービスとしてあげられますが、それぞれのサービスを利用して開発を行っているため、会社の意向でクラウドを変更すると言ったときに、移行が難しいという点が挙げられます。

また、それぞれのクラウドに依存した知識を必要とするためシステム要件によって、特化した知識が求められることもあげられます。

4.まとめ

AWSのサービスを利用して、サーバーレスで開発した感想としては、開発は確かに早くなる一方でサービスに依存した知識が必要であるため、キャッチアップに費やす時間を必要に感じました。

また、それぞれのサービスの機能や構成など理解するまでの時間と共に後になって「あの機能はこうすれば実現できるのか」などとなりました。

利用するクラウドのサービスを体系的に学べる書籍や教材を探してからプロジェクトに参画するのがお勧めかと思います。

今回はここまでです。最後まで閲覧くださりありがとうございました。