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

18

Click here to load reader

Upload: kazuki-aranami

Post on 28-May-2015

1.052 views

Category:

Documents


3 download

TRANSCRIPT

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

Ruby on Rails のクラウドでサービスを立ち上げる

株式会社シーイーシー

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 2

はじめに

● 会社紹介と自己紹介● インフラから見たクラウドの特性

– クラウドと仮想化– IaaS 、 PaaS 、 SaaS と仮想化

● クラウドのタイプの選択● Ruby on Rails の PaaS

● 弊社のサービス

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

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 事業

( ソフトウェア開発/マイグレーションサービス )

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 4

私について● ビルメンテナンス会社の社内 SE

– PC 導入、社内ネットワーク構築

– システム開発の超上流工程

– ユーザー教育

● フリーのエンジニア– 個人で小規模システムの開発・導入支援

● 地方のベンチャー– プログラマ

– インフラ SE

● シーイーシーで新規事業

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 5

インフラから見たクラウドの特性(1)

クラウドと仮想化● 仮想化の目的

  ハードウェアと見た目のハードウェア環境を分離することで、

– 1 台のサーバーリソースを複数の環境で利用する● リソースの効率的な利用

– 複数のサーバーリソースを 1 つの環境で利用する● キャパシティの向上● 可用性の向上

– 見た目のハードウェア環境を共通化する● 環境の複製を容易にする

 これらを達成した環境がクラウド

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

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 、ミドルウェアのマルチインスタンス

など

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 7

インフラから見たクラウドの特性(3)

IaaS 、 PaaS 、 SaaS と仮想化● IaaS はハイパーバイザー

– 環境ごとに個別の OS が起動● 環境ごとに OS を選択できる。● オーバーヘッドが大きい(特に RAM やディスクアクセス)

● PaaS 、 SaaS はいろいろな方法の組み合わせ– AP 、 DBなどのレイヤごとに最適な構成

● 性能を得やすい● カスタマイズは困難(できないことも多い)

● PaaS 、 SaaS のプラットフォームが IaaS ということも

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 8

インフラから見たクラウドの特性(4)

メリットとデメリットIaaS PaaS SaaS

OS 、パッケージなどの自由度 ◎ △ ×

性能の出しやすさ △ ◎ 〇

サービスとしての信頼性 △ 〇 ◎

利用料金 〇 △ ◎

環境の構築 × 〇 -

環境の保守 〇 - -

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 9

クラウドのタイプの選択(1)● IaaS

– OS やパッケージなどに依存するアプリケーション(基本的に何でも)

● PaaS

– (軽量言語などによる )独自開発のアプリケーション(独自のサービス、カスタマイズしたアプリケーションなど)

● SaaS

– 定型的なWeb サイトやアプリケーション(ブログ、 EC 、会計など定型の業務アプリケーションなど)

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 10

クラウドのタイプの選択(2)自分で環境を構築したい?

C などで高速なアプリケーションを開発したい?

アプリケーションをカスタマイズしたい?

特殊なライブラリを参照したい?

 → IaaS を使いましょうLL でサクッと作ってサクッとリリースしたい?

 → PaaS を使いましょうコーディングしたくない・・・

 → SaaS を使いましょう

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 11

Ruby on Rails の PaaS (1)● heroku

– 世界最大の Ruby の PaaS– サードパーティーの KVS やストレージなどを柔軟に

組み合わせられる– Java 、 Node.js など他の言語にも対応しはじめた

● MOGOK

– IIJが提供する Ruby の PaaS (今秋リリース予定)– IIJの潤沢なネットワーク、サーバー群の中で稼働

(国内からのアクセスがきわめて高速)

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

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

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

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

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

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 年からこれらのサービスとともに構築

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 15

サービスを開始するまでの流れ● 環境設定の申し込み

– Ruby と Rails のバージョン– 必要な gem– コンテナの個数( 10 プロセス /コンテナ)– データベースのサイズ

● ソースのアップロード– Git で適宜アップロード(現在はメールで受け付け)– 必要に応じて環境設定情報を更新

● デプロイ

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

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

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 17

サービスごとの課題と対策(一部)● ここらっと

– ページの表示に時間がかかる● データベースのチューニング● find_by_sql で SQL を最適化

● Party Photo Clip

– 写真の通信にプロセスが占有される● ロードバランサーによるバッファリング● アップロード用のプロキシ

– スモールスタートから急拡大に備えたい● 従来通りのスケールアウト可能な構成● サーバー間で共有可能なストレージ

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

2011-09-24Ruby on Railsのクラウドでサービスを立ち上げる

Page 18

終わりに● まだまだ発展途上のクラウド

– 目標は、 Ruby on Rails 環境の性能と柔軟性 No.1

– Web の管理画面等は準備中です

● お問い合わせ– 株式会社シーイーシー

第一ソリューションサービス事業部 ネットソリューション部廣田 哲也

– Mail: [email protected] または [email protected]

– Twitter(@rcloud_jp) / Facebookページ (RCloud)も用意しました