GAE/Jのスケーリングを設定して出来るだけ無料で運用する

GAE(Google App Engine)は、デフォルトの設定ではリクエストの数に応じて自動でインスタンスを起動したり、停止したりします。このインスタンスの合計の起動時間が28時間いないであれば無料です(2018/04現在)。
無料で運用するために、このインスタンスの設定を調整する必要があります。
インスタンスの設定は、WEB-INF/appengine-web.xmlで行います。
下は「応答速度よりも課金を減らすことを優先する」設定の例です。
  • min-idle-instances
    アイドルしてるインスタンスの最小数を0にします。アクセスがないとすべてのインスタンスが停止するので、課金の節約が出来ます。そのかわりJavaのようなSpin upが遅い時言語/フレームワークの場合は、インスタンスが停止しているときにアクセスしてきた人の応答が悪くなります。
  • max-idle-instances
    アイドルしてるインスタンスの最大数を1にします。アクセスが減ると、すぐにインスタンスを停止するので課金の節約が出来ます。
  • min-pending-latency
    リクエスト(アクセス)が Pending Request Queue で待つ時間の下限を設定しています。処理待ちリクエスト(アクセス)が発生しても、この時間以上待たされないときは、新しいインスタンスが起動しません。
  • max-pending-latency
    リクエスト(アクセス)が Pending Request Queue で待つ時間の上限を設定しています。この時間以上待たされると、新しいインスタンスが起動します。この値のデフォルト値は30msなので、2000msに設定しなおしています。この値が小さいすぐに新しいインスタンスが作られるので注意してください。