Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OpsWorks事例例紹介!
ソニックガーデンのリモートワークを⽀支える
リアルタイムツール”Remotty”の舞台裏裏
#jawsdays  #tech
OpsWorks  関連情報のみの短編バージョン
http://www.sonicgarden.jp/
1. リアルタイム処理実現の変遷
さまざまな
リアルタイム双⽅方向通信技術を
試してみた!
http://www.sonicgarden.jp/
➕
最初の構成
ブラウザ共有サービス
http://www.sonicgarden.jp/
➕
最初の構成
PCのWebViewとしては簡単で便利!	
でも、iPhoneアプリから使いづらい ...	
ブラウザ共有サービス
http://www.sonicgarden.jp/
➕
最初の構成
Node.js の PaaS
http://www.sonicgarden.jp/
➕
最初の構成
ちょっと 不安定 ..	
Node.js の PaaS
http://www.sonicgarden.jp/
その次の構成
➕
http://www.sonicgarden.jp/
その次の構成
➕
ちょいと 遅い ..
http://www.sonicgarden.jp/
リアルタイムチャットなのに	
ワンテンポ遅いのが難点	
	
ネットワーク遅延 が大きく影響	
残された課題
http://www.sonicgarden.jp/
EC2 でやっても芸がないので、	
OpsWorks で動かそう!	
そこで・・・
Amazon EC2
OpsWorks
http://www.sonicgarden.jp/
OpsWorks 	
	
便利だけどあまり人気ない??	
	
関連ブログをあまり見かけないけど…
http://www.sonicgarden.jp/
USではそこそこ使われているらしいけど	
	
日本ではあまり使われてないらしい。
http://www.sonicgarden.jp/
良い点、不便な点	
どっちもいっぱいあるよ!
http://www.sonicgarden.jp/
メリット・デメリット
メリット	
面倒なサーバ構築が不要に
	
chef-soloがすぐに使える
同レイヤのシステム整合性を保ちやす
い	
簡単スケーリング	
デプロイはワンクリック
デメリ...
http://www.sonicgarden.jp/
2. Heroku から OpsWorks へ
http://www.sonicgarden.jp/
Herokuでの構成
Rails	
Node.js
websocket (Lab)	
Amazon S3
us-east	
tokyo
http://www.sonicgarden.jp/
AWSでの構成
Amazon RDS
PostgreSQL
Elastic Load
Balancing
Amazon S3
Rails
Server
Nodejs
Server
ap-no...
http://www.sonicgarden.jp/
Latencyが劇的に改善… 当たり前か。	
パフォーマンス比較
平均Latency	
 1.3 sec → 0.4 sec	
us-east	
ap-northeast
http://www.sonicgarden.jp/
構築時間比較
1時間	
 10時間	
PaaS 専門には敵わないか…	
0からチャットが動くまでに要した時間
http://www.sonicgarden.jp/
10時間 の内訳	
調査/レシピ作成が7割!
http://www.sonicgarden.jp/
ドキュメント多すぎ!	
cookbook を読む方が 断然 早い!	
https://github.com/aws/opsworks-cookbooks	
次回からは1〜2時間で出来るはず!
http://www.sonicgarden.jp/
実際に移行してみて	
ü  EC2で構築よりラク	
ü  ハマるポイントもいくつかある	
所感
http://www.sonicgarden.jp/
EC2	
 OpsWorks	
WEBサーバの設定	
 必要	
 不要	
利用言語バージョン整備	
 必要	
 不要	
デプロイ自動化	
Capistranoなどで整備する
必要	
不要	
...
http://www.sonicgarden.jp/
3. OpsWorks TIPS
   〜 ハマるポイント 〜
http://www.sonicgarden.jp/
データベース接続情報は	
Stack Layerで指定すべし	
Rails App Server Layer 編	
①	
Stackの状態変化(インスタンス起動など)を	
トリガーとして C...
http://www.sonicgarden.jp/
Rails App Server Layer 編	
Deploy Hookを活用すべし	
②	
自動で asset:precompileしてくれない。	
でもHookの利用は簡単なので活用し...
http://www.sonicgarden.jp/
Node.js App Server Layer 編	
Port 80でもListenすべし	
①	
Monitが http://127.0.0.1:80/ を監視。 	
Port 443で...
http://www.sonicgarden.jp/
Node.js App Server Layer 編	
NODE_ENVの指定は頑張るべし	
②	
Railsの場合はRAILS_ENV指定ができるが	
Node.jsではなぜかできない。	...
http://www.sonicgarden.jp/
Node.js App Server Layer 編	
ELBでバランシングしたいときは頑張れ	
③	
socket.ioでELBを使う場合はHTTPではなく	
TCPリスナーで対応してね。...
http://www.sonicgarden.jp/
OpsWorks全般編	
c3.large 以上を積極的に使うべし	
①	
貧弱なInstanceだとDeploy時にLoad-Basedの	
閾値に達して新Instanceが起動しちゃうこ...
http://www.sonicgarden.jp/
OpsWorks全般編	
ログ管理はSaaSを活用すべし	
②	
Loggly / FlyData / Logentriesなどあるけど、	
PaperTrail が今のところのオススメ。	...
http://www.sonicgarden.jp/
OpsWorks全般編	
テーマ毎のホスト名を分析すべし	
③	
Legendary Creatures in Japan を選ぶと…
http://www.sonicgarden.jp/
OpsWorks全般編	
テーマ毎のホスト名を分析すべし	
③	
•  ibakurei(地縛霊)	
•  ikiryo(生霊)	
•  binbogami(貧乏神)	
	
