このエントリーをはてなブックマークに追加

第三話:マーベラスコネクトLite

ここは喫茶「まべこねこ」
閑古鳥が鳴くこの店ですることもない、まべコネたん
暇を持て余してるところに店長が急に話題を降ってきました

【祝】マーベラスコネクトLite【公開】
ここまで読んでおいてなんだけど…この二人何者?
まべコネたんよ、マーベラスコネクトLiteというものを知ってるかの? スマホじいじい_1
まべコネたん
まべコネたん_1
…Lite?
なにそれ?
(マーベラスコネクトは何だか聞き覚えある気がするけど)

やはり知らんかったか。

まぁ、そうじゃと思ったわい。

ふぉっふぉっふぉ。

スマホじいじい_1
まべコネたんまべコネたん_1 (…イラッ)
ふふ、仕方ないのぅ。
紹介してやってもよいんじゃが…。(チラッ
スマホじいじい_1
まべコネたんまべコネたん_1 いや、別にいいや。
…… スマホじいじい_1

………

スマホじいじい_1
まべコネたんまべコネたん_1 (暇を持て余す作業に戻る)

いやいやいや、紹介させてください!

お願いします~~~~~!!!

スマホじいじい_1
まべコネたんまべコネたん_1 最初からそういえば良いのに。 

まぁ…バイト代上げてくれるなら考えなくないけど。

本当じゃな!?

 

じゃあ、時給2000円から3000円にアップするから紹介させてもらっても…よいかのう?(チラッ

スマホじいじい_1
まべコネたんまべコネたん_1 …仕方ないなぁ~聞いてしんぜよう。
(万事オッケーだわ)
はは~~~~… 

それでは、紹介させてもらうぞい。

この度、マーベラスコネクトの一部機能がオープンソースとして公開!

それが…

マーベラスコネクトLite !!

GitHubで絶賛公開中じゃ!!

スマホじいじい_1
まべコネたんまべコネたん_1 おぉ~!!それは(きっと)すごいね!!!
(時給3000円の笑顔も公開) 

で、何ができるの?

『ユーザの登録・認証』や『引き継ぎ機能』などが構築できるぞい!

そのための『ユーザの登録・認証・取得』のAPIも実装されとるのじゃ。

他にもNGワードAPIもあるんじゃぞ。

スマホじいじい_1
まべコネたんまべコネたん_1 構築って難しそう!!
ふふ…構築手順や詳細な内容についてまとめられておる 

マーベラスコネクトLiteのWikiがあるのじゃ!

こちらには『ユーザの登録・認証』や『引き継ぎ機能』のシーケンス図などもあるので、参考しにしてもらえると嬉しいぞい。

スマホじいじい_1
まべコネたんまべコネたん_1 どんどん参考にしちゃって!!!
(何するかはわからないけど)
また、使ってみて気になるところや改善点などがあれば
どんどんIssuesを上げてもらって構わんぞい!!
スマホじいじい_1
まべコネたんまべコネたん_1 構いません!!
(Issuesって何?)
というわけで、生まれたばかりの 

マーベラスコネクトLite を…

スマホじいじい_1
まべコネたんまべコネたん_1

よろしくお願いします!!


まべ☆てっくvol.1開催のお知らせ

秋風が心地よい時節・・・
いや、ちょっと風が激し過ぎる気がしますが、
如何お過ごしでしょうか?

まべ☆てっく運営、大野です。

名乗りで名前が出てしまっていますが、

まべ☆てっく

を開催することになりました!

☆なんて付いてしまっていますが、
れっきとした、エンジニア向けの勉強会でございます。

テーマは「RDBの四方山話」。

RDBのあーんな噺やこーんな話が聞けちゃうかも!?
ビールを飲みながらの交流会もございます!

【開催日時】
9/8(木) 19:00-(受付開始18:30)

【開催場所】
株式会社マーベラス
東京都品川区東品川四丁目12番8号
品川シーサイドイーストタワー 10階

【発表者】
奥野 幹也様(日本オラクル株式会社 MySQL Global Business Unit)
リレーショナルデータベースとの上手な付き合い方

菅野明洋様(株式会社 Aiming)
DB設計を静的解析するツールを作ってみた

大西一嘉(株式会社マーベラス)
失敗事例にみるDBの負荷試験の重要性、他

※LT希望者募集中です。

【定員】
40名

【参加方法】
こちらにご登録下さい。
http://marv-tech.connpass.com/event/36743/

ぜひぜひ、お誘い合わせの上、ご参加下さいませ!
皆様にお会い出来ることを楽しみにしています。


PHP7を同時接続25,000/秒、webを36台ならべて負荷計測してみた

●PHP7を、商用環境で使いたい!

さて、PHP7が2015年12月に正式リリースされてから、早4か月が経ちました。
そろそろ安定してきたかな…、と思いつつも、まだまだ商用環境に導入するのは不安だと思います。

「本当にPHP7って高速なの?」
「PHP7って安定して動くの?」

いろいろな不安があるかと思います。
何しろ、PHP5からのメジャーバージョンアップですから。
普通に考えたら、まだ時期尚早かもしれません。

でも、やはり使いたい。
なにしろ、PHP5と比較して2倍の速度で動作するというのは、大きな魅力です。

そこで、「本当に商用環境で使えるか」という観点で、「リアルな」検証をしてみたいと思います。

●本当に使える、リアルな計測をしよう!

PHP7はPHP5に比べて、高速に動作するという触れ込みです。
実際に「だいぶ速くなったよ」といった検証結果が多く見受けられます。

しかし「これだ!」という検証内容がなかなか見つからないわけです…。

例えば、プログラミングで言うところのハローワールドレベルのものや、単純なコマンドをひたすらループさせたもの等々。
何でもそうですが、ベンチマークで計測した速度と実際に使ってみたときの速度って、結構違いますよね。

とにかくリアルなプログラムで計測したい。
そこで実際に弊社で開発中のアプリケーションを使って負荷試験をしてみました。
しかも、結構な高負荷をかけて。

「安定して動く」プログラムが「安定して動かなくなる」のは、負荷が上がってリソースがひっ迫したときや、並列性が上がったときではないでしょうか。
PHP7自体も勿論プログラムの集合体ですから、問題が発生するとすれば、そういったタイミングと推測できます。

さて、実際に負荷をかけてみました。

●高負荷で計測しよう!

※サーバ構成/ミドルウェアについては、開発中のアプリケーションということでぼかしてあります。お察しください…。

サーバ 台数 CPUコア数 メモリ(GB) 備考
web(APIサーバ) 36 8 16 内訳:34台がPHP5、2台がPHP7。
分散はLVSにより実現(分散方式は単純なラウンドロビン)
DB(master/slave) 3 40 120 -
KVS(memcached/redis) 3 4 16 -

 

ミドルウェア バージョン
php 7.0.4
apache 2.2系
MySQL 5.5系
memcached 1.4.16
redis 2系

 

その他
負荷ツールはjmeterを使用
jmeterからのアクセスは外部ネットワーク経由
jmeterを稼働させるクライアントマシンは25台
jmterシナリオは、実際のアプリケーション操作をシミュレートしている
jmeterはrampupやwaitを入れることで実行タイミングをずらしている(実際のユーザーのプレイ状態に近づけるため)
cactiを使用して各種サーバ負荷を計測
newrelicも使ってみました

 

●計測結果

レスポンスタイム

・newrelicによる計測結果です。
・jmeterからのリクエストを、平均して75msec程度で処理しています。内訳は、以下の通りです。

  • MySQLが10msec程度
  • Memcachedが数msec
  • Redisは一瞬
  • PHPは60msec強(但し、 DB処理等のウエイトも含まれる)

・この辺はアプリケーションの作りによるため、PHP5/PHP7の比較とは直接無関係ですが、アプリケーションの性質を理解するための参考値としてご参照ください。
・ちなみに当該グラフはPHP5のwebサーバにて取得しています。

スループット

・スループットです。webサーバ一台に対して、ページビューで約120/sec程度の負荷がかかっているとご理解ください。
・web台数が36台ですので、ページビューの総計は約4,320/secとなります。
・こちらのグラフも負荷の規模を理解するための参考値とお考えください。

※以下は、web02がPHP5のグラフ、web36がPHP7のグラフとなります。

CPU

・CPU負荷です。コアごとにグラフが分割されていますので100%が最大値となります。
・負荷は全CPUに綺麗に分散されている状態です(つまりどのコアも同程度の負荷)
・PHP5は80%程度のCPU使用率ですが、PHP7は40%程度となります。大きな差ですね。

Load Average

 

・ロードアベレージです。グラフの単位が異なっていることにご注意ください。
・PHP5は15~20程度ですが、PHP7は1以下です。
・jmeterからのリクエストはラウンドロビンにより分散していますので単純に比較はできませんが、同じ処理をするのであれば圧倒的にPHP7の方が軽いということは解ると思います。

コンテキストスイッチ

・コンテキストスイッチ(タスク切り替え)の回数です。
・実運用上あまり問題にならない数値ではありますが、PHP5に比べてPHP7の方が多いことが確認できます。
・並列性を高めることで高速化に寄与する仕組みなのかもしれませんが、掘り下げた調査はしていません(すいません)。

メモリ

・メモリ使用量です。
・一番下の茶色い部分が実メモリ使用量です。その上の肌色の層がキャッシュ、緑の層が空き領域です。
・PHP5が12Gbytes使用しているのに比べ、PHP7は8Gbytes程度です。CPU同様、大きな差ですね。
・PHP7の方がキャッシュ使用量が多いのも、良い意味で期待ができるところです。

参考までにDBのクエリ処理状況

・マスターDBが処理したクエリの状況です。内訳は以下となります。

  • 赤色…select
  • 黄色…insert
  • 緑…update
  • ピンク…その他も加えた総数

(他にdeleteなどもあるが見えない程度)
・秒間で20,000クエリ以上捌いているようなアプリケーションを動かしている、というところから色々と想像を膨らませていただければ幸いです。

その他

以下は、PHP5/PHP7で差が無いグラフです(PHP5のものだけ張ってあります)
トラフィック等は変わらなくて当たり前の数値ではありますが、あくまでも参考ということで…

●使っても大丈夫そう、でも…

負荷計測は約6時間続けましたが、特に大きな問題は発生していません。
安定して動作していたと言える結果でした。

性能面では、特にCPU、メモリについて大きな差が見受けられました。
明らかにPHP7の方が性能が良いと言って間違いないと思います。

今回のテストの場合、それぞれのwebサーバが処理しているページビューの数はほぼ同一ですので、全てのwebサーバをPHP5からPHP7に置き換えた場合、webサーバの台数がかなり削減できると推測されます。

ちなみにコードレベルでのPHP5->PHP7への移行コストは一般的に低いと言われているようですし、実際、今回の負荷計測に使用したアプリについては、かなり移行コストが低かったという事実もあります。

しかし問題は、言語仕様の違いよりもインタプリタ(ライブラリ)の違いにあるのではないでしょうか。

例えばインタプリタ(ライブラリ)内部のバグで、apacheがsegmentation faultで落ちたりすると…
いや、素直に落ちてくれればまだ良いのですが、中途半端に生き残ってクライアントからの接続をacceptできたりする状態だと、障害に繋がる可能性が高くなるわけです。
昔であればライブラリ内部をアセンブラレベルでトレースして、「メモリコピーのときにアライメントがずれて落ちてますよ今すぐ何とかしてくださいよこっちは寝てないんですよ」などとライブラリベンダに文句を付けたりしていたわけですが、
現在はそんな時代でもなく、さらに言えば、そんなことをするくらいならPHPなんか最初から使わないわけです。

つまりは、低コストで安全に使えないと意味がないのです。

PHP7が枯れるまでは大き目のバグfixや、セキュリティ問題の修正等によるアップデートが続くと予測されますので、運用コストの一部として十分に考慮する必要があります。
アップデートによるエンバグも怖いですから、いきなり本番環境のPHPをアップデートするわけにもいかないですしね…。

せっかくサーバ費用を削減しても、運用コストが増えてしまったのでは本末転倒です。
なかなか難しいですね…。


第二話:消えたパスワードの謎

ここは喫茶「まべこねこ」
閑古鳥が鳴くこの店ですることもない、まべコネたん
仕方がないので店長にこの前の疑問を投げかけます

マーベラスコネクトにパスワードは保存されないのか?
ここまで読んでおいてなんだけど…この二人何者?
まべコネたん
まべコネたん_1
店長、第一話で言ってた「パスワードを保存してない」ってどういうことなの?
第一話って…ずいぶんメタ的じゃの。
まぁ、そのままの意味じゃマーベラスコネクトでは
どのサイトの
どのIDが
どのゲームの
どのゲームユーザーか…の情報を保存しておる。
つまり、
どのパスワードを使用したか…は保存しておらぬのじゃよ。
スマホじいじい_1
まべコネたん
まべコネたん_1
なんだか「どの」が多すぎで、世界の法則が乱れそうだよ
店長殿~! 

 

あれ?
でも、マーベラスコネクトでFacebookを選択した際にIDとパスワードどっちも入力したんだけど…
その後に、あの許可画面が出てきたような…。

ふふ、あのログイン画面と許可画面じゃが…あれは 

「マーベラスコネクト」の
サイトではない!!

スマホじいじい_1
まべコネたんまべコネたん_1

な、なんだって~~~ッ!?

あれはな、選択したOpenIDを管理しておるサイトに飛ばしておるのじゃ。
よく見てみい! 

まべコネ_連携_2

今回は「Facebook」のサイトじゃ。つまりお主は…

Facebookのサイト内でログインをし、
Facebookのサイト内でマーベラスコネクトへのアクセス許可を与えたんじゃ!

スマホじいじい_1
まべコネたんまべコネたん_1 ということは…マーベラスコネクトさんのおかげだと思っていたのは… 

全部Facebookさんのおかげだったってこと?

なんかそう言われるとあれじゃが、まぁ…そんなところじゃ。 スマホじいじい_1
まべコネたんまべコネたん_1 じゃあ、許可した後ってどうなるの?
許可したあとは、マーベラスコネクトに
「自分(まべコネたん)の情報にアクセス可能な鍵」とFacebookのユーザIDが送られてくるのじゃ。 

鍵はアクセストークンと呼ばれるたくさんの文字の羅列じゃ。
あと、アクセス可能とは言ってもあらかじめまべコネたんが許可を与えた範囲の情報になるぞい。

スマホじいじい_1
まべコネたんまべコネたん_1 ん? 

FacebookのユーザIDだけが送られてくるわけじゃないの?

うむ、ユーザIDだけ送られてきても、それが正しくFacebookから送られたものか判別できないからのぅ。 

それにIDだけじゃそのユーザの情報にアクセスできんのじゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 じゃあ、アクセストークンがあれば判別できて、アクセスもできるってこと?
うむ、まずは判別じゃが… 

アクセストークンとあらかじめマーベラスコネクトがFacebookからもらっている鍵を検証することで
そのIDと鍵が本当にFacebookから送られてきたものかどうかを判別できるのじゃ!

スマホじいじい_1
まべコネたんまべコネたん_1 おぉ~検証ってところで色々丸められてる気がするけど、
すごい(んだろうなぁ、たぶん)!!
次に、アクセス… 

アクセストークンは最初に言ったように「自分の情報にアクセス可能な鍵」じゃから、
それを使えば許可された情報…今回の場合は公開情報とメールアドレスじゃな…
Facebookにある情報にアクセスできるのじゃ。

 

アクセストークンがあれば必要な情報にアクセスすることができる、
つまり…パスワードは必要ないということになるのじゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 なるほど~。 

あ…ここに来てようやくパスワードの件を回収したっぽい?

 

どうしてTwitterがないの?

参考リンク

まべコネたん
まべコネたん_1
なんとなく、パスワードが保存されないってのは分かったけど… 

よくTwitterもこういう認証に使われている気がするんだけど、マーベラスコネクトにはなんでないの?

話せば長くなるがええかのぅ? スマホじいじい_1
まべコネたん
まべコネたん_1

え”っ!!

それなら別に…

うむ、では話すとしよう。
Twitterが何故選択肢にないのかを…それはじゃな、 

Twitterの仕組みではその人、本人かどうかが確認できないからじゃ!!

スマホじいじい_1
まべコネたんまべコネたん_1 えー…そうなの?
(あ、結局話すんだ…
うむ、TwitterでもFacebookと同じように「自分の情報にアクセス可能な鍵」、すなわちアクセストークンを発行する仕組みを使っておる。
この仕組みはOAuthといわれておるものじゃ。 

OAuthの仕組みで、まべコネたんがマーベラスコネクトで本人確認をさせようとする場合は…

Flow_OAuth

このような流れになるじゃろうな。

(あくまでも、もしもの話です、実際はマーベラスコネクトではTwitterによる認証はできません)

 

スマホじいじい_1
まべコネたんまべコネたん_1 あれ?
うまくいってるし!? 

本人確認できてるし!!

そう見えるじゃろ? 

じゃがそうはいかんのじゃ。
まず、この後にわしが別のサービスを提供して、それにまべコネたんが入るとしよう。

スマホじいじい_1
まべコネたんまべコネたん_1 え~~~? 

私、店長が提供するサービスなんかに入るかなぁ?

いや、例えじゃから。入ってお願い。 

…で、入るとして話を続けるぞ。

スマホじいじい_1
まべコネたんまべコネたん_1 結局、入っちゃうんだ… 

仕方ないなぁ。

入るとどうなるか… 

Flow_スマホじい1

…ふふふ

スマホじいじい_1
まべコネたんまべコネたん_1 なに、その不穏な笑い。 

というか、この店のクーポンとかいらないんだけど…

さて、その後にわしはちょっとしたイタズラを決行する。 

Flow_スマホじい2

引き継ぎをしたまべコネたんのゲーム画面には…

最弱アカウントが!!

スマホじいじい_1
まべコネたん 

まべコネたん_1




湿


!!

た、例えじゃ、例え。
うぷぷぷぷ。 

まぁ、OAuthはあくまで「サービスへのアクセス権限の許可を行う」仕組みじゃからな、
先ほどの例えは無理やりその仕組みで本人確認をさせようとした場合どうなるかというものじゃ。

さて、「暗黒面に落ちたわし」がまべコネたんのアカウントを悪用できないようにするためには、どうすればよいか分かるかの?

スマホじい 

じい_1

まべコネたんまべコネたん_1 いや、全然。
うむ、知ってた。
先ほどFacebookも同じ仕組みと言ったことも覚えておらんのも想定済みじゃ。
スマホじいじい_1
まべコネたんまべコネたん_1 そういえば… 

あれ?
Facebookも同じ仕組みだとすると…同じような結果になるんじゃ…。

まぁ、OAuthの仕組みだけではそうなるの。 

じゃが、Facebookでは先ほどのように悪用することができぬようdebug_tokenというAPIを用意しておる。
これを使うと「自分の情報にアクセス可能な鍵」が「マーベラスコネクト専用の自分の情報にアクセス可能な鍵」に進化するのじゃ!!

スマホじいじい_1
まべコネたんまべコネたん_1 進化とか、なんか急にゲームっぽくなってきた!?
少し前に「アクセストークンとあらかじめマーベラスコネクトがFacebookからもらっている鍵を検証する」と言ったじゃろ?
実は、その検証にはdebug_token APIを使っておるのじゃよ。 

そして、そのAPIで「IDと鍵が本当にFacebookから送られてきたものということを判別」だけではなく
「マーベラスコネクト専用の鍵かどうか」もチェックできるようになっておったのじゃ!!

スマホじいじい_1
まべコネたんまべコネたん_1 一石二鳥!! 

じゃあ、例えばその鍵がマーベラスコネクト専用じゃなかった場合はどうなるの?

送ってきた相手は死ぬ

スマホじいじい_1
まべコネたんまべコネたん_1

嘘!?

うむ、嘘じゃ。 

そもそも、マーベラスコネクトはマーベラスコネクト専用の鍵以外は使いこなすことができんようになっておるんじゃ。
専用でない鍵はエラーを返して、ぽいぽいぽーいじゃ!

選ばれたモノのみ扱え、それ以外には資格さえも与えぬ鍵をFacebookは生み出しておるのじゃ…。

スマホじいじい_1
まべコネたんまべコネたん_1 急に中二臭くなってきた…。 

そんな右腕が疼きそうな鍵を、
ほかのサイト…GoogleやYahoo! JAPANやmixiも生み出してるの?

実は、同じではないのじゃ。debug_token APIはFacebook独自のAPIじゃからの。 

GoogleやYahoo! JAPANそれにmixiは、
標準規格の
OpenID Connectというものを使っておるぞい!!

スマホじいじい_1
まべコネたんまべコネたん_1 わ、またなんか出てきた!!
OpenID ConnectはIDとパスワードを入力した際、従来のアクセストークンと一緒にIDトークンというものも一緒に返してくれるのじゃ。 

そのIDトークンにはどのサービスに対しての鍵かという情報が含まれておるのじゃ。
アクセストークンとIDトークン、2つをセットにしてマーベラスコネクトに渡せば、渡された鍵がマーベラスコネクト専用のものかどうかが分かるのじゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 なるほど。 

Facebookのdebug_token APIとOpenID Connectって仕組みは違うけど
やろうとしてることは同じってわけかぁ。

うむ、そういうことじゃ。
どちらもその鍵を扱うのがどのサービスかということを示しておる。 

そして、それができないためTwitterが選択肢にないという理由じゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 うんうん。 

でも、正直…Twitterアカウントで認証したいけど。

…TwitterもOpenID Connectなどに対応してくれるのを気長に待つしかないのぅ。 スマホじいじい_1
今回のまとめ
ユーザの本人確認と情報へのアクセス許可を確認する画面は、
マーベラスコネクトではなく各IDを管理しているサイトなのじゃ。
スマホじいじい_1
まべコネたんまべコネたん_1 全部、各サイトさんのおかげ♪
各サイトのアクセストークンがあれば、各サイトからそのユーザの情報を取得できる。 スマホじいじい_1
まべコネたんまべコネたん_1 だからパスワードがマーベラスコネクトに保存されないんだね! 

あんしんあんしん♬

Twitterがマーベラスコネクトで使えないのは、
そのアクセストークンがマーベラスコネクト専用のものか判別できないからじゃ。 

 

標準規格のOpenID ConnectやFacebookのdebug_token APIを使えば
アクセストークンがマーベラスコネクト専用のものかが分かるぞい!

スマホじいじい_1
まべコネたんまべコネたん_1 便利な仕組みだね♫
以上じゃが、他になにか聞きたいことはあるかのう? スマホじいじい_1
まべコネたんまべコネたん_1 バイトの時間もう終わりだしあがります!
…お客さん一人も来なかったけど。   

 

てなわけで、次回!
~マーベラスコネクトのちょっと詳しい話2~

またよろしくね♪

そのタイトルからして次に何を話すか決まってない感が満載じゃな…。 スマホじいじい_1

マーベラスコネクたんと愉快な仲間たち

マーベラスコネクトのイメージキャラクターとその仲間を紹介するよ!
温かい目で見守ってあげてください٩(๑❛ᴗ❛๑)۶

マーベラスコネクたん
はじめまして!
マーベラスコネクたんです。
まべコネたんって呼んでね♪
mc_tan
喫茶「まべこねこ」の店員。 

マーベラスのゲームをこよなく愛する少女。
愛称はまべコネたん

閑古鳥が鳴いている喫茶店でいつも元気にゲームを遊んでいる姿がよく見かけられる。
働かなくても給料をくれる喫茶店「まべこねこ」を心から愛している。

休日は街を散策しながらネコの写真を撮りSNSに投稿するという、リア充とオタクの境界のようなことをして過ごすことが多い。

ちなみに、こんな名前なのに
マーベラスコネクトのことはよく知らないぞ!

スマートフォンじい
スマホじいはこちらの素材から生まれました!! 

スマートフォンじいじゃ。
マスターと呼んでくれると
…嬉しいのう。
sg
喫茶「まべこねこ」の店長。 

みんなからはマスターと呼んでほしいのに、店長とかスマホじいとしか呼ばれない。

こんな歳まで親の有り余る資産で生活してきたため、閑古鳥が鳴いている喫茶店にまったく危機感をいだかない。

最近は老害と呼ばれないよう若者の文化や考え方を取り入れようと日々努力している。
そのため、twitterはアニメアイコン。

マーベラスコネクトやそれ周りの技術になぜか詳しい。


第一話:登場!マーベラスコネクト!!

ここは喫茶「まべこねこ」
閑古鳥が鳴くこの店で今日もまべコネたんが
せっせとマーベラスのアプリを楽しんでいると…

マーベラスコネクト?
ここまで読んでおいてなんだけど…この二人何者?
まべコネたん
まべコネたん_1
ん?
マーベラスのゲームをしていたらナントカコネクトってよくわからない画面がでてきちゃった…
まべコネ_画面
ナントカコネクト?

…はは、それはマーベラスコネクトじゃよ。

スマホじいじい_1
まべコネたん
まべコネたん_1
あ、店長。
急に食いついてきましたね。 

で、それって何?美味しいの?

急にって…店の中にわしとお前さんしかおらんのじゃから話しかけもするわい…。

で、簡単に言うとの、ゲーム内でそのマーベラスコネクトと連携をするとデータの引き継ぎができるんじゃよ。

スマホじいじい_1
まべコネたん
まべコネたん_1
データの引き継ぎ?
それができるとどうなるの?
間違えてゲームアプリを消したり、スマホが壊れたり、後は機種変更をした時などに、
それまでプレイしていた自分のキャラクターでゲームを再開する事ができるのじゃよ。
スマホじいじい_1
まべコネたんまべコネたん_1 へぇ~、機種変更はまだ先だと思うけど、もしもの時のためにデータ引き継ぎはしておきたいなぁ。

連携ってどうすればできるの?

マーベラスコネクトで自分の持っているFacebook、Google、Yahoo! JAPAN、mixi、マーベラスメンバーズ
いずれかのIDを選択すれば使えるぞい。 

連携に使えるIDはざっとこんなところじゃ。
まべコネ_ID一覧

スマホじいじい_1
まべコネたんまべコネたん_1 連携以外には使えないの?
その他には…マーベラスのゲームの事前登録にも使われたりしておるし、ゲーム内で様々な特典も受けられるのじゃ!! スマホじいじい_1
まべコネたんまべコネたん_1 おぉ~特典!
…ゲーム内で様々な特典も受けられるのじゃ(予定)!! スマホじいじい_1
まべコネたんまべコネたん_1

予定ッ!?

ちなみにマーベラスコネクトは最近のマーベラスのゲームなどに導入されておるんじゃよ。
ほほほ、知っておったかのう? 

知らなかったらちょっと気にして探してみると楽しいかもしれんぞ。

スマホじいじい_1
まべコネたんまべコネたん_1 あ、(予定)の部分ごまかしてきた…。

 

マーベラスコネクト ってあぶなくないの?
まべコネたんまべコネたん_1 そういえば、こういうのって連携したら勝手に投稿されたりしちゃわないかな?
「スマホゲームは今これをやってるよ。今の職業はこれ!」とか投稿されるのはちょっと…
大丈夫じゃよ、マーベラスコネクトからは本人の公開情報とメールアドレスを閲覧することしかできんようになっておる。

ほら、このように許可を求めてるのはこれだけじゃ。
まべコネ_連携

スマホじいじい_1
まべコネたんまべコネたん_1 メールアドレスもなんだ。
メールアドレスは何に使うの?
どちらかというとサポートを受けやすくするためじゃな。
その他に事前登録の際には、サービス開始時にお知らせメールを送ってくれることもあるぞい。
スマホじいじい_1
まべコネたんまべコネたん_1 あ、それは便利かも♫

でも、実はこっそりとパスワードなんかを見てたりはしないよね?
私…FacebookとTwitterで同じIDとパスワード使ってるんだけど、フォロワーさんにサングラスの宣伝とかしちゃったらやだなぁ…

いや、IDとパスワードを同じにするでない!!

まぁ…そもそもマーベラスコネクトでは各サービスのパスワードは保存してないのじゃ。

しかし、サングラスの宣伝って…古い気がするんじゃが、そのネタ。

スマホじいじい_1
まべコネたんまべコネたん_1 パスワードを保存してないのにIDを使うことができるの?
ふふ、そこら辺は次回以降で説明予定じゃ。 スマホじいじい_1
まべコネたんまべコネたん_1 えッ!!これ次回あるんだ!?
今回のまとめ
マーベラスコネクトと連携するとマーベラスのゲーム内でデータの引き継ぎができるのじゃ!

連携やデータ引き継ぎの方法はゲームごとに違うから注意じゃぞ!

スマホじいじい_1
まべコネたんまべコネたん_1 いつも使ってるIDで連携出来るから、IDやパスワードを新しく覚える必要がないのが便利~♪
マーベラスコネクトはIDと公開情報とメールアドレスしか取得しない!
パスワードは取得せんからセキュリティ的にも安心じゃ!
スマホじいじい_1
まべコネたんまべコネたん_1 これならサングラスの宣伝を無差別にする心配はないね♪
IDとパスワードはちゃんと別々にしておくんじゃぞ!? スマホじいじい_1
まべコネたんまべコネたん_1

次回!
~マーベラスコネクトのちょっと詳しい話~

またよろしくね♪

ちゃんと別々にしておくんじゃぞ!?

スマホじいじい_1

見えないトラフィック~Unicast Flooding~

どうも、ishinoy@インフラです。

クラウドサービスを利用していると、VM上のトラフィックはCactiとかで
取得してますが、物理ホストのトラフィックはわからないですよね?

通常はクラウドサービス会社さんに監視してもらうと思うのですが、
先日、サーバをクラスタ移動したらやけにトラフィック量が多くなっているらしく、
調査したところUnicastFloodingが発生していたというお話しです。
 
UnicastFloodingとは?
 ユニキャストパケットがブロードキャストされ、回線を逼迫させてしまう現象
 
ちょうど、先日参加したセミナーでも、某大手ポータルサイト様の環境で
同様のことが起き、発表されていました。
 
 
えーと、まずは図を見ていただいたほうがわかりやすいですね!
(↓クリックすると拡大)

unicastflooding_1

WebサーバからDBサーバへ通信する際に、
LVSの負荷軽減のためにDR構成にすることは良くあると思うのですが、
DR構成では非対称ルーティングとなります。(行きと帰りの道が異なる)

WebサーバとDBサーバは直接通信することは無いので、
スイッチ02でWebサーバのMACアドレスは学習されることはなく、
スイッチの仕様として、そのようなパケットは全ポートへ転送してしまうのです。
(スイッチ01,02はスタック構成ではない)

もちろん、Webサーバにもパケットは届くので、
サービスとしては一見、問題なく処理しております。

ちなみに、LVSサーバとDBサーバが逆の場合は発生しません。

WebサーバとDBサーバは同じスイッチに接続している上に、
LVSサーバとDBサーバはヘルスチェックで定期的に通信しているので、
スイッチが学習するのです。
 
 
なるほどですね~
 
 
考えられる対策ですが、実はスマートな方法が見つからず、
サーバ規模と運用面を考えて、下記の案2)としています。
 
 
 案1) WebサーバとDBサーバを同じスイッチ配下に置く
    ⇒どこのスイッチ(=クラスタ)にサーバがあるか管理する必要がある上に、
     クラスタ障害時の冗長性も考えると、複雑怪奇です…

 案2) 定期的にPingを打つ
    ⇒Web/DBサーバ間のみでも良いですが、増減設時の漏れを考えると、
     いっそのことサーバは全てスイッチにPingを打つ仕様の方が
     管理面で楽ですかね…

 案3) LVSのDR構成を止めてNAT構成にする
    ⇒そもそもの主旨とずれますが、LVSに負荷がかかるようになるので、
     負荷分散のためにサーバ増加となりコストアップです…
 
 
 
