クラウドカンファレンスIn静岡 r cloud

1,221 views
1,163 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,221
On SlideShare
0
From Embeds
0
Number of Embeds
347
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

クラウドカンファレンスIn静岡 r cloud

  1. 1. Ruby on Rails のクラウドで サービスを立ち上げる 株式会社シーイーシー
  2. 2. はじめに● 会社紹介と自己紹介● インフラから見たクラウドの特性 – クラウドと仮想化 – IaaS 、 PaaS 、 SaaS と仮想化● クラウドのタイプの選択● Ruby on Rails の PaaS● 弊社のサービス2011-09-24 Page 2Ruby on Rails のクラウドでサービスを立ち上げる
  3. 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-24 Page 3Ruby on Rails のクラウドでサービスを立ち上げる
  4. 4. 私について● ビルメンテナンス会社の社内 SE – PC 導入、社内ネットワーク構築 – システム開発の超上流工程 – ユーザー教育● フリーのエンジニア – 個人で小規模システムの開発・導入支援● 地方のベンチャー – プログラマ – インフラ SE● シーイーシーで新規事業2011-09-24 Page 4Ruby on Rails のクラウドでサービスを立ち上げる
  5. 5. インフラから見たクラウドの特性(1) クラウドと仮想化● 仮想化の目的  ハードウェアと見た目のハードウェア環境を分離することで、 – 1 台のサーバーリソースを複数の環境で利用する ● リソースの効率的な利用 – 複数のサーバーリソースを 1 つの環境で利用する ● キャパシティの向上 ● 可用性の向上 – 見た目のハードウェア環境を共通化する ● 環境の複製を容易にする  これらを達成した環境がクラウド2011-09-24 Page 5Ruby on Rails のクラウドでサービスを立ち上げる
  6. 6. インフラから見たクラウドの特性(2) 仮想化のおさらい● プラットフォーム仮想化 – ホスト OS 型 ● VMware Server 、 QEMU 、 Virutal PC など – ハイパーバイザー ● Xen 、 KVM 、 VMware ESXi 、 Hyper-V など – OS レベルの仮想化 ● Virtuozzo 、 OpenVZ 、 Solaris コンテナなど● リソースレベルの仮想化・共有(仮想化とは違うが) – クラスタ、 chroot 、ミドルウェアのマルチインスタンス など2011-09-24 Page 6Ruby on Rails のクラウドでサービスを立ち上げる
  7. 7. インフラから見たクラウドの特性(3) IaaS 、 PaaS 、 SaaS と仮想化● IaaS はハイパーバイザー – 環境ごとに個別の OS が起動 ● 環境ごとに OS を選択できる。 ● オーバーヘッドが大きい(特に RAM やディスクアクセス)● PaaS 、 SaaS はいろいろな方法の組み合わせ – AP 、 DB などのレイヤごとに最適な構成 ● 性能を得やすい ● カスタマイズは困難(できないことも多い)● PaaS 、 SaaS のプラットフォームが IaaS ということも2011-09-24 Page 7Ruby on Rails のクラウドでサービスを立ち上げる
  8. 8. インフラから見たクラウドの特性(4) メリットとデメリット IaaS PaaS SaaS OS 、パッケージなどの自由度 ◎ △ × 性能の出しやすさ △ ◎ 〇 サービスとしての信頼性 △ 〇 ◎ 利用料金 〇 △ ◎ 環境の構築 × 〇 - 環境の保守 〇 - -2011-09-24 Page 8Ruby on Rails のクラウドでサービスを立ち上げる
  9. 9. クラウドのタイプの選択(1)● IaaS –OS やパッケージなどに依存するアプリケーション (基本的に何でも)● PaaS – ( 軽量言語などによる ) 独自開発のアプリケーション (独自のサービス、カスタマイズしたアプリケーション など)● SaaS – 定型的な Web サイトやアプリケーション (ブログ、 EC 、会計など定型の業務アプリケーション など)2011-09-24 Page 9Ruby on Rails のクラウドでサービスを立ち上げる
  10. 10. クラウドのタイプの選択(2) 自分で環境を構築したい? C などで高速なアプリケーションを開発したい? アプリケーションをカスタマイズしたい? 特殊なライブラリを参照したい?  → IaaS を使いましょう LL でサクッと作ってサクッとリリースしたい?  → PaaS を使いましょう コーディングしたくない・・・  → SaaS を使いましょう2011-09-24 Page 10Ruby on Rails のクラウドでサービスを立ち上げる
  11. 11. Ruby on Rails の PaaS (1)● heroku – 世界最大の Ruby の PaaS – サードパーティーの KVS やストレージなどを柔軟に 組み合わせられる – Java 、 Node.js など他の言語にも対応しはじめた● MOGOK – IIJ が提供する Ruby の PaaS (今秋リリース予定) – IIJ の潤沢なネットワーク、サーバー群の中で稼働 (国内からのアクセスがきわめて高速)2011-09-24 Page 11Ruby on Rails のクラウドでサービスを立ち上げる
  12. 12. Ruby on Rails の PaaS (2)● その他 Engine Yard – ( heroku と並ぶ Ruby on Rails の PaaS ) – Cloud Foundry ( VMware が近く日本でも提供開始する PaaS ) – Windows Azure など ...● そして、 RCloud2011-09-24 Page 12Ruby on Rails のクラウドでサービスを立ち上げる
  13. 13. RCloud の論理構成 ロードバランサークラスタ Load Balancer 1 Load Balancer 2 CentOS 5.5 Nginx 0.8 Heartbeat Application 1 Application 2 Application 3 ・・・ MySQL 1 MySQL 2 NFS 1 NFS 2 データベースクラスタ ストレージクラスタ CentOS 5.5 CentOS 5.5 MySQL 5.5 Heartbeat Heartbeat このほかに、内部用の2011-09-24 SMTP 、 DNS 、 NTP など Page 13Ruby on Rails のクラウドでサービスを立ち上げる
  14. 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-24 Page 14Ruby on Rails のクラウドでサービスを立ち上げる
  15. 15. サービスを開始するまでの流れ● 環境設定の申し込み – Ruby と Rails のバージョン – 必要な gem – コンテナの個数( 10 プロセス / コンテナ) – データベースのサイズ● ソースのアップロード – Git で適宜アップロード(現在はメールで受け付け) – 必要に応じて環境設定情報を更新● デプロイ2011-09-24 Page 15Ruby on Rails のクラウドでサービスを立ち上げる
  16. 16. Ruby と Rails 、 gem とライブラリ● Ruby 、 Rails 、 rubygems のバージョン – rubygems のバージョンは、 Ruby と Rails のバージョンによって● Native Extension が作られる gem – mysql # 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 (Solaris の場合 ) … 標準の MySQL のライブラリを参照してしまっているため問題が発生する # cd /opt/coolstack/mysql_32bit/lib/mysql/ – libxml # 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 – rmagick # 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-ri2011-09-24 Page 16Ruby on Rails のクラウドでサービスを立ち上げる
  17. 17. サービスごとの課題と対策(一部)● ここらっと – ページの表示に時間がかかる ● データベースのチューニング ● find_by_sql で SQL を最適化● Party Photo Clip – 写真の通信にプロセスが占有される ● ロードバランサーによるバッファリング ● アップロード用のプロキシ – スモールスタートから急拡大に備えたい ● 従来通りのスケールアウト可能な構成 ● サーバー間で共有可能なストレージ2011-09-24 Page 17Ruby on Rails のクラウドでサービスを立ち上げる
  18. 18. 終わりに● まだまだ発展途上のクラウド – 目標は、 Ruby on Rails 環境の性能と柔軟性 No.1 – Web の管理画面等は準備中です● お問い合わせ – 株式会社シーイーシー 第一ソリューションサービス事業部 ネットソリューション部 廣田 哲也 – Mail: t-hirota@cec-ltd.co.jp または contact@rcloud.jp – Twitter(@rcloud_jp) / Facebook ページ (RCloud) も用意しました2011-09-24 Page 18Ruby on Rails のクラウドでサービスを立ち上げる

×