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.
PHPerがAWSと 
出会って 
DevOpsを目指した話 
! 
2014/10/11 
php conference2014 
Retty, Inc 
梅田昌太 @ebisusurf 
1
本日のお品書き 
• 前菜 ご挨拶 
• メイン サービスの成長とインフラの成長 
• デザート AWSを使ってDevOpsを目指す 
2
ご挨拶 
サービスの成長とインフラの成長 
AWSを使ってDevOpsを目指す 
3
Rettyという恵比寿に 
ある会社から来ました 
4
Rettyって? 
5
Rettyって? 
• 食を通じて世界中の人々をHappyに 
• グルメサービスです! 
• AppStore Google PlayへGo! 
6
About me 
@ebisusurf 
梅田昌太 
AWS 
& 
プリンタ 
7
About me 
担当 
炒飯 
8
炒飯な理由 
• 皆に愛される平和なメニュー 
• ラーメンに対するマイノリティ感 
• ラーメンの話は殴り合いになるからNG 
9
About me 
• SoftwareDesign 
• 2014年5月号~7月号 
• 短期集中連載 
• Rettyのサービス拡大を支え 
た“たたき上げ”DevOps 
10
Career 
• 渋谷でPerl,六本木でPHP 
• アプリケーションエンジニアです 
• Vim好き 
11
PerlとPHPのキャリアが 
が長い&好きなので 
12
13
本題 
14
ご挨拶 
サービスの成長と 
インフラの成長 
AWSを使ってDevOpsを目指す 
15
まずは今の構成をご紹介 
• retty.me(メインサービス) 
• news.retty.me(ニュース配信) 
• owner.retty.me(店舗様向けサービス) 
16
CloudFront 
EC2 
RDS 
EB 
ELB 
S3 
retty.me 
EC2 
RDS 
ELB 
EC2 
RDS 
ELB 
Nginx Nginx 
MongoDB 
EMR 
ELC 
memcached 
ELC ...
news.retty.me 
CloudFront Route 53 
EC2 
RDS 
EB 
ELB 
S3 
ELC 
memcached 
18
owner.retty.me 
CloudFront Route 53 
EC2 
RDS 
ELB 
EB 
S3 
EC2 
RDS 
ELB 
ELC 
Redis 
EMR 
EC2 
development 
19
いきなりこうなった訳 
ではありません 
20
サービス総明記 
21
UU 
~10万 
22
retty.me 
信頼と安定の某VPS 
PHP 
Apache 
MySQL 
Linux 
23
サブドメイン 
信頼と安定のレンタルサーバ 
Wordpress 
24
10万~ 
25
AWS移行 
構成は変わらず(EC2) 
PHP 
Apache 
MySQL 
Linux 
26
50万~ 
AWSアーキテクチャに 
乗ってみる 
27
retty.me 
AWSアーキテクチャに少し 
乗ってみる 
28
100万~ 
29
何かよく解らんけど 
様子がおかしいぞ? 
30
スケールアウトしてみた 
retty.me 
31
監視もしてみた 
SotfwareDesign 6月号 
cloud watch 
retty.me オプションでディスクも監視 
Nagios Monit 
32
なんとかなった 
33
200万~400万 
34
  奇跡のカーニバル 
  開  幕  だ 
 n  ___  n 
 こ|| こ/_ら_辺_\で 
 || 
 || |(゚) (゚)| || 
