IIJ Technical WEEK 2013の講演を終えて(その2)

カテゴリー: イベント   パーマリンク
このエントリーをはてなブックマークに追加

前回に続き、「IIJ Technical WEEK 2013」の講演者レポートをお届けします。2003年から数えて11回目を迎える今年は、例年3日の会期を4日に拡張。4日目にはクラウドサービス「IIJ GIO」の実践的なトピックをお伝えしました。
まずは4日目の講演から、IIJ GIOホスティングパッケージサービスの、すぐに使えるテクニックが詰まったコマをご紹介します。

インターネット最前線のゲームインフラを支えるパブリッククラウド

マーケティング本部 GIOビジネス推進部 技術課 猪谷忠司
プロダクト本部 プロダクト開発部 アプリケーションサービス課 樋村隆弘

この講演では、「IIJ GIOホスティングパッケージサービス」の構成例と拡張法をご紹介する傍ら、別スクリーンで、先日リリースしたAPIを用いたデモを行いました。
(APIの詳細については、GIOろぐの記事「ホスティングパッケージでAPIを提供開始」をご覧ください)

デモでは、下記のスモールスタート構成からAPIを用いて拡張を行う過程を実際に操作しながらお見せしました。

スモールスタート構成:

  • Webサーバ 2台 V40
  • DBサーバ 2台(master、slave) V80
  • FW+LBオプション 1台 40Mbps 冗長あり
  • クローン元サーバ 1台 V10

いわゆるLAMP構成を取り、LBオプションでWebサーバの負荷分散を実施し、弊社の「クローニング」機能を使うためのサーバを別途1台持った構成です。

拡張にあたり実行したAPI:

  • Webサーバグレードアップ(ChangeVirtualMachineType)
  • FW+LBオプション増速(ChangeFwLbOptionType)
  • FW+LBオプション新規追加(AddFwLbOption)
  • FW+LBオプションプール設定(AddLbPool, AddLbNode)
  • クローニングによるサーバ追加6台(AddCloneVirtualMachines)
  • DBサーバ追加(AddVirtualMachines)

これに加えて状態取得系のAPI(GetVirtualMachineStatus, GetContractStatus)によるポーリングを行っています。
特にクローニング部分は時間によるトリガーを決めて、契約の追加、仮想サーバのFW+LBへの追加といったオートスケールを実施し、解説しました。

せっかくなのでこの場を借りて、会場で実施したスクリプトを公開させていただきます。

今回は、設定済みの仮想サーバからのクローニングによるスケールアウトを行いましたが、クローニングのかわりに新規に仮想マシンを契約し、Chefなどの構成管理ツールを用いて仮想サーバ内部の設定を行う方法もあります。
講演内では時間がなくご紹介できませんでしたが、開発環境の構築を自動化するVagrantにIIJ GIOホスティングパッケージサービスの仮想サーバを操作する機能を追加するvagrant-iijgpプラグインも併せて公開しました。

Chefを使いこなすには慣れが必要ですが、vagrant-iijgpを利用することで、Chefによる仮想サーバの構築を手軽に試していただけるようになります。ぜひ一度お試しください!

(GIOビジネス推進部 猪谷/プロダクト開発部 樋村)


さて、IIJ GIOサービスで提供しているAPIは、単一のサービスだけでなく、IIJサービス全体の統合プラットフォームとして開発を進めています。1日目には、このAPIプラットフォームの技術的背景を紹介した講演もありました。


GIO-APIを支えるAPIプラットフォーム

プロダクト本部 プロダクト開発部 アプリケーションサービス課 川上芳尚

IIJ川上の講演風景このセッションでは、APIプラットフォーム(社内では通称:Sakaguraプロジェクト)を紹介させていただきました。セッションでは、なるべくサービスとは切り離してシステム寄りの一般的な表現になるよう心掛けました。今回のGIOろぐでは、サービスをご利用いただいている方に向けて表現を変えて、講演資料の要点をお伝えしたいと思います。

APIプラットフォームの開発は、第一の目的に弊社が提供するサービスの共通基盤というコンセプトを掲げて、IIJサービスオンライン(契約者専用Webサイト)のログインアカウント(マスターID)とシームレスに連携させることを出発点としました。また、各サービスでのAPI公開を支援するため、既にオンライン提供している機能であれば、少ないコストで実現できるという点も必要要件に入れました。これには、過去の「IIJ Technical WEEK」やWeb等の媒体でも度々ご紹介しているとおり、社内のAPIにはXML-RPCが用いられることが多いという背景があります。IIJサービスオンラインの各機能もXML-RPCでAPI定義されているため、そこに着目しました。

他の要件や将来構想のブレストを重ねながら、いくつかのプロトタイプ開発を経た結果、疎結合で機能的拡張性を特徴としたメッセージングアプリケーションとしてのシステム構成が浮かび上がってきました。中心となるメッセージングミドルウェアには、active/activeでのHA(high availability)構成が取れる「RabbitMQ」という優れたオープンソースプロダクトがあります。Queue内メッセージのミラー化以外の箇所では、LVS(IPVS)やクライアント側のハートビートの作り込みなどを組み合わせてシステム全体としてのフェイルオーバー機能を実装しています。

今年9月のIIJ GIOホスティングパッケージサービス用APIの公開で実運用フェーズに入り、「便利になった」という大変ありがたいお言葉や「APIを使うのは難しい」など色々なご意見をいただいております。より多くの方に、より便利にサービスをご利用いただけるよう、APIに留まらず、WebUIなども含めて全体として改善させていきたいと考えております。

そして、現在、Sakaguraプロジェクトでは汎用的なAPIプラットフォームとしての真価を発揮すべく、次のサービスでのAPI提供に向け動き出しています。今後の開発動向にもどうぞご期待ください。

(プロダクト開発部 川上)

IIJ Technical WEEK 2013の講演資料は、IIJ企業サイトの「研究・開発ページ」でも公開しています。

コメントは受け付けていません。