サーバーレス(FaaS)

luagate/serverless-introサーバーレス入門20クラウド・インフラ

上から下へ、全 20 枚そのまま並べています。

発表モードで開く

サーバーレス入門

サーバーレス(FaaS)

サーバーを意識しない 〜関数を置くだけ〜

1
1

目次

今日の流れ

1. サーバー管理の手間の復習

2. サーバーレスとFaaS

3. イベントで動くしくみ

4. メリットと向き不向き

5. まとめと振り返り

2
2
サーバーレス入門 - イントロ

今日のゴール

この時間で身につけてほしいことです。

  • サーバーレスの考え方をイメージできる
  • FaaSが「関数を置くだけ」だと分かる
  • イベントで動くしくみを説明できる
  • 使った分だけ課金される仕組みが分かる
  • 向いている場面と苦手な場面を見分けられる
10
3
サーバーレス入門 - イントロ

復習 サーバー管理の手間

以前学んだ仮想化やコンテナを思い出すと、サーバーを動かし続けるには手間がかかりました。

  • OSの更新やセキュリティ対応が必要
  • 負荷に合わせて台数を調整する手間
  • 動いていない時間も費用がかかる
  • 壊れたときの復旧も自分で行う
  • この手間を減らせないかという発想が出発点
11
4
サーバーレス入門 - イントロ

サーバーレス とは

サーバーの管理を意識せず、やりたい処理だけに集中できる考え方です。

サーバーレス(Serverless)

サーバーが無いという意味ではなく、サーバーの用意や管理をクラウド側に任せ、利用者は処理の中身だけを書けばよいという考え方。台数調整や起動停止を気にしなくてよい。

サーバー管理をクラウドに任せる

利用者は処理の中身だけ書く

台数の増減を気にしなくてよい

以前学んだ仮想化やコンテナの先にある発想

12
5

サーバーレス入門 - FaaS

2

第2部 サーバーレスとFaaS

関数を置くだけ

20
6
サーバーレス入門 - FaaS

FaaS とは

小さな関数を1つ置くだけで動かせる、サーバーレスの代表的な形です。

FaaS(Function as a Service)

処理を小さな関数の単位で書いてクラウドに登録しておくと、必要なときだけ呼び出されて動くサービス。サーバーの用意や常時起動は不要で、関数を置くだけで使える。

処理を小さな関数で書く

クラウドに関数を登録するだけ

必要なときだけ呼び出され動く

サーバーの常時起動が要らない

21
7
サーバーレス入門 - FaaS

従来とサーバーレスの違い

サーバーを立てて動かし続ける形から、関数を置くだけの形へ変わります。

従来の方式

  • サーバーを自分で用意する
  • 常に起動したまま待機させる
  • 負荷に合わせて台数を調整
  • 動いていなくても費用が発生

サーバーレス

  • 関数を置くだけで使える
  • 呼ばれたときだけ動く
  • 自動で増減してくれる
  • 動いた分だけの費用で済む
22
8
サーバーレス入門 - FaaS

代表的なサービス

主要なクラウドそれぞれにFaaSのサービスがあります。

AWS Lambda
  • Amazonのクラウド
  • FaaSの代表格
Cloud Functions
  • Googleのクラウド
  • 関数を手軽に実行
Azure Functions
  • Microsoftのクラウド
  • 同じく関数を実行
23
9

サーバーレス入門 - しくみ

3

第3部 イベントで動くしくみ

きっかけがあると動き出す

30
10
サーバーレス入門 - しくみ

イベント駆動 とは

何かのきっかけが起きたときだけ関数が動く、という考え方です。

イベント駆動(Event-driven)

アクセスやファイル登録などの出来事をきっかけにして処理を動かす方式。常に待ち構えるのではなく、きっかけが来たときだけ関数が呼び出されて動く。

出来事がきっかけで動く

常時起動して待たない

必要なときだけ実行される

無駄な待機を減らせる

31
11
サーバーレス入門 - しくみ

関数の例

呼び出されたときに受け取った内容を処理して、結果を返すだけのシンプルな形です。

javascript
// 呼び出されると動く関数
export const handler = async (event) => {
  // 受け取った名前を取り出す
  const name = event.name;

  // あいさつ文を作って返す
  return {
    message: `こんにちは、${name}さん`
  };
};
33
12

サーバーレス入門 - 活用

4

第4部 メリットと向き不向き

使いどころを見極める

40
13
サーバーレス入門 - 活用

動いていない時間の費用(イメージ)

常時起動の方式は待機中も費用がかかりますが、サーバーレスは待機中はほぼかかりません。あくまでイメージです。

25 費用の目安20151050
24費用の目安
2費用の目安
常時起動の方式
サーバーレス

出典: 待機中の費用の傾向を示す概念図(概算)

41
14
サーバーレス入門 - 活用

メリットと注意点

良い面が多い一方で、知っておくべき注意点もあります。

メリット

  • サーバー管理が要らない
  • アクセス増に自動で対応
  • 使った分だけの費用で済む
  • 小さく素早く始められる

注意点

  • 久しぶりの呼び出しは遅いことがある
  • 長時間動かす処理には向きにくい
  • 動きを追いかけにくいことがある
  • クラウドの仕様に合わせる必要
42
15
サーバーレス入門 - 活用

コールドスタート とは

しばらく呼ばれていなかった関数が、最初の起動でひと呼吸かかる現象です。

コールドスタート(Cold Start)

待機していた関数が久しぶりに呼び出されたとき、動き出すまでに少し時間がかかること。お店のシャッターを開けて準備するイメージで、最初の一回だけ反応が遅くなる。

久しぶりの呼び出しで起きる

最初の一回だけ反応が遅い

2回目以降は速くなりやすい

即応答が必須の用途では注意

43
16
サーバーレス入門 - まとめ
クイズ

振り返りクイズ

今日の内容を確認しましょう。

サーバーレス(FaaS)の課金の考え方として最も適切なものはどれ?

A
契約した瞬間に全額を一括で払う
B
関数が実際に動いた分だけ払う
C
待機している時間にも常に高額がかかる
D
アクセス数に関係なく毎月定額のみ
50
17
サーバーレス入門 - まとめ
答え

振り返りクイズ 解答

サーバーレス(FaaS)の課金の考え方として最も適切なものはどれ?

A
契約した瞬間に全額を一括で払う
B
関数が実際に動いた分だけ払う
C
待機している時間にも常に高額がかかる
D
アクセス数に関係なく毎月定額のみ

サーバーレスは関数が呼び出されて実際に動いた分だけ費用がかかります。待機している時間は基本的に費用がかからないため、たまに動く処理ではとても経済的です。

51
18
サーバーレス入門 - まとめ

質疑・次回予告

今日のまとめと、次に学ぶテーマです。質問があればここで受け付けます。

今日のおさらい
  • サーバーレスは管理を任せて関数に集中
  • イベントが起きたときだけ動く
  • 使った分だけの課金で経済的
次回予告
  • Kubernetes 〜コンテナを束ねて管理〜
  • たくさんのコンテナを束ねる司令塔を学ぶ
52
19
"

サーバーレスはサーバーの管理を手放し、関数を置くだけで処理に集中できる考え方。イベントが起きたときだけ動き、使った分だけ払う。手間と無駄を減らす、新しいサーバーの付き合い方です。

サーバーレス入門

53
20