Download - クラウドカンファレンスIn静岡 r cloud
Ruby on Rails のクラウドでサービスを立ち上げる
株式会社シーイーシー
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 2
はじめに
● 会社紹介と自己紹介● インフラから見たクラウドの特性
– クラウドと仮想化– IaaS 、 PaaS 、 SaaS と仮想化
● クラウドのタイプの選択● Ruby on Rails の PaaS
● 弊社のサービス
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 3
会社紹介● 株式会社シーイーシー
– 設立年月日: 1968 年 2 月 24 日
– 資本金: 65 億 8 千 6 百万円
– 売上高: 408 億 8 千 7 百万円(平成 23 年 1 月期)
– 従業員数: 2,840 名(平成 23 年 4 月 1 日現在)
– 事業内容:● PROVEQ 事業
( 診断/検証・認証/品質システムサポートサービス )● PROFESSIONAL 事業
( プラットフォームインテグレーション/ IT マネジメント/データセンターサービス )
● PROSES(Professional System Effective Solution) 事業
( ビジネスソリューション/環境ソリューション/ネットソリューション/システムインテグレーション/生産物流改革ソリューション/ヘルスケアソリューションサービス )
● PROGRESS 事業
( ソフトウェア開発/マイグレーションサービス )
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 4
私について● ビルメンテナンス会社の社内 SE
– PC 導入、社内ネットワーク構築
– システム開発の超上流工程
– ユーザー教育
● フリーのエンジニア– 個人で小規模システムの開発・導入支援
● 地方のベンチャー– プログラマ
– インフラ SE
● シーイーシーで新規事業
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 5
インフラから見たクラウドの特性(1)
クラウドと仮想化● 仮想化の目的
ハードウェアと見た目のハードウェア環境を分離することで、
– 1 台のサーバーリソースを複数の環境で利用する● リソースの効率的な利用
– 複数のサーバーリソースを 1 つの環境で利用する● キャパシティの向上● 可用性の向上
– 見た目のハードウェア環境を共通化する● 環境の複製を容易にする
これらを達成した環境がクラウド
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 6
インフラから見たクラウドの特性(2)
仮想化のおさらい● プラットフォーム仮想化
– ホスト OS 型● VMware Server 、 QEMU 、 Virutal PC など
– ハイパーバイザー● Xen 、 KVM 、 VMware ESXi 、 Hyper-V など
– OS レベルの仮想化● Virtuozzo 、 OpenVZ 、 Solaris コンテナなど
● リソースレベルの仮想化・共有(仮想化とは違うが)– クラスタ、 chroot 、ミドルウェアのマルチインスタンス
など
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 7
インフラから見たクラウドの特性(3)
IaaS 、 PaaS 、 SaaS と仮想化● IaaS はハイパーバイザー
– 環境ごとに個別の OS が起動● 環境ごとに OS を選択できる。● オーバーヘッドが大きい(特に RAM やディスクアクセス)
● PaaS 、 SaaS はいろいろな方法の組み合わせ– AP 、 DBなどのレイヤごとに最適な構成
● 性能を得やすい● カスタマイズは困難(できないことも多い)
● PaaS 、 SaaS のプラットフォームが IaaS ということも
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 8
インフラから見たクラウドの特性(4)
メリットとデメリットIaaS PaaS SaaS
OS 、パッケージなどの自由度 ◎ △ ×
性能の出しやすさ △ ◎ 〇
サービスとしての信頼性 △ 〇 ◎
利用料金 〇 △ ◎
環境の構築 × 〇 -
環境の保守 〇 - -
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 9
クラウドのタイプの選択(1)● IaaS
– OS やパッケージなどに依存するアプリケーション(基本的に何でも)
● PaaS
– (軽量言語などによる )独自開発のアプリケーション(独自のサービス、カスタマイズしたアプリケーションなど)
● SaaS
– 定型的なWeb サイトやアプリケーション(ブログ、 EC 、会計など定型の業務アプリケーションなど)
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 10
クラウドのタイプの選択(2)自分で環境を構築したい?
C などで高速なアプリケーションを開発したい?
アプリケーションをカスタマイズしたい?
特殊なライブラリを参照したい?
→ IaaS を使いましょうLL でサクッと作ってサクッとリリースしたい?
→ PaaS を使いましょうコーディングしたくない・・・
→ SaaS を使いましょう
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 11
Ruby on Rails の PaaS (1)● heroku
– 世界最大の Ruby の PaaS– サードパーティーの KVS やストレージなどを柔軟に
組み合わせられる– Java 、 Node.js など他の言語にも対応しはじめた
● MOGOK
– IIJが提供する Ruby の PaaS (今秋リリース予定)– IIJの潤沢なネットワーク、サーバー群の中で稼働
(国内からのアクセスがきわめて高速)
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 12
Ruby on Rails の PaaS (2)● その他
– Engine Yard( heroku と並ぶ Ruby on Rails の PaaS )
– Cloud Foundry( VMware が近く日本でも提供開始する PaaS )
– Windows Azure
など ...● そして、 RCloud
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 13
RCloud の論理構成
Load Balancer 2Load Balancer 1
このほかに、内部用のSMTP 、 DNS 、 NTP など
MySQL 1 MySQL 2 NFS 1 NFS 2
Application 1 Application 2 Application 3 ・・・
データベースクラスタCentOS 5.5MySQL 5.5Heartbeat
ストレージクラスタCentOS 5.5Heartbeat
ロードバランサークラスタCentOS 5.5Nginx 0.8Heartbeat
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 14
RCloud で稼働しているサービス● ロケーションメッセージングサービス
http://cocorat.com/
● 携帯マーケティングソリューションhttp://www.mobsym.jp/
● ここらっと待ち受けスタジオhttp://cocorat.com/studio
● 伝統工芸のスペシャルサイトhttp://japancraft.jp/
● フォトコミュニケーションサービス「 Party Photo Clip 」http://photoclip.me/
● 2008 年からこれらのサービスとともに構築
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 15
サービスを開始するまでの流れ● 環境設定の申し込み
– Ruby と Rails のバージョン– 必要な gem– コンテナの個数( 10 プロセス /コンテナ)– データベースのサイズ
● ソースのアップロード– Git で適宜アップロード(現在はメールで受け付け)– 必要に応じて環境設定情報を更新
● デプロイ
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 16
Ruby と Rails 、 gem とライブラリ● Ruby 、 Rails 、 rubygems のバージョン
– rubygems のバージョンは、 Ruby と Rails のバージョンによって
● Native Extension が作られる gem– mysql
(Solaris の場合 )
– libxml
– rmagick
# ldd /opt/lib/ruby/gems/1.8/gems/mysql-2.8.1/lib/mysql_api.so libmysqlclient.so.12 => /usr/sfw/lib/libmysqlclient.so.12 … 標準の MySQLのライブラリを参照してしまっているため問題が発生する# cd /opt/coolstack/mysql_32bit/lib/mysql/# ln -s libmysqlclient.so.16.0.0 libmysqlclient.so.12# gem install mysql --no-rdoc --no-ri -- --with-mysql-config=/opt/coolstack/mysql_32bit/bin/mysql_config
# gem install libxml-ruby -v 0.7.0
# cd /var/tmp/ImageMagick-6.6.6-10# ./configure --prefix=/opt/ImageMagick --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 CC=/usr/sfw/bin/gcc LDFLAGS='-L/opt/coolstack/lib -L/usr/sfw/lib -R/opt/coolstack/lib -R/usr/sfw/lib' CPPFLAGS='-I/opt/coolstack/include -I/usr/sfw/include'# gmake# gmake install# gem install rmagick --no-rdoc --no-ri
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 17
サービスごとの課題と対策(一部)● ここらっと
– ページの表示に時間がかかる● データベースのチューニング● find_by_sql で SQL を最適化
● Party Photo Clip
– 写真の通信にプロセスが占有される● ロードバランサーによるバッファリング● アップロード用のプロキシ
– スモールスタートから急拡大に備えたい● 従来通りのスケールアウト可能な構成● サーバー間で共有可能なストレージ
2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる
Page 18
終わりに● まだまだ発展途上のクラウド
– 目標は、 Ruby on Rails 環境の性能と柔軟性 No.1
– Web の管理画面等は準備中です
● お問い合わせ– 株式会社シーイーシー
第一ソリューションサービス事業部 ネットソリューション部廣田 哲也
– Mail: [email protected] または [email protected]
– Twitter(@rcloud_jp) / Facebookページ (RCloud)も用意しました