ふと、前職でMSのNLBとCisco機器の仕様の違いで、
スイッチのMACテーブルが学習されずに
通信ができなかった不具合を思い出したのでした。。。
 
それでは 


「ブラウザ三国志」のクラウド導入事例が紹介されました!

どうも、ishinoy@インフラです。

5周年を迎えた「ブラウザ三国志」のサーバリプレースが無事終わり、
クラウド基盤であるフリービット社に導入事例が掲載されましたので紹介します。

http://cloud.freebit.com/cloud/case/marvelous.html

Logo_final_ver


インフラグループの紹介

はじめまして、ishinoy@インフラ と申します!
 
 
「祝!エンジニアブログ開設」ということで、
初回はインフラグループの紹介をしたいと思います!
 
 
 人数: 約10名

 担当タイトル: 約20
   ゲームサーバ以外にも、KPI/ログ/メンバーズサイトや、
   コンシューマ、アミューズメント機器と連携しているサーバもあります。

 サーバ: クラウドサービスを利用(数社)
     基本的に仮想環境上でのLAMP構成です。
     必要に応じて、PrivateCloud/ベアメタルも利用しています。

 運用: MSP会社さんに手伝っていただいています(数社)
 
 
 
「少数精鋭」という訳ではないのですが、既存タイトルの運用はもちろん、
企画チーム・デバッグチーム・開発チーム(社内、社外)と調整しながら
新規タイトルの設計・構築もするので、作業は比較的あります。
 
また、数社のクラウドサービス、MSP会社さんに手伝っていただいているので、
各社の特徴とタイトルに合わせた選択ができ、コスト面でのメリットも
出せているのではないかと思っています。
 
  
~ インフラの仕事に興味がある方は是非! ~
 サーバ構築・運用はもちろん、新規タイトル立上げ時の設計もできますし、
 各部門や業者さんとの調整でマネージメント能力も養えます!