API は通常、ステートレスになるように設計されています。つまり、リクエストデータを保存したり、セッション間で情報を保持したりしません。スケーリング方法を検討する際には、このステートレスという性質が極めて重要です。ステートレス API では、インスタンス間でデータを複製する必要がないため、水平スケーリングの方がより効率的かつ容易に実行できます。API クライアントは特定のサーバーインスタンスに依存せずに機能するため、システム管理者は API の運用に影響を与えることなく、必要に応じて VM を追加または削除できます。
ステートフルであることは、悪いことではありません。実際、目的のアプリ機能を実現するために不可欠である場合があります。ただし、ステートフルアプリの場合、水平スケーリングを実行することは非常に困難です。これを行うためには、保存されているデータを元のバージョンのアプリから新しいインスタンスにコピーする必要があります。
一方、ステートレスアプリや API は、リクエストデータを保存しないアプリや API です。メモリー内にセッションデータを保持しません。セッションが開始されるたびに、アプリはクライアントに初めて会ったかのようにふるまいます。セッションが終了すると、セッションの記憶がなくなり、「さようなら」となります。
ステートレスアプリでは、どの VM が API コールに応答しているかは重要ではないため、水平スケーリングが可能です。API クライアントは API をホストしている無数の VM を呼び出すことができるため、それは問題になりません。システム管理者は、API の動作に影響を与えることなく、必要な数の VM を追加または削除できます。