「IaaSとPaaSの微妙な関係」 by 田中 慎司氏 #jawsdays – JAWS DAYS 2014 参加レポート Vol.07
JAWS DAYS 2014 参加レポート、7本目です。株式会社はてなCTOである田中慎司氏の「IaaSとPaaSの微妙な関係」のレポートです!
「IaaSとPaaSの微妙な関係」 by 田中 慎司氏
トラック入り口の張り紙に「タイトル未定」と書かれてしまったことがちょっと悔しそうな田中さんでした。
※本発表のスライドが後日公表されれば差し込みます。
はてなについて
まずははてなの現状について。はてなではデータセンタとAWSのハイブリッド構成になっているが、HatenaBlogはほぼ100%AWSで構成されているそうです。全サービスでトータルすると2000台規模であり、AWSがうち100台程度とのこと。はてなのサービスは古くから提供されていることもあり、既存のデータセンタに数多くの資産があるそうです。
IasSとPaaSの話
「IaaSとPaaSって、どうやって使い分けていますか?」という所から話はスタートしました。アプリケーションを実行させる環境としては物理(データセンタ)、IaaS、PaaSなど様々な選択肢があり、それぞれ選ぶための理由があるはずです。例えばエンジニアから見て慣れている環境であったり、会社として過去に使ったことがありノウハウが蓄積されていたり、そもそも動作させるアプリケーションのシステム要件として決まっていたりするでしょう。
例えばHerokuの場合、なぜHerokuを選ぶのか?そしてどんな場合だとHerokuが選べないのか?これはもちろんHerokuだけで無くAWSでも同様で、それぞれに選ぶ理由、選べない理由があるはずで、それをきちんと考えて、適材適所でサービスを使うべきだ、と仰っていました。 なお、はてなの場合だと、柔軟に構成したい場合はAWS、小規模ならHeroku、ハイパフォーマンスを安価に使いたい場合はデータセンタ、のように使い分けをしているそうです。
そして今IaaSにDevOps=構成管理ツールを組み合わせるというのがトレンドだが、その行き着く先はPrivate PaaSになるのではないか、とのことでした。Herokuがリリースした文章である「The Twelve-Factor App」には「APサーバに状態を持たせない」などの記述があり、Immutable Infrastractureの考え方に近いのだそうです。
PaaS vs IaaS+DevOps
ではPaaSとして提供されているサービスと、IaaS+DevOpsでは、どちらが優位なのだろうか? 例えばPaasの特性としては「簡単、すぐでブロイできる」「比較的運用担当者が少なくて良い」というプラス面があるものの、マイナス面として「線形にコストが上昇してしまう」「アプリケーションモデルの制約があるので柔軟性に欠ける」という点があるとのこと。
逆にIaaS+DevOpsの特性としては、「柔軟性が高く自由に構成できる」「コスト効率が高い」というプラス面があるが、マイナス面として「運用担当者が比較的多く必要」という点が考えられるそうです。
それらの特性を踏まえるに、小規模であればPaaS、中大規模ならIaaS+DevOpsツールという棲み分けになるのではとのことでした。
理想的なPaaSとは?
「最適なIaaS+DevOpsが理想的なPaaSのあるべき姿なのでは」と仰っていました。アプリケーションもDBもスケール出来て、リソースのマネージメントが効率的に出来て、フェイルオーバーやオートスケールのポリシーを自分で細かく設定出来るような仕組みがPaaSに出来ると、中大規模でもPaaSを選択肢に入れやすいのではとのこと。
特にリソースマネージメントの部分では高効率、自動化、省力化、だけでなくさらに”気の利いた挙動”をしてほしいというご要望を仰っていました。リソースマネージメントとしては要求されるパフォーマンスが実現できる最小のリソースを割り当てるのが理想で、そのためにはマージンを計測し、適切なマージンを判断して、更に維持するというステップが必要だが、現状としてはそういったリソースの判断やオートスケールするためのアルゴリズムの確定を職人芸で設定しまっている状況であり、そういったところをサービス側で吸収してくれると良いのではとのことでした。
最後に
PaaSは内部がブラックボックスの部分が多く、試さないとわからない多いため扱いづらい。もっとブラックボックスを少なく、そしてプログラマブルに扱えるようになると、更に良くなるのではないか、というお言葉で締められました。
まとめ
IaaSに構成管理ツールを組み合わせた形がPrivate PaaSのような姿になる、というお話はなるほどと思いました。HerokuでもImmutableな仕組みによってアプロイがデプロイされてるそうですし、こういったそれぞれの良い部分がマージされることで、更にハイブリットなサービスが生まれると、それはとても面白そうですね。