■お題
いまやクラウドはあたりまえ。
ということで、OpenStackで、モバイルアプリを組むということは、あたりまえですね!
(そうなのか?)
そして、モバイルアプリは大人気なので、
複数サーバー立ち上げて、ロードバランシングがあたりまえですね!
(そうなのか?)
そして、アプリはすべてRESTfulというわけにはいかないので、
セッションを使うのがあるのも、あたりまえですね!
(これは、そんな気がする・・・)
ということで、
OpenStackでロードバランサーをいれ、
そこで、セッションが継続するようにしたい
(セッションパーシステンス)という要望があります。
※DBにセッション内容を入れれば?(=セッション in DB)という
考え方がありますが、それはDBのところでSPOFがおこること、
かならずDBとの通信が起こるので、通信の問題から却下とします
SPOFが起きないように、Cassandraを複数台おき、そこにセッション
内容を入れるということも考えられますが、そこまではしないということで
今回は、セッションパーシステンスを使うということを考えます。
■普通に考えると・・・
OpenStackのロードバランサは、neutron LBaaS
そのインストール方法は、
OpenStackでNeutronのLBaaSを有効にする
https://www.uramiraikan.net/Works/entry-2020.html
や
OpenStack Neutronを使ってWebシステムを構築する実践的な方法 (3/3)
http://www.atmarkit.co.jp/ait/articles/1501/13/news035_3.html
で、それをセッションパーシステンスにするには、
ここに
SOURCE_IP,
HTTP_COOKIE,
APP_COOKIE
などを設定すればよいと書いてある(APIによる設定方法は3章)
■気になるのは・・・
このneutronをMidoNetに変えたい場合。
MidoNetのロードバランサは、ここ
第9章 レイヤ4のロードバランシング
https://docs.midonet.org/docs/v2015.06/ja/operations-guide/content/l4lb.html
の説明だと思うんだけど、ここに(以下太字は上記サイトより引用)
MidoNetロードバランサーの制約
MidoNetはロードバランサーを設定するために、Neutron APIを使います
(https://wiki.openstack.org/wiki/Neutron/LBaaS/API_1.0でドキュメント化されています)
しかし、すべてのNeutron LBaasフィーチャーがMidoNetでサポートされているわけではありません。
と書いてあって、そのあと
ソースIPセッションがパーシステンスです(もしくはクッキーかURL)
ってなっているんだけど、これは、cookie persistenceが出来るといっているのだろうか?
(=「もしくは」以下のクッキーが相当)
それとも、session persistenceはソースIPだけですという意味なのだろうか?
上のほうにしか読めない。しかし、そのあと、スティッキーソースIPの説明しかない
(cookie persistenceの説明が無い)
ソースIPだけだと、モバイルからアクセスした場合、ケータイキャリアからアクセス
されることになるけど、その場合、同一IPで他の人から来ることもあるので、
問題が起こる(Cookieを食べさせて判断したほうが安全)
・・いや、やればわかるんだけど、そんな設備が無い
いまやクラウドはあたりまえ。
ということで、OpenStackで、モバイルアプリを組むということは、あたりまえですね!
(そうなのか?)
そして、モバイルアプリは大人気なので、
複数サーバー立ち上げて、ロードバランシングがあたりまえですね!
(そうなのか?)
そして、アプリはすべてRESTfulというわけにはいかないので、
セッションを使うのがあるのも、あたりまえですね!
(これは、そんな気がする・・・)
ということで、
OpenStackでロードバランサーをいれ、
そこで、セッションが継続するようにしたい
(セッションパーシステンス)という要望があります。
※DBにセッション内容を入れれば?(=セッション in DB)という
考え方がありますが、それはDBのところでSPOFがおこること、
かならずDBとの通信が起こるので、通信の問題から却下とします
SPOFが起きないように、Cassandraを複数台おき、そこにセッション
内容を入れるということも考えられますが、そこまではしないということで
今回は、セッションパーシステンスを使うということを考えます。
■普通に考えると・・・
OpenStackのロードバランサは、neutron LBaaS
そのインストール方法は、
OpenStackでNeutronのLBaaSを有効にする
https://www.uramiraikan.net/Works/entry-2020.html
や
OpenStack Neutronを使ってWebシステムを構築する実践的な方法 (3/3)
http://www.atmarkit.co.jp/ait/articles/1501/13/news035_3.html
で、それをセッションパーシステンスにするには、
ここに
SOURCE_IP,
HTTP_COOKIE,
APP_COOKIE
などを設定すればよいと書いてある(APIによる設定方法は3章)
■気になるのは・・・
このneutronをMidoNetに変えたい場合。
MidoNetのロードバランサは、ここ
第9章 レイヤ4のロードバランシング
https://docs.midonet.org/docs/v2015.06/ja/operations-guide/content/l4lb.html
の説明だと思うんだけど、ここに(以下太字は上記サイトより引用)
MidoNetロードバランサーの制約
MidoNetはロードバランサーを設定するために、Neutron APIを使います
(https://wiki.openstack.org/wiki/Neutron/LBaaS/API_1.0でドキュメント化されています)
しかし、すべてのNeutron LBaasフィーチャーがMidoNetでサポートされているわけではありません。
と書いてあって、そのあと
ソースIPセッションがパーシステンスです(もしくはクッキーかURL)
ってなっているんだけど、これは、cookie persistenceが出来るといっているのだろうか?
(=「もしくは」以下のクッキーが相当)
それとも、session persistenceはソースIPだけですという意味なのだろうか?
上のほうにしか読めない。しかし、そのあと、スティッキーソースIPの説明しかない
(cookie persistenceの説明が無い)
ソースIPだけだと、モバイルからアクセスした場合、ケータイキャリアからアクセス
されることになるけど、その場合、同一IPで他の人から来ることもあるので、
問題が起こる(Cookieを食べさせて判断したほうが安全)
・・いや、やればわかるんだけど、そんな設備が無い