20140315 JAWS Days OpsWorks

788 views
728 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
788
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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 ü  冪等性 インフラエンジニアも 怠惰 たれ! 最後に

×