【さーばれすあーきてくちゃ】

サーバレスアーキテクチャ とは?

公開:
💡 サーバを気にせずコードだけ書けばいい、開発者の理想郷
📌 このページのポイント
サーバレスアーキテクチャの仕組み イベントソース HTTPリクエスト ファイル保存 スケジュール API Gateway ルーティング 関数(Functions) 関数A: 認証処理 実行時: 200ms 関数B: データ取得 実行時: 500ms 関数C: 画像変換 実行時: 1200ms 自動スケール 0 → N インスタンス サービス DB Storage Queue 従量課金: 実行回数 x 実行時間 x メモリ
サーバレスアーキテクチャのイメージ
ひよこ ひよこ
サーバレスってサーバがないってこと?
ペンギン先生 ペンギン先生
よくある誤解だけど、サーバは裏側にちゃんと存在しているよ。開発者がサーバの管理を一切しなくていいという意味で「サーバレス」なんだ。電気を使うとき発電所のことを考えないのと同じイメージだね
ひよこ ひよこ
具体的にはどう使うの?
ペンギン先生 ペンギン先生
たとえばAWS Lambdaなら、画像がアップロードされたらサムネイルを生成する関数を書いておくだけでいいんだ。アップロードがあったときだけ関数が実行されて、使った分だけ課金されるよ
ひよこ ひよこ
普通のサーバと比べて何がいいの?
ペンギン先生 ペンギン先生
まずサーバの構築やOSのアップデートが不要になるのが大きいね。あとアクセスが急に100倍になっても自動でスケールしてくれるんだ。深夜にアクセスがゼロなら課金もゼロだから、コスト効率もいいよ
ひよこ ひよこ
デメリットはないの?
ペンギン先生 ペンギン先生
コールドスタートといって、しばらく実行されていない関数が呼ばれると起動に数秒かかることがあるんだ。あとAWS LambdaからAzure Functionsに移行しようとすると書き直しが必要になるベンダーロックインの問題もあるよ
ひよこ ひよこ
じゃあ全部サーバレスにすればいいってわけじゃないんだね
ペンギン先生 ペンギン先生
そうだね。常時稼働が必要なシステムや、実行時間が長い処理には向かないんだ。短時間で完了するイベント駆動型の処理に最適だよ。最近はコンテナとサーバレスを組み合わせるハイブリッド構成も増えていて、適材適所で使い分けるのがトレンドだね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「サーバレス」って出てきたら「サーバ管理不要で関数単位でコードを動かす仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Serverless Architecture」 = サーバ不要のアーキテクチャ
💬 serverlessは「サーバがない」という意味だけど、実際にはサーバは存在していて管理をプロバイダに任せるという意味だよ
← 用語集にもどる