SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
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がすぐに使える
同レイヤのシステム整合性を保ちやす
い	
簡単スケーリング	
デプロイはワンクリック
デメリット	
インスタンスの起動が遅い
Chef Server/Client ではないため
一部の機能が使えない
セキュリティグループがたくさん作ら
れる
複数台構成時にバッチ処理がやり
にくい
インフラエンジニアの仕事が減る
詳しい概要はこちら。
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-northeast	
tokyo
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などで整備する
必要	
不要	
プロセス監視設定	
 必要	
 不要	
リソース監視設定	
 CloudWatch以外なら必要	
 不要	
ELBとの連携	
 都度必要	
初回の連携設定の
み	
何がラクになった?	
〜 Railsアプリケーションの場合 〜
http://www.sonicgarden.jp/
3. OpsWorks TIPS
   〜 ハマるポイント 〜
http://www.sonicgarden.jp/
データベース接続情報は	
Stack Layerで指定すべし	
Rails App Server Layer 編	
①	
Stackの状態変化(インスタンス起動など)を	
トリガーとして Configureイベントが発動しdatabase.yml が
削除され、サービスダウンに。	
詳細はこちら	
http://interu.hatenablog.com/entry/2014/03/10/205811
http://www.sonicgarden.jp/
Rails App Server Layer 編	
Deploy Hookを活用すべし	
②	
自動で asset:precompileしてくれない。	
でもHookの利用は簡単なので活用しましょう	
	
	
詳細はこちら	
http://interu.hatenablog.com/entry/2013/08/01/214258
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
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
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
http://www.sonicgarden.jp/
OpsWorks全般編	
c3.large 以上を積極的に使うべし	
①	
貧弱なInstanceだとDeploy時にLoad-Basedの	
閾値に達して新Instanceが起動しちゃうことが	
あるよ。起動やDeployの時間も多少短くなるよ。
http://www.sonicgarden.jp/
OpsWorks全般編	
ログ管理はSaaSを活用すべし	
②	
Loggly / FlyData / Logentriesなどあるけど、	
PaperTrail が今のところのオススメ。	
サーバログ/アプリログ全てを集約&検索可能。	
S3へログを転送する機能もあるよ。	
詳細はこちら	
https://github.com/joeyAghion/opsworks_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実行をマスタホストでのみ実行したい	
•  環境変数をJSONで渡せるようにしてほしい	
•  レシピ作ったりデプロイフックで対応するの面倒	
•  Database接続設定はApplicationのJSONに	
•  Configureの影響を受けないように	
•  アプリケーションの情報なのでStack JSONで設定したくない
http://www.sonicgarden.jp/
ハマるポイントは多々あるけれども	
OpsWorks 便利ですよ!	
昨今の流行りにもラクに乗れます!	
ü  Immutable  infrastracture
ü  冪等性
インフラエンジニアも 怠惰 たれ!	
最後に

Mais conteúdo relacionado

Semelhante a 20140315 JAWS Days OpsWorks

Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Pathdynamis
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたちKensaku Komatsu
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール WeinerをつかってみたMasakazu Muraoka
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介khisano
 
Web socketドロンくん その後-
Web socketドロンくん その後-Web socketドロンくん その後-
Web socketドロンくん その後-Yuuichi Akagawa
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphonedena_study
 
WebRTC meetup Tokyo 1
WebRTC meetup  Tokyo 1WebRTC meetup  Tokyo 1
WebRTC meetup Tokyo 1mganeko
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~Daisuke Futatsumori
 
HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう Hideki Akiba
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクションTakahiro Okumura
 
Open STF Plugin 作ってみた
Open STF Plugin 作ってみたOpen STF Plugin 作ってみた
Open STF Plugin 作ってみたjustice_sm
 
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無いCROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無いKohei MATSUSHITA
 
Corona HandsOn#5
Corona HandsOn#5Corona HandsOn#5
Corona HandsOn#5Tetsuo Ono
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketKazuhiro Hara
 
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -historia_Inc
 

Semelhante a 20140315 JAWS Days OpsWorks (20)

Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
 
Web socketドロンくん その後-
Web socketドロンくん その後-Web socketドロンくん その後-
Web socketドロンくん その後-
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphone
 
Mobile + HTML5
Mobile + HTML5Mobile + HTML5
Mobile + HTML5
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
WebRTC meetup Tokyo 1
WebRTC meetup  Tokyo 1WebRTC meetup  Tokyo 1
WebRTC meetup Tokyo 1
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
 
HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう
 
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
Open STF Plugin 作ってみた
Open STF Plugin 作ってみたOpen STF Plugin 作ってみた
Open STF Plugin 作ってみた
 
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無いCROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い
CROSS 2016 LT - 我々のIoTデバイスがこんなに多いはずが無い
 
Corona HandsOn#5
Corona HandsOn#5Corona HandsOn#5
Corona HandsOn#5
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -
 

Último

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Último (8)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

20140315 JAWS Days OpsWorks