「「「| \‾‾‾/ 「「「| 
「‾|  ‾冂‾  「‾| 
`ヽ |/‾|‾|‾\| ノ 
...
起こった事 
36
起こった事 
• サブドメインサービス開発に火がつく 
• 既存サブドメインサービスが落ちる 
• メインサービスのアラートが止まらない 
37
起こった事 
• RDSに書き込んでたロギングが限界 
• スケールアウト対応が追いつかない&コスパの良 
いインスタンスが使えない(EC2が32bitPV、 
PHP5.3) 
• RDSのSlave上限にひっかかる(MySQL5.5) 
3...
やった事 
39
やった事 
• サブドメインはレガシーアーキテクチャを捨てた 
環境で開発, 初期(学習)コストは気合い 
• PHP5.5, ZendFramework2 
• ElasticBeanstalk <- 後で話します 
40
やった事 
• サブドメインをAWS + VPCに移行 
• VPC移行は視野に入ってたのでちょうど良 
かった 
41
やった事 
• 32bit PV amazon linux -> 64bit HVM 
amazon linux 
• SoftwareDesign5月号(Vagrantを使っ 
て…) 
• ある物から構成を掘り起こす作業は泣ける 
42
やった事 
• retty.meのPHP5.3->PHP5.5 
• EBで色々選べる(そもそもサポート切れる) 
• MySQL5.5->MySQL5.6 
• 多段レプリケーション 
• ログをfluentd + S3 + MongoDB運...
CloudFront Route 53 
EC2 
RDS 
ELB 
S3 
結果こうなった 
EC2 
RDS 
ELB 
EC2 
RDS 
ELB 
最初の図に少し 
近づいてますね 
MongoDB 
EMR 
ELC 
memcac...
ミドルウェアバージョン 
アップの秘訣は? 
45
多分そんなもの無い 
• SlaveのMaster昇格を使ってdev,stg環境で 
ひたすら試す 
• E_DEPRECATEDとひたすら戦う 
• 64bit移行はPHP_INT_MAXにハマって泣き 
たかった 
46
~500万 
47
より良い物へ 
48
CloudFront Route 53 
EC2 
RDS 
ELB 
EB 
S3 
retty.me 
EC2 
RDS 
ELB 
EC2 
RDS 
ELB 
Nginx Nginx 
MongoDB 
EMR 
ELC 
memcac...
Nginx upstream 
で安心deploy upstream retty { 
server enviroment-1 weight=nnn; 
server enviroment-1 weight=nnn; 
server envir...
CloudFront Route 53 
EC2 
RDS 
ELB 
EB 
S3 
ログを 
TRESUREDATAへ 
EC2 
RDS 
ELB 
EC2 
RDS 
ELB 
中継 
MongoDB 
51
CloudFront Route 53 
EC2 
RDS 
ELB 
EB 
S3 
CIはCircleで 
EC2 
RDS 
ELB 
EC2 
RDS 
ELB 
52
CloudFront Route 53 
EC2 
RDS 
ELB 
EB 
S3 
Jenkins? 
EC2 
RDS 
ELB 
EC2 
RDS 
ELB 
53
CloudFront Route 53 
EC2 
RDS 
ELB 
EB 
嫌です 
S3 
Jenkins? 
EC2 
RDS 
ELB 
EC2 
RDS 
ELB 
54
ご挨拶 
サービスの成長とインフラの成長 
AWSを使って 
DevOpsを目指す 
55
捗るサービスを選んで 
Opsの仕事を減らす 
56
俺的Best3 
57
Best3 
• Elastic Beanstalk(オートスケール&自動デ 
プロイ) 
• RDS(自前でレプリケーション, フェイルオーバ 
とか泣ける) 
• S3(EBSを拡張するの避ける) 
58
ElasticBeanstalk 
59
AWS上のHeroku 
(そもそもHerokuはry) 
60
ElasticBeanstalk 
• 一般的な Web アプリケーションに必要 な設定 
を組んで、Public DNS 名を割り振って URL 
でアクセスできるようにしてくれます。 
61
ElasticBeanstalk 
• 作るアプリは Web アプリか? Worker か? 
• RDS は必要か? Multi-AZ にする? 
• ELBを 使 う か? 1インスタンスで動かすか? 
62
ElasticBeanstalk 
のスタックApplication 
production staging development 
Enviroment Enviroment Enviroment 
63
デプロイは? 
64
git aws.push 
Application 
production staging development 
Enviroment Enviroment Enviroment 
git 
65
git aws.push 
• gitのリポジトリをそのままデプロイ 
• Enviromentとコミットを指定出来る 
• 同一Application内であればブラウザで 
Environment間でデプロイ出来る 
66
EBが無いと私の仕事は 
回らないくらい便利です 
67
大事な事 
• オートスケールを自在に使いこなす 
• レガシーアプリケーションの問題は環境変数に 
押し込む 
• インスタンスを使い捨てにする 
• .ebextensionでインスタンスを自在に操る 
68
使い捨てにするため 
ログ系はリアルタイムで送る 
69
fluentd 
Elastic 
Beanstalk Mongo&中継 
S3 
70
.ebextensionsで自由自在 
• デプロイ時のタスクをyml 
で記述(chefみたいに抽 
象化はされてない) 
• fluentdのインストール, 
apacheの設定, local 
memcached, 
postfix(やめ...
RDS 
72
ぶっちゃけ高い 
73
それを上回るメリット 
• 一度でもMySQLの運用をやった事があれば 
Multi-AZの素晴らしさはすぐわかる 
• ほぼメンテフリー 
• 気軽にスケールアップ 
74
S3 
75
EBSででかいインスタンスを 
用意するのは面倒 
• Mongoのdiskが溢れてメンテナンス不可能に 
なった 
• 因にs3fsはあまりおすすめしないってamazon 
の人も言ってた 
• S3の運用にちゃんと乗った方が楽 
76
まとめ 
77
Q.AWSを使ってDevOps 
を目指す上で 
最も重要な事は? 
78
immutable 
infrastructure? 
79
infrastructure 
as 
code? 
80
A.金 
81
金で解決する事 
• 特にRDSとかRDSとかRDSとか 
• 自前でフェイルオーバとか時間食い過ぎ 
• 負荷がきつかったらパラメータ一生懸命いじっ 
ても余りパフォーマンス上がらない、思い切っ 
てスケールアップ 
82
金で解決する事 
• アプリケーションサーバのような物はEBとかで 
ほったらかすようにする 
• データをストアするためにでかいEBSをアタッ 
チするのはやめた方が良いと思う(Mongoとか 
はどうしてもね。。。 
• AWSはインテグレ...
とにかくAWSが推奨す 
るアーキテクチャに乗る 
84
オペレーションコストの 
削減にコストをかける 
85
インフラはAWSに任せて 
PHP書きましょう! 
86
時間があればおまけ 
87
Rettyでは 
仲間を募集してます 
88
Rettyでは 
仲間を募集してます 
89
Rettyでは 
仲間を募集してます 
90
懇親会の二次会は 
Rettyで! 
91
92
ステッカー持ってます 
93
94
ありがとうございました 
95
Upcoming SlideShare
Loading in …5
×

Ph perがawsと出会ってdev opsを目指した話

11,809 views

Published on

PHPカンファレンス2014の資料です

Published in: Software
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2u6xbL5 ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2u6xbL5 ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS 1NTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD TH1S BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Ph perがawsと出会ってdev opsを目指した話

  1. 1. PHPerがAWSと 出会って DevOpsを目指した話 ! 2014/10/11 php conference2014 Retty, Inc 梅田昌太 @ebisusurf 1
  2. 2. 本日のお品書き • 前菜 ご挨拶 • メイン サービスの成長とインフラの成長 • デザート AWSを使ってDevOpsを目指す 2
  3. 3. ご挨拶 サービスの成長とインフラの成長 AWSを使ってDevOpsを目指す 3
  4. 4. Rettyという恵比寿に ある会社から来ました 4
  5. 5. Rettyって? 5
  6. 6. Rettyって? • 食を通じて世界中の人々をHappyに • グルメサービスです! • AppStore Google PlayへGo! 6
  7. 7. About me @ebisusurf 梅田昌太 AWS & プリンタ 7
  8. 8. About me 担当 炒飯 8
  9. 9. 炒飯な理由 • 皆に愛される平和なメニュー • ラーメンに対するマイノリティ感 • ラーメンの話は殴り合いになるからNG 9
  10. 10. About me • SoftwareDesign • 2014年5月号~7月号 • 短期集中連載 • Rettyのサービス拡大を支え た“たたき上げ”DevOps 10
  11. 11. Career • 渋谷でPerl,六本木でPHP • アプリケーションエンジニアです • Vim好き 11
  12. 12. PerlとPHPのキャリアが が長い&好きなので 12
  13. 13. 13
  14. 14. 本題 14
  15. 15. ご挨拶 サービスの成長と インフラの成長 AWSを使ってDevOpsを目指す 15
  16. 16. まずは今の構成をご紹介 • retty.me(メインサービス) • news.retty.me(ニュース配信) • owner.retty.me(店舗様向けサービス) 16
  17. 17. CloudFront EC2 RDS EB ELB S3 retty.me EC2 RDS ELB EC2 RDS ELB Nginx Nginx MongoDB EMR ELC memcached ELC Redis Route 53 17
  18. 18. news.retty.me CloudFront Route 53 EC2 RDS EB ELB S3 ELC memcached 18
  19. 19. owner.retty.me CloudFront Route 53 EC2 RDS ELB EB S3 EC2 RDS ELB ELC Redis EMR EC2 development 19
  20. 20. いきなりこうなった訳 ではありません 20
  21. 21. サービス総明記 21
  22. 22. UU ~10万 22
  23. 23. retty.me 信頼と安定の某VPS PHP Apache MySQL Linux 23
  24. 24. サブドメイン 信頼と安定のレンタルサーバ Wordpress 24
  25. 25. 10万~ 25
  26. 26. AWS移行 構成は変わらず(EC2) PHP Apache MySQL Linux 26
  27. 27. 50万~ AWSアーキテクチャに 乗ってみる 27
  28. 28. retty.me AWSアーキテクチャに少し 乗ってみる 28
  29. 29. 100万~ 29
  30. 30. 何かよく解らんけど 様子がおかしいぞ? 30
  31. 31. スケールアウトしてみた retty.me 31
  32. 32. 監視もしてみた SotfwareDesign 6月号 cloud watch retty.me オプションでディスクも監視 Nagios Monit 32
  33. 33. なんとかなった 33
  34. 34. 200万~400万 34
  35. 35.   奇跡のカーニバル   開  幕  だ  n  ___  n  こ|| こ/_ら_辺_\で  ||  || |(゚) (゚)| || 「「「| \‾‾‾/ 「「「| 「‾|  ‾冂‾  「‾| `ヽ |/‾|‾|‾\| ノ 一気に火を吹きだした 35
  36. 36. 起こった事 36
  37. 37. 起こった事 • サブドメインサービス開発に火がつく • 既存サブドメインサービスが落ちる • メインサービスのアラートが止まらない 37
  38. 38. 起こった事 • RDSに書き込んでたロギングが限界 • スケールアウト対応が追いつかない&コスパの良 いインスタンスが使えない(EC2が32bitPV、 PHP5.3) • RDSのSlave上限にひっかかる(MySQL5.5) 38
  39. 39. やった事 39
  40. 40. やった事 • サブドメインはレガシーアーキテクチャを捨てた 環境で開発, 初期(学習)コストは気合い • PHP5.5, ZendFramework2 • ElasticBeanstalk <- 後で話します 40
  41. 41. やった事 • サブドメインをAWS + VPCに移行 • VPC移行は視野に入ってたのでちょうど良 かった 41
  42. 42. やった事 • 32bit PV amazon linux -> 64bit HVM amazon linux • SoftwareDesign5月号(Vagrantを使っ て…) • ある物から構成を掘り起こす作業は泣ける 42
  43. 43. やった事 • retty.meのPHP5.3->PHP5.5 • EBで色々選べる(そもそもサポート切れる) • MySQL5.5->MySQL5.6 • 多段レプリケーション • ログをfluentd + S3 + MongoDB運用 43
  44. 44. CloudFront Route 53 EC2 RDS ELB S3 結果こうなった EC2 RDS ELB EC2 RDS ELB 最初の図に少し 近づいてますね MongoDB EMR ELC memcached EB 44
  45. 45. ミドルウェアバージョン アップの秘訣は? 45
  46. 46. 多分そんなもの無い • SlaveのMaster昇格を使ってdev,stg環境で ひたすら試す • E_DEPRECATEDとひたすら戦う • 64bit移行はPHP_INT_MAXにハマって泣き たかった 46
  47. 47. ~500万 47
  48. 48. より良い物へ 48
  49. 49. CloudFront Route 53 EC2 RDS ELB EB S3 retty.me EC2 RDS ELB EC2 RDS ELB Nginx Nginx MongoDB EMR ELC memcached ELC Redis 49
  50. 50. Nginx upstream で安心deploy upstream retty { server enviroment-1 weight=nnn; server enviroment-1 weight=nnn; server enviroment-1 weight=nnn; } EC2 RDS ELB EB EC2 RDS ELB EC2 RDS ELB Nginx Nginx 50
  51. 51. CloudFront Route 53 EC2 RDS ELB EB S3 ログを TRESUREDATAへ EC2 RDS ELB EC2 RDS ELB 中継 MongoDB 51
  52. 52. CloudFront Route 53 EC2 RDS ELB EB S3 CIはCircleで EC2 RDS ELB EC2 RDS ELB 52
  53. 53. CloudFront Route 53 EC2 RDS ELB EB S3 Jenkins? EC2 RDS ELB EC2 RDS ELB 53
  54. 54. CloudFront Route 53 EC2 RDS ELB EB 嫌です S3 Jenkins? EC2 RDS ELB EC2 RDS ELB 54
  55. 55. ご挨拶 サービスの成長とインフラの成長 AWSを使って DevOpsを目指す 55
  56. 56. 捗るサービスを選んで Opsの仕事を減らす 56
  57. 57. 俺的Best3 57
  58. 58. Best3 • Elastic Beanstalk(オートスケール&自動デ プロイ) • RDS(自前でレプリケーション, フェイルオーバ とか泣ける) • S3(EBSを拡張するの避ける) 58
  59. 59. ElasticBeanstalk 59
  60. 60. AWS上のHeroku (そもそもHerokuはry) 60
  61. 61. ElasticBeanstalk • 一般的な Web アプリケーションに必要 な設定 を組んで、Public DNS 名を割り振って URL でアクセスできるようにしてくれます。 61
  62. 62. ElasticBeanstalk • 作るアプリは Web アプリか? Worker か? • RDS は必要か? Multi-AZ にする? • ELBを 使 う か? 1インスタンスで動かすか? 62
  63. 63. ElasticBeanstalk のスタックApplication production staging development Enviroment Enviroment Enviroment 63
  64. 64. デプロイは? 64
  65. 65. git aws.push Application production staging development Enviroment Enviroment Enviroment git 65
  66. 66. git aws.push • gitのリポジトリをそのままデプロイ • Enviromentとコミットを指定出来る • 同一Application内であればブラウザで Environment間でデプロイ出来る 66
  67. 67. EBが無いと私の仕事は 回らないくらい便利です 67
  68. 68. 大事な事 • オートスケールを自在に使いこなす • レガシーアプリケーションの問題は環境変数に 押し込む • インスタンスを使い捨てにする • .ebextensionでインスタンスを自在に操る 68
  69. 69. 使い捨てにするため ログ系はリアルタイムで送る 69
  70. 70. fluentd Elastic Beanstalk Mongo&中継 S3 70
  71. 71. .ebextensionsで自由自在 • デプロイ時のタスクをyml で記述(chefみたいに抽 象化はされてない) • fluentdのインストール, apacheの設定, local memcached, postfix(やめた い)...etc commands: 01-install-memcached: command: yum install -y memcached 71
  72. 72. RDS 72
  73. 73. ぶっちゃけ高い 73
  74. 74. それを上回るメリット • 一度でもMySQLの運用をやった事があれば Multi-AZの素晴らしさはすぐわかる • ほぼメンテフリー • 気軽にスケールアップ 74
  75. 75. S3 75
  76. 76. EBSででかいインスタンスを 用意するのは面倒 • Mongoのdiskが溢れてメンテナンス不可能に なった • 因にs3fsはあまりおすすめしないってamazon の人も言ってた • S3の運用にちゃんと乗った方が楽 76
  77. 77. まとめ 77
  78. 78. Q.AWSを使ってDevOps を目指す上で 最も重要な事は? 78
  79. 79. immutable infrastructure? 79
  80. 80. infrastructure as code? 80
  81. 81. A.金 81
  82. 82. 金で解決する事 • 特にRDSとかRDSとかRDSとか • 自前でフェイルオーバとか時間食い過ぎ • 負荷がきつかったらパラメータ一生懸命いじっ ても余りパフォーマンス上がらない、思い切っ てスケールアップ 82
  83. 83. 金で解決する事 • アプリケーションサーバのような物はEBとかで ほったらかすようにする • データをストアするためにでかいEBSをアタッ チするのはやめた方が良いと思う(Mongoとか はどうしてもね。。。 • AWSはインテグレーションする事が大事 83
  84. 84. とにかくAWSが推奨す るアーキテクチャに乗る 84
  85. 85. オペレーションコストの 削減にコストをかける 85
  86. 86. インフラはAWSに任せて PHP書きましょう! 86
  87. 87. 時間があればおまけ 87
  88. 88. Rettyでは 仲間を募集してます 88
  89. 89. Rettyでは 仲間を募集してます 89
  90. 90. Rettyでは 仲間を募集してます 90
  91. 91. 懇親会の二次会は Rettyで! 91
  92. 92. 92
  93. 93. ステッカー持ってます 93
  94. 94. 94
  95. 95. ありがとうございました 95

×