などが割り当てら...
http://www.sonicgarden.jp/
OpsWorksで改善してほしいポイント
•  ELB連携のようにRDS連携してほしい	
•  マスタホストを自動決定してほしい	
•  cron実行をマスタホストでのみ実行したい	
•  ...
http://www.sonicgarden.jp/
ハマるポイントは多々あるけれども	
OpsWorks 便利ですよ!	
昨今の流行りにもラクに乗れます!	
ü  Immutable  infrastracture
ü  冪等性
インフラ...
Upcoming SlideShare
Loading in …5
×

20140315 JAWS Days OpsWorks

965 views

Published on

2014/03/15に開催された JAWS DAYS 2014 in Tokyo の発表資料です。OpsWorksに関するところだけを切り出しています。
完全版はこちら
http://www.slideshare.net/kuranuki/opsworksremotty20140315

Published in: Technology
  • Be the first to comment

20140315 JAWS Days OpsWorks

  1. 1. OpsWorks事例例紹介! ソニックガーデンのリモートワークを⽀支える リアルタイムツール”Remotty”の舞台裏裏 #jawsdays  #tech OpsWorks  関連情報のみの短編バージョン
  2. 2. http://www.sonicgarden.jp/ 1. リアルタイム処理実現の変遷 さまざまな リアルタイム双⽅方向通信技術を 試してみた!
  3. 3. http://www.sonicgarden.jp/ ➕ 最初の構成 ブラウザ共有サービス
  4. 4. http://www.sonicgarden.jp/ ➕ 最初の構成 PCのWebViewとしては簡単で便利! でも、iPhoneアプリから使いづらい ... ブラウザ共有サービス
  5. 5. http://www.sonicgarden.jp/ ➕ 最初の構成 Node.js の PaaS
  6. 6. http://www.sonicgarden.jp/ ➕ 最初の構成 ちょっと 不安定 .. Node.js の PaaS
  7. 7. http://www.sonicgarden.jp/ その次の構成 ➕
  8. 8. http://www.sonicgarden.jp/ その次の構成 ➕ ちょいと 遅い ..
  9. 9. http://www.sonicgarden.jp/ リアルタイムチャットなのに ワンテンポ遅いのが難点 ネットワーク遅延 が大きく影響 残された課題
  10. 10. http://www.sonicgarden.jp/ EC2 でやっても芸がないので、 OpsWorks で動かそう! そこで・・・ Amazon EC2 OpsWorks
  11. 11. http://www.sonicgarden.jp/ OpsWorks 便利だけどあまり人気ない?? 関連ブログをあまり見かけないけど…
  12. 12. http://www.sonicgarden.jp/ USではそこそこ使われているらしいけど 日本ではあまり使われてないらしい。
  13. 13. http://www.sonicgarden.jp/ 良い点、不便な点 どっちもいっぱいあるよ!
  14. 14. http://www.sonicgarden.jp/ メリット・デメリット メリット 面倒なサーバ構築が不要に chef-soloがすぐに使える 同レイヤのシステム整合性を保ちやす い 簡単スケーリング デプロイはワンクリック デメリット インスタンスの起動が遅い Chef Server/Client ではないため 一部の機能が使えない セキュリティグループがたくさん作ら れる 複数台構成時にバッチ処理がやり にくい インフラエンジニアの仕事が減る 詳しい概要はこちら。
  15. 15. http://www.sonicgarden.jp/ 2. Heroku から OpsWorks へ
  16. 16. http://www.sonicgarden.jp/ Herokuでの構成 Rails Node.js websocket (Lab) Amazon S3 us-east tokyo
  17. 17. http://www.sonicgarden.jp/ AWSでの構成 Amazon RDS PostgreSQL Elastic Load Balancing Amazon S3 Rails Server Nodejs Server ap-northeast tokyo
  18. 18. http://www.sonicgarden.jp/ Latencyが劇的に改善… 当たり前か。 パフォーマンス比較 平均Latency  1.3 sec → 0.4 sec us-east ap-northeast
  19. 19. http://www.sonicgarden.jp/ 構築時間比較 1時間 10時間 PaaS 専門には敵わないか… 0からチャットが動くまでに要した時間
  20. 20. http://www.sonicgarden.jp/ 10時間 の内訳 調査/レシピ作成が7割!
  21. 21. http://www.sonicgarden.jp/ ドキュメント多すぎ! cookbook を読む方が 断然 早い! https://github.com/aws/opsworks-cookbooks 次回からは1〜2時間で出来るはず!
  22. 22. http://www.sonicgarden.jp/ 実際に移行してみて ü  EC2で構築よりラク ü  ハマるポイントもいくつかある 所感
  23. 23. http://www.sonicgarden.jp/ EC2 OpsWorks WEBサーバの設定 必要 不要 利用言語バージョン整備 必要 不要 デプロイ自動化 Capistranoなどで整備する 必要 不要 プロセス監視設定 必要 不要 リソース監視設定 CloudWatch以外なら必要 不要 ELBとの連携 都度必要 初回の連携設定の み 何がラクになった? 〜 Railsアプリケーションの場合 〜
  24. 24. http://www.sonicgarden.jp/ 3. OpsWorks TIPS    〜 ハマるポイント 〜
  25. 25. http://www.sonicgarden.jp/ データベース接続情報は Stack Layerで指定すべし Rails App Server Layer 編 ① Stackの状態変化(インスタンス起動など)を トリガーとして Configureイベントが発動しdatabase.yml が 削除され、サービスダウンに。 詳細はこちら http://interu.hatenablog.com/entry/2014/03/10/205811
  26. 26. http://www.sonicgarden.jp/ Rails App Server Layer 編 Deploy Hookを活用すべし ② 自動で asset:precompileしてくれない。 でもHookの利用は簡単なので活用しましょう 詳細はこちら http://interu.hatenablog.com/entry/2013/08/01/214258
  27. 27. http://www.sonicgarden.jp/ Node.js App Server Layer 編 Port 80でもListenすべし ① Monitが http://127.0.0.1:80/ を監視。 Port 443で運用したいときもPort 80で ヘルスチェックを受け付けないと接続が頻繁に 切れちゃうよ。 詳細はこちら http://interu.hatenablog.com/entry/2014/03/11/224532
  28. 28. http://www.sonicgarden.jp/ Node.js App Server Layer 編 NODE_ENVの指定は頑張るべし ② Railsの場合はRAILS_ENV指定ができるが Node.jsではなぜかできない。 staging/productionで設定切り替えが必要な場合は デプロイフックとnode-configを活用しようね。 詳細はこちら http://interu.hatenablog.com/entry/2014/03/11/224532
  29. 29. http://www.sonicgarden.jp/ Node.js App Server Layer 編 ELBでバランシングしたいときは頑張れ ③ socket.ioでELBを使う場合はHTTPではなく TCPリスナーで対応してね。バランシングするなら RedisStoreにsessionを保存して使うとよさげ。 ElastiCache for Redisの出番です! 詳細はこちら http://jxck.hatenablog.com/entry/20120228/1330444857
  30. 30. http://www.sonicgarden.jp/ OpsWorks全般編 c3.large 以上を積極的に使うべし ① 貧弱なInstanceだとDeploy時にLoad-Basedの 閾値に達して新Instanceが起動しちゃうことが あるよ。起動やDeployの時間も多少短くなるよ。
  31. 31. http://www.sonicgarden.jp/ OpsWorks全般編 ログ管理はSaaSを活用すべし ② Loggly / FlyData / Logentriesなどあるけど、 PaperTrail が今のところのオススメ。 サーバログ/アプリログ全てを集約&検索可能。 S3へログを転送する機能もあるよ。 詳細はこちら https://github.com/joeyAghion/opsworks_papertrail
  32. 32. http://www.sonicgarden.jp/ OpsWorks全般編 テーマ毎のホスト名を分析すべし ③ Legendary Creatures in Japan を選ぶと…
  33. 33. http://www.sonicgarden.jp/ OpsWorks全般編 テーマ毎のホスト名を分析すべし ③ •  ibakurei(地縛霊) •  ikiryo(生霊) •  binbogami(貧乏神) などが割り当てられるよ。不吉なホスト名から意味不明な ホスト名まであって楽しめるよ!
  34. 34. http://www.sonicgarden.jp/ OpsWorksで改善してほしいポイント •  ELB連携のようにRDS連携してほしい •  マスタホストを自動決定してほしい •  cron実行をマスタホストでのみ実行したい •  環境変数をJSONで渡せるようにしてほしい •  レシピ作ったりデプロイフックで対応するの面倒 •  Database接続設定はApplicationのJSONに •  Configureの影響を受けないように •  アプリケーションの情報なのでStack JSONで設定したくない
  35. 35. http://www.sonicgarden.jp/ ハマるポイントは多々あるけれども OpsWorks 便利ですよ! 昨今の流行りにもラクに乗れます! ü  Immutable  infrastracture ü  冪等性 インフラエンジニアも 怠惰 たれ! 最後に

×