AI活用の教科書
バックエンド設計ふつう2分で読了

ステートレス

Statelessすてーとれす

ひとことで言うと

サーバが前回のやり取りを覚えず、リクエストを一回ごとに独立して処理する設計です。

📖 もうちょい詳しく

何が新しいの?

ステートレスは、サーバが「前のやり取り」を覚えていない設計のことです。一回ごとのリクエスト(依頼)を、それぞれ独立したものとして処理します。Webの仕組みが大きくなるにつれ、たくさんのサーバで負荷を分け合う必要が出てきました。そのとき、サーバが記憶を抱え込まない作りがあつかいやすかったため、よく選ばれるようになりました。

どうやって動いてるの?

ステートレスなサーバは、依頼を受け取るたびに「処理に必要な情報」を、その依頼の中から読み取ります。前回までの状態(やり取りの途中経過)は、サーバ自身ではなく、データベースやセッションの保管庫など、外側の場所に持たせます。だから、どのサーバに依頼が届いても、同じように答えを返せます。

何ができるの?

サーバを何台にも増やしやすくなります(これを水平スケールと呼びます)。記憶を持たないので、1台が止まっても別の台がそのまま引き継げて、止まりにくい作りになります。アクセスが増えたら台数を足し、減ったら減らす、といった調整もしやすくなります。

🌱 身近なたとえ

役所の総合窓口で例えると、分かりやすいかもしれません。ステートレスな窓口では、どの担当者に並んでも、あなたが必要書類を毎回そろえて出せば手続きが進みます。担当者はあなたの前回の用件を覚えていませんが、書類さえあれば誰でも対応できます。だから窓口を増やしても混乱しにくい、というわけです。

✅ まず覚えるポイント

  • サーバが前回のやり取りを覚えない設計です
  • リクエストは一回ごとに独立して処理されます
  • 状態(途中経過)は外部の保管庫に持たせます
  • どのサーバに届いても同じ答えを返せます
  • 台数を増やしやすく(水平スケール)、止まりにくくなります

🧭 よくある勘違い

状態をまったく持てないということ?

そうではありません。ステートレスは「サーバ自身が状態を抱え込まない」という意味です。ログイン状態や買い物カゴの中身などは、データベースや外部のセッション保管庫に置いておきます。状態を消すのではなく、置き場所を外に移している、と考えると正確です。

ステートレスなら必ず速くて優秀なの?

万能というわけではありません。状態を外に取りに行くぶん、やり取りが増える場合もあります。台数を増やしやすい・壊れにくいといった利点と引きかえに、設計の手間が乗ることもあります。向き不向きで選ぶもの、という距離感がちょうどよいです。

🧩 関連して覚えると楽な言葉

  • セッション: ログイン状態などの途中経過を、外側で覚えておくしくみ
  • REST: ステートレスを前提に設計される、代表的なWeb APIの作法
  • スケーラビリティ: 利用が増えても処理を増やせる度合い。ステートレスが効く場面
  • ロードバランサー: 届いた依頼を複数のサーバへ振り分ける係

🏁 ひとことでまとめ

記憶を外に預け、依頼を毎回まっさらな状態で受ける——それが、台数を増やしやすく堅牢な設計、ステートレスです。