1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

サーバーレスについて

Posted at

0. 背景

サーバレスアーキテクチャという言葉を聞いたことがあった。

英語のサーバレス(Severless)という言葉から、サーバが存在しないと勝手に思ったが。
本当に?サーバが存在しないって、そんなのできる?という疑問もあったので、どういう意味が調べてみた。

1.サーバは存在する

サーバレスというのは、サーバのバックエンドが存在しないという意味ではない。

バックエンドは存在する。

しかし、直接サーバを管理する必要がないということ。

2.なぜサーバレスというものが生まれたか

仮に、ウェブアプリを開発していると想像してみる。

サーバが必要であれば、サーバを買うしかない、という時があった。

サーバ用のパソコンを買って、社内のどこか、家のどこかに置く。

そして、電源を入れて、動かせる。

もし、ウェブアプリに接続が急に増えて、サーバが耐える通信トラフィックを超えそうだったら?

早く、メモリを注文してサーバに追加しなければならない。

つまり、ハードウェアも、ソフトウェアも管理しないといけない。

その中で、AWSのEC2というサービスが現れ、サーバを借りて使用することができるようになった。

それにより、急なトラフィックの増加にも、簡単に対応できるようになった。

直接メモリを追加する必要なく、お金さえ払えば、AWSの方で容量など簡単に追加できるから。

この時点、サーバのハードウェアを直接管理するリスクは、ウェブアプリ開発側ではなく、AWSサービス提供会社が負うことになったはずだ。

しかし、サーバのソフトウェアを直接管理する際の責任は、まだウェブアプリ開発側が持っている。

サーバのセキュリティー、アップデート、バックアップなど。

サーバのソフトウェア管理も誰かに任せて、本当の仕事、アプリ開発に集中したいならどうしたらいいか?

3.バックエンドを小さい関数に分ける

バックエンドを小さい関数に分け、直接管理しないサーバにアップする。

例えば、AWSのLamda。

サーバレスではない場合、サーバは24時間リクエストに応答するため、待機している。

サーバレスの場合、アップロードした関数は、基本的に寝ている。リクエストがあった場合のみ、動作することになる。

4.メリット

リーズナブルな費用

サーバレスではない場合、リクエストがあっても、なくても、かかる費用は変わらない。

24時間リクエストに応答するため、待機しているから。

サーバレスの場合、リクエストがあって、関数が実行されたら、お金を払う。

もし急にユーザーが1000名増えたら?AWSは関数のコピーを作成して実行する。

ユーザーがいなくなったら?また寝る。

サーバの管理を気にせず、本質的な作業に集中できる

サーバのセキュリティー、アップデート、バックアップなどから開放できる。

本当に必要な作業、アプリ開発に集中できる。

5.デメリット・懸念

関数の開始までかかる時間

リクエストが来るまで、サーバの関数は寝ている。

リクエストが来たら、関数を起こして、実行する準備が必要。

大きな差はないかも知れないが、サーバが24時間待機していた時に比べると、より時間がかかるはずだ。

1msの遅れも許されない場合は、サーバレスはいい選択ではないかも知れない。

(よく使われる関数は、眠らせずに待機しておく設定があるかも?)

サーバ提供者に依存しすぎでは?

まず、アプリをサーバレスに相応しい仕組みに変更するか、最初からサーバレスを考慮して設計する必要がある。

また、サーバに対して直接コントロールできなくなる。

そして、もし他のクラウドサービスに引っ越し(マイグレーション)が必要になったら、簡単にできそうかどうかもわからない